YNAB API

Finance / OAuth Advanced HTTPS CORS
Varies by plan (check documentation)

Overview

The YNAB (You Need A Budget) API lets you programmatically read and write data from a user's YNAB budget, including accounts, transactions, and category balances. It uses OAuth 2.0, so users authorize your app without sharing their password. This is a great API for building personal finance dashboards or automating transaction imports.

Beginner Tip

Start by getting a Personal Access Token from YNAB account settings under Developer Settings — it is much simpler than full OAuth for personal projects.

Available Data

Use case: Integrate budgeting & planning data into web and mobile applications
YNAB data via REST API

Example Response

JSON Response
{
  "status": "success",
  "data": {
    "result": "Data from YNAB",
    "description": "Budgeting & Planning",
    "timestamp": "2025-01-15T10:00:00Z"
  }
}

Field Reference

id Unique UUID for the budget.
name Human-readable budget name set by the user.
currency_format Currency symbol, decimal separator, and ISO code for this budget.
accounts List of linked accounts (checking, savings, credit cards, etc.).
last_modified_on ISO 8601 timestamp of the most recent change to this budget.

Implementation Example

Request
const url = "https://api.youneedabudget.com/";
// Replace headers or query params with the values required by this API.
const response = await fetch(url, {
  headers: {
  "Authorization": "Bearer YOUR_API_KEY"
  }
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

401 Unauthorized The Bearer token is expired, missing, or has been revoked.
Regenerate your Personal Access Token in YNAB Developer Settings and update it in your app.
400 Bad Request on transaction creation Date format is wrong — YNAB requires ISO 8601 format (YYYY-MM-DD).
Ensure your date field is a string formatted like 2026-01-15 before sending.
budget_id last-used returns wrong budget If you have multiple budgets, last-used may point to an unexpected one.
Call GET /budgets first to list all budget IDs, then use the explicit ID for your target budget.

Metadata Score Breakdown

Estimated from metadata — endpoint not independently tested

This score is estimated from observable metadata — HTTPS support, authentication model, declared CORS, and documentation reachability — because the API requires authentication or exposes no publicly testable endpoint. The five-signal breakdown is only shown for live-tested APIs.

Metadata estimate · endpoint not independently tested

Technical Specifications

Auth OAuth
HTTPS REQUIRED
CORS YES
Category Finance
Difficulty Advanced
Verified: 2026-04-07

Related Tags

Similar APIs

View All →