Importing and Sync
Import from your own scripts
Push statements into Budget Smugglers from any script or tool that can make an HTTP request, using an import token.
The Sync extension isn’t the only way in. Anything that can make an HTTP request can push a statement file: a script on a home server, a scheduled job, or a tool that already downloads your statements.
Get an import token#
- Open Settings › Connections.
- Choose Create token, and pick Import statements for what it can do.
- Copy the token. It’s shown once.
An import token can only upload statements and list the accounts you can import into. It can’t read transactions or change anything else, and it doesn’t work for AI assistants.
Send a file#
curl -X POST https://my.budgetsmugglers.app/api/v1/pools/$POOL_ID/imports/auto \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "fileName": "statement.csv", "content": "…the file text…", "source": "my-script" }'
| Field | |
|---|---|
fileName |
Required. The file’s name, which helps work out its format. |
content |
Required. The file’s text. |
accountId |
Puts every row into one account. Leave it out for files that name the account on each row. |
accountMap |
Maps the account names in the file to account ids. |
source |
A short label shown on the Import page: lowercase letters, digits and : . _ -, up to 40 characters. |
autoCommit |
true by default. Set false to always check it on the Import page first. |
replaces |
The batchId of a held import from the same source. That one is thrown away and this file takes its place. |
What comes back#
status is one of:
committed: the new transactions are in. Ones you already had are skipped.needs_review: the file is waiting on the Import page.reasonssays why,unmappedRefslists account names to match up, andreviewUrllinks straight to it.duplicate_file: this exact file came in before, so nothing changed.
Finding ids#
GET https://my.budgetsmugglers.app/api/v1/me/import-targets with the same token lists the pools you can import into and the accounts you can write to, with their ids.