ynab-sdk-python
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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| ynab-sdk-0.5.0.tar.gz | 20.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|