Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details i
Full LLM thinking from the 4-phase benchmark pipeline.
{
"service_type": "platform",
"base_url": "https://api.ynab.com/v1",
"auth_method": "oauth2",
"auth_config": {
"type": "oauth2",
"flows": {
"authorization_code": {
"authorization_url": "https://app.ynab.com/oauth/authorize",
"token_url": "https://app.ynab.com/oauth/token"
}
},
"scopes": [
"read-only",
"default"
],
"notes": "Personal access tokens are also supported for personal use. OAuth is required for multi-user integrations."
},
"endpoints": [
{
"path": "/plans",
"method": "GET",
"description": "List all plans (budgets) the authenticated user has access to."
},
{
"path": "/plans/{plan_id}",
"method": "GET",
"description": "Retrieve a specific plan."
},
{
"path": "/plans/{plan_id}/settings",
"method": "GET",
"description": "Retrieve plan settings."
},
{
"path": "/plans/{plan_id}/accounts",
"method": "GET",
"description": "List accounts in a plan."
},
{
"path": "/plans/{plan_id}/accounts/{account_id}",
"method": "GET",
"description": "Retrieve a specific account."
},
{
"path": "/plans/{plan_id}/categories",
"method": "GET",
"description": "List categories in a plan."
},
{
"path": "/plans/{plan_id}/categories/{category_id}",
"method": "GET",
"description": "Retrieve a specific category."
},
{
"path": "/plans/{plan_id}/months",
"method": "GET",
"description": "List budget months."
},
{
"path": "/plans/{plan_id}/months/{month}",
"method": "GET",
"description": "Retrieve a specific budget month (format YYYY-MM-DD)."
},
{
"path": "/plans/{plan_id}/transactions",
"method": "GET",
"description": "List transactions in a plan."
},
{
"path": "/plans/{plan_id}/transactions",
"method": "POST",
"description": "Create one or more transactions."
},
{
"path": "/plans/{plan_id}/transactions/{transaction_id}",
"method": "GET",
"description": "Retrieve a specific transaction."
},
{
"path": "/plans/{plan_id}/transactions/{transaction_id}",
"method": "PUT",
"description": "Update a transaction."
},
{
"path": "/plans/{plan_id}/transactions/{transaction_id}",
"method": "DELETE",
"description": "Delete a transaction."
},
{
"path": "/plans/{plan_id}/scheduled_transactions",
"method": "GET",
"description": "List scheduled transactions."
},
{
"path": "/plans/{plan_id}/payees",
"method": "GET",
"description": "List payees."
},
{
"path": "/plans/{plan_id}/payee_locations",
"method": "GET",
"description": "List payee locations."
},
{
"path": "/plans/{plan_id}/money_movements",
"method": "GET",
"description": "List money movements."
},
{
"path": "/user",
"method": "GET",
"description": "Get information about the authenticated user."
}
],
"pricing_model": {
"type": "freemium",
"details": {
"trial": "34-day free trial",
"subscription": "Monthly or annual subscription required after trial",
"api_access": "Included with subscription at no extra cost",
"sharing": "Up to 6 people can share a subscription"
}
},
"rate_limits": {
"documented": true,
"details": "YNAB enforces rate limits; specific limits are documented in the API documentation (typically 200 requests per hour per user). Over-limit returns HTTP 429."
},
"capabilities": [
"Budget management (plans, months, categories)",
"Account and transaction management",
"Scheduled transactions",
"Payee management",
"Money movements between categories",
"User info retrieval",
"OAuth 2.0 authentication for third-party integrations",
"Personal access tokens for personal use",
"RESTful API with JSON responses",
"HTTPS transport",
"Meaningful HTTP status codes and error details"
],
"raw_analysis": "YNAB (You Need A Budget) is a widely-adopted zero-based budgeting application with a mature, publicly documented REST API. The platform is aimed at individual consumers and households, with a growing presence in employee financial wellness programs. The API is versioned (v1), uses JSON over HTTPS, and supports OAuth 2.0 as well as personal access tokens, making it suitable for both third-party integrations and personal automation.\n\nThe API surfaces core budgeting entities: plans, accounts, categories, budget months, transactions, scheduled transactions, payees, and money movements. It supports read operations broadly and write operations for transactions, enabling use cases like automated transaction import, custom reporting dashboards, and integration with other personal finance tools.\n\nYNAB enforces documented rate limits and returns sta1/3 tests passed
| Test | Endpoint | Status | Latency |
|---|---|---|---|
| website_uptime | GET / | 200 | 190ms |
| robots_txt | GET /robots.txt | 401 | 60ms |
| llms_txt | GET /llms.txt | 401 | 58ms |
{
"overall": 78,
"dimensions": {
"token_efficiency": 9.0,
"first_try_success": 8.0,
"response_parseability": 10.0,
"error_clarity": 8.0,
"doc_quality": 9.0,
"auth_simplicity": 6.0,
"latency": 10.0,
"consistency": 8.5
},
"pricing_normalized": {
"model": "freemium_subscription",
"trial_days": 34,
"api_included": true,
"sharing_up_to": 6,
"notes": "API access included with paid subscription at no extra cost; no separate API tier"
},
"issues": [
"robots.txt and llms_txt endpoints return 401 Unauthorized, indicating no LLM-friendly discovery files — agents cannot self-discover capabilities via standard AI-agent conventions",
"Auth requires OAuth 2.0 or personal access token, with no magic-link or agent-native identity flow (e.g., Sign in with Notlogin), adding onboarding friction",
"Requires a paid subscription after 34-day trial for continued API access — no perpetual free API tier",
"No llms.txt suggests limited optimization for agent-first discovery and navigation"
],
"recommendations": [
"Add an llms.txt file to make the API surface discoverable to AI agents without authentication",
"Support agent-friendly auth (e.g., magic link or verified-identity provider like Notlogin) to reduce onboarding friction",
"Expose an OpenAPI/Swagger spec in machine-readable format at a public URL to improve first-try success for agent integrations",
"Document rate limits, status code semantics, and error catalog explicitly in public docs to improve error clarity score",
"Consider a limited free tier for API access to reduce barrier for agent-recommended lightweight use cases"
]
}Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.
<a href="https://prowl.world/service/ynab-api-endpoints">
<img src="https://prowl.world/badge/ynab-api-endpoints.svg" height="56" alt="Agent-readiness on Prowl">
</a>
See operational metrics, LLM evaluations, agent readiness, and more.
Open in Dashboard