Skip to main content

ynab-sdk-python

PyPI version Maintainability codecov Code style: black

Python implementation of the YNAB API (https://api.youneedabudget.com/)

Installation

Use the package manager pip to install ynab-sdk-python

pip install ynab-sdk

Usage

Example of use with the default client:

from ynab_sdk import YNAB

ynab = YNAB('some-key')

print(ynab.budgets.get_budgets())

Example of use with the cached client:

from ynab_sdk import YNAB
from ynab_sdk.utils.clients.cached_client import CachedClient
from ynab_sdk.utils.configurations.cached import CachedConfig

ynab_config = CachedConfig(
    redis_host='redis-host',
    redis_port='redis-port',
    redis_db='redis-db',
    redis_pass='redis-password',
    api_key='some-key',
)
ynab_client = CachedClient(ynab_config)
ynab = YNAB(client=ynab_client)

# clear the cache
ynab_client.clear_cache()

# set the cached data expiration time in seconds
# if set to 0, negative or None, the cached data never expires
# default value is 3600 seconds (1 hour)
ynab_config.redis_ttl = 120

print(ynab.budgets.get_budgets())

Endpoints

See below whats implemented (Not fully updated yet)

Endpoint Verb Description Working Obs
/user GET Returns authenticated user information NO
/budgets GET Returns budgets list with summary information YES
/budgets/{budget_id} GET Returns a single budget with all related entities. This resource is effectively a full budget export. YES
/budgets/{budget_id}/settings GET Returns settings for a budget YES
/budgets/{budget_id}/accounts GET Returns all accounts YES
/budgets/{budget_id}/accounts/{account_id} GET Returns a single account YES
/budgets/{budget_id}/accounts POST Creates a new account YES
/budgets/{budget_id}/categories GET Returns all categories grouped by category group. Amounts (budgeted, activity, balance, etc.) are specific to the current budget month (UTC).
/budgets/{budget_id}/categories/{category_id} GET Returns a single category. Amounts (budgeted, activity, balance, etc.) are specific to the current budget month (UTC).
/budgets/{budget_id}/months/{month}/categories/{category_id} GET Returns a single category for a specific budget month. Amounts (budgeted, activity, balance, etc.) are specific to the current budget month (UTC).
/budgets/{budget_id}/months/{month}/categories/{category_id} PATCH Update a category for a specific month
/budgets/{budget_id}/payees GET Returns all payees YES
/budgets/{budget_id}/payees/{payee_id} GET Returns single payee YES
/budgets/{budget_id}/payee_locations GET Returns all payee locations NO
/budgets/{budget_id}/payee_locations/{payee_location_id} GET Returns a single payee location NO
/budgets/{budget_id}/payees/{payee_id}/payee_locations GET Returns all payee locations for the specified payee NO
/budgets/{budget_id}/months GET Returns all budget months NO
/budgets/{budget_id}/months/{month} GET Returns a single budget month NO
/budgets/{budget_id}/transactions GET Returns budget transactions YES
/budgets/{budget_id}/transactions POST Creates a single transaction or multiple transactions. If you provide a body containing a 'transaction' object, a single transaction will be created and if you provide a body containing a 'transactions' array, multiple transactions will be created. YES
/budgets/{budget_id}/transactions PATCH Updates multiple transactions, by 'id' or 'import_id'. NO
/budgets/{budget_id}/transactions/{transaction_id} GET Returns a single transaction YES
/budgets/{budget_id}/transactions/{transaction_id} PUT Updates a transaction YES
/budgets/{budget_id}/transactions/bulk POST Creates multiple transactions. Although this endpoint is still supported, it is recommended to use 'POST /budgets/{budget_id}/transactions' to create multiple transactions. NO
/budgets/{budget_id}/accounts/{account_id}/transactions GET Returns all transactions for a specified account YES
/budgets/{budget_id}/categories/{category_id}/transactions GET Returns all transactions for a specified category NO
/budgets/{budget_id}/payees/{payee_id}/transactions GET Returns all transactions for a specified payee NO
/budgets/{budget_id}/scheduled_transactions GET Returns all scheduled transactions NO
/budgets/{budget_id}/scheduled_transactions/{scheduled_transaction_id} GET Returns a single scheduled transaction NO

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

Apache License 2.0

Metadata

Release files for ynab-sdk 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ynab-sdk 0.5.0
File Size Uploaded
ynab-sdk-0.5.0.tar.gz 20.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ynab-sdk 0.5.0
File Interpreter ABI Platform
ynab_sdk-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 56.0 kB

Release files / ynab-sdk-0.5.0.tar.gz

Download URL ynab-sdk-0.5.0.tar.gz
Size 20.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c78655956880f7a8367b5c5ad9b936b859d8d2202c892c6b862740c47ca1147b
BLAKE2b-256 checksum
How to use checksums
5c90f4997631c7fa7332bec1f6d8a34adc17befbace984ecab7bb6665d27c278
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / ynab_sdk-0.5.0-py3-none-any.whl

Download URL ynab_sdk-0.5.0-py3-none-any.whl
Size 35.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9fd40e18f33878c7bd8f40f7f12a61c82465ad7a227194ea056b032ca7b3ae42
BLAKE2b-256 checksum
How to use checksums
c1687f2d60a53c99dde371bbc87052d5ff7f4dc090befc3a078e79289a66e93b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page