Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Official JavaScript client for the YNAB API

License

NotificationsYou must be signed in to change notification settings

ynab/ynab-sdk-js

Repository files navigation

Buildnpm version

Please read theYNAB API documentation for an overview of using the API and a complete list of available resources.

This client is generated using theOpenAPI Generator.

Installation

First, install the module with npm:

npm install ynab

Then, depending upon your usage context, add a reference to it:

CommonJS / Node

const ynab = require("ynab");

ESM / TypeScript

import * as ynab from "ynab";

Browser

The API supportsCross Origin Resource Sharing (CORS) for asynchronous browser requests from any origin.

Thedist/browser/ynab.js file (located in node_modules/ynab after installation) is specifically built to run in a browser / window context and exportsynab variable to global namespace. No other dependencies are needed.

<script src="ynab.js" async></script>...<script>  // This assignment is not necessary but demonstrates that  // once the library is loaded, the global 'ynab' object will be available.  var ynab = window.ynab;</script>

CDN

A simple way to load the library in a browser is by using theunpkg CDN, which is a"fast, global content delivery network for everything on npm". To use it, include a script tag like this in your file:

<script src="https://unpkg.com/ynab@latest/dist/browser/ynab.js" async></script>

Using the "latest" tag will result in a 302 redirect to the latest version tag so it is highly recommended to use a specific version tag such ashttps://unpkg.com/ynab@1.5.0/dist/browser/ynab.js to avoid this redirect.

Usage

To use this client, you mustobtain an access token fromtheAccount Settings area of the YNAB webapplication.

constynab=require("ynab");constaccessToken="b43439eaafe2_this_is_fake_b43439eaafe2";constynabAPI=newynab.API(accessToken);(asyncfunction(){constbudgetsResponse=awaitynabAPI.budgets.getBudgets();constbudgets=budgetsResponse.data.budgets;for(letbudgetofbudgets){console.log(`Budget Name:${budget.name}`);}})();

Error Handling

If a response is returned with a code >= 300, instead of returning the response,the response will be thrown as an error to be caught.

constynab=require("ynab");constaccessToken="invalid_token";constynabAPI=newynab.API(accessToken);constbudgetsResponse=ynabAPI.budgets.getBudgets().then(budgetsResponse=>{// Won't get here because an error will be thrown}).catch(e=>{console.log(e);// {//   error: {//    id: "401",//    name: "unauthorized",//    detail: "Unauthorized"//   }// }});

Rate Limiting

The API enforcesRate Limiting.

If the rate limit is exceeded, a429Error Response will be returned from the API which will result in anerror being thrown in this library.

Examples

See theexamplesfolder for example usage scenarios.

Methods

The following methods are available in this library.

MethodDescription
Useruser.getUser()Returns authenticated user information
Budgetsbudgets.getBudgets()Returns budgets list with summary information
budgets.getBudgetById(budget_id)Returns a single budget with all related entities
budgets.getBudgetSettingsById(budget_id)Returns settings for a budget
Accountsaccounts.getAccounts(budget_id)Returns all accounts
accounts.getAccountById(budget_id, account_id)Returns a single account
Categoriescategories.getCategories(budget_id)Returns all categories grouped by category group.
categories.getCategoryById(budget_id, category_id)Returns a single category
categories.getMonthCategoryById(budget_id, month, category_id)Returns a single category for a specific budget month
categories.updateCategory(budget_id, category_id, category)Update an existing category
categories.updateMonthCategory(budget_id, month, category_id, month_category)Update an existing month category
Payeespayees.getPayees(budget_id)Returns all payees
payees.getPayeeById(budget_id, payee_id)Returns single payee
Payee Locationspayee_locations.getPayeeLocations(budget_id)Returns all payee locations
payee_locations.getPayeeLocationById(budget_id, payee_location_id)Returns a single payee location
payee_locations.getPayeeLocationsByPayee(budget_id, payee_id)Returns all payee locations for the specified payee
Monthsmonths.getBudgetMonths(budget_id)Returns all budget months
months.getBudgetMonth(budget_id, month)Returns a single budget month
Transactionstransactions.getTransactions(budget_id)Returns budget transactions
transactions.getTransactionsByAccount(budget_id, account_id)Returns all transactions for a specified account
transactions.getTransactionsByCategory(budget_id, category_id)Returns all transactions for a specified category
transactions.getTransactionsByMonth(budget_id, month)Returns all transactions for a specified month
transactions.getTransactionsByType(budget_id, type)Returns all transactions of a specified type ("unapproved" or "uncategorized")
transactions.getTransactionById(budget_id, transaction_id)Returns a single transaction
transactions.createTransaction(budget_id, data)Creates a single transaction
transactions.createTransactions(budget_id, data)Creates multiple transactions
transactions.updateTransaction(budget_id, transaction_id, data)Updates a single transaction
transactions.updateTransactions(budget_id, data)Updates multiple transactions
transactions.deleteTransaction(budget_id, transaction_id)Deletes a transaction
transactions.importTransactions(budget_id)Imports transactions
Scheduled Transactionsscheduled_transactions.getScheduledTransactions(budget_id)Returns all scheduled transactions
scheduled_transactions.getScheduledTransactionById(budget_id, scheduled_transaction_id)Returns a single scheduled transaction
scheduled_transactions.createScheduledTransaction(budget_id, data)Creates a single scheduled transaction
scheduled_transactions.updateScheduledTransaction(budget_id, scheduled_transaction_id, data)Updates a single scheduled transaction
scheduled_transactions.deleteScheduledTransaction(budget_id, scheduled_transaction_id)Deletes a single scheduled transaction

Utilities

There are several utilities available on theutils export to make workingwithISO dates and milliunits a biteasier.

// Returns the current month (system timezone) in ISO 8601 format (i.e. '2015-12-01')utils.getCurrentMonthInISOFormat(): string;// Returns the current date (system timezone) in ISO 8601 format (i.e. '2015-12-15')utils.getCurrentDateInISOFormat(): string;// Converts an ISO 8601 formatted string to a JS date objectutils.convertFromISODateString(isoDateString: string):Date;// Converts a milliunits amount to a currency amountutils.convertMilliUnitsToCurrencyAmount(milliunits: number,currencyDecimalDigits: number): number;

Versioning

The version of this client is defined in thepackage.json file and followssemantic versioning. The version of this client is maintained independently and does not align with the the version of YNAB API itself (which is defined in theOpenAPI spec). To determine which spec version of the YNAB API was used when generating this client you can refer to the "description" field in thepackage.json file.

License

Copyright (c) 2022 You Need A Budget, LLC

Licensed under the Apache-2.0 license


[8]ページ先頭

©2009-2025 Movatter.jp