API

The Synci API is a powerful, REST-based interface designed for developers to automate their financial workflows. Whether you're building custom reporting, integrating with unique budgeting tools, or creating complex automation rules, our API provides the same robust features that power the Synci dashboard.

Written By Matias

Last updated About 4 hours ago

Full API documentation

For a complete reference of all available endpoints, request parameters, and response schemas, please visit our dedicated documentation portal:

πŸ‘‰ https://docs.synci.io

The documentation site lets you test requests directly from the browser.


Getting started & authentication

The Synci API uses Personal Access Tokens for authentication. All requests must be made over HTTPS and include your token in the Authorization header.

Generating an access token

  1. Log in to your Synci Dashboard.

  2. Navigate to Developers > Tokens.

  3. Click the green "New token" button.

  4. Provide a descriptive name for the token (e.g., "Custom Reporter Script").

  5. Copy the token immediately. For security reasons, it will only be displayed once. If you lose it, you must revoke it and generate a new one.

Authenticating requests

Include your token as a Bearer token in the HTTP Authorization header:

curl -X GET "https://api.synci.io/api/v1/user" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Accept: application/json"

Core API concepts & rate limits

  • RESTful Design: The API follows standard REST principles, using appropriate HTTP verbs (GET, POST, PUT, DELETE).

  • JSON Only: All request bodies must be sent as JSON, and all responses are returned in JSON format. Ensure you send the Content-Type: application/json header.

  • Status Codes: We use standard HTTP status codes:

    • 200 OK: Request successful.

    • 201 Created: Resource successfully created.

    • 401 Unauthorized: Invalid or missing access token.

    • 422 Unprocessable Entity: Validation error (details provided in the response).

    • 429 Too Many Requests: Rate limit exceeded.

API Rate Limits

To ensure platform stability, Synci enforces the following rate limits:

Endpoint type

Limit

General API

100 requests per minute

Manual Sync

1 request per minute

Undo Actions

1 request per minute

Webhook Testing

5 requests per minute

If you exceed these limits, you will receive a 429 response. Most rate limits reset every minute.


Key resources

Bank accounts

Bank accounts are the primary containers for your financial data. They are automatically discovered and synced once you establish a connection with a bank.

  • List Accounts: GET /api/v1/banks/accounts returns all accounts linked to your user profile.

  • Fetch Details: GET /api/v1/banks/accounts/{accountId}

  • Manual Sync: POST /api/v1/banks/accounts/{accountId}/sync (Rate limited to 1/min).

Bank transactions

Transactions represent every individual movement of money. These are the primary objects modified by rules and moved via transfer links.

  • List Transactions: GET /api/v1/banks/transactions

  • Filtering: Use query parameters like bank_account_id to narrow down the list.

  • Details: GET /api/v1/banks/transactions/{transactionId} retrieves full metadata, including remittance information and generated fields.

Connections, destinations & transfer links

  • Bank Connections: Link new institutions using POST /api/v1/banks/connections.

  • Budgeting Destinations: Connect to YNAB or Lunch Money via the /api/v1/destinations/ endpoints.

  • Transfer Links: Define the sync link between a bank_account_id and a destination.

  • Rules: Create automations that trigger on bank transactions to clean payees, calculate amounts, or set categories.


Monitoring & debugging

The API provides deep visibility into your automations via logs.

  • Transfer Logs: GET /api/v1/transfer-logs shows the status of every transaction delivery attempt.

  • Rule Logs: GET /api/v1/rule-logs provides an audit trail of every rule action taken on a transaction.

  • Undo Actions: Most modifications can be reverted via the API using the /undo endpoints on specific logs.


Statistics & analytics

Gain insights into your transaction volume and transfer history.

  • Bank Stats: GET /api/v1/stats/bank/transactions

  • Transfer Stats: GET /api/v1/stats/transfer


Pro Tips

  • Smart IDs: Always use the bank_account_id found in the account list to filter your transaction requests for better performance.

  • Check Plan Limits: If a POST request fails with a 403, verify if you have reached the limits of your current plan (e.g., maximum number of active bank connections).

  • Versioned Routes: Our API is versioned (currently /v1/) to ensure long-term stability for your integrations. Always use the versioned prefix in your URLs.