# Syncfetti > Syncfetti imports European bank transactions into YNAB and Actual Budget. Use the Syncfetti CLI to configure and control the service. Commands return JSON on standard output. ## Install ```sh curl -fsSL https://syncfetti.com/install.sh | bash ``` The installer puts `syncfetti` in `~/.local/bin`. Set `SYNCFETTI_INSTALL_DIR` to use another directory. Add the installation directory to `PATH` if the installer reports that it is missing. Run `syncfetti version` to print the Git revision embedded in the binary. ## Authenticate ```sh syncfetti auth login ``` The command opens a browser when possible. It also prints a verification URL and code. Complete authorization in the browser. For a remote shell, run `syncfetti auth login --no-browser` and open the printed URL on another device. Use `syncfetti auth status` to inspect the current token. Use `syncfetti auth logout` to revoke it and remove the local credentials. Syncfetti stores credentials in the operating system user configuration directory. `SYNCFETTI_TOKEN` overrides the stored token. `SYNCFETTI_API_URL` overrides the default API at `https://console.syncfetti.com`. ## Configure YNAB Check the connection. If needed, start browser authorization. Then list the budgets and accounts: ```sh syncfetti ynab status syncfetti ynab connect syncfetti ynab budgets syncfetti ynab accounts BUDGET_ID ``` All browser commands support `--no-browser` and still print the URL. ## Create a YNAB sync Find the bank institution and create a draft sync: ```sh syncfetti institutions --country DK syncfetti sync create \ --name "Current account" \ --country DK \ --institution INSTITUTION_ID \ --budget BUDGET_ID ``` Complete the bank authorization opened by `sync create`. The create response contains the draft sync and its next action. Do not wait for activation before continuing. Inspect the draft after authorization, map its bank account IDs to destination account IDs, and activate it: ```sh syncfetti sync get SYNC_ID syncfetti sync map SYNC_ID \ --mapping BANK_ACCOUNT_ID=DESTINATION_ACCOUNT_ID syncfetti sync activate SYNC_ID ``` Repeat `--mapping` to import more accounts. Each destination account can appear only once. ## Create an Actual Budget sync Supply secrets through environment variables or named files. Never put them in command arguments. ```sh export SYNCFETTI_ACTUAL_API_KEY='...' export SYNCFETTI_ACTUAL_ENCRYPTION_PASSWORD='...' syncfetti sync create \ --name "Current account" \ --country DK \ --institution INSTITUTION_ID \ --destination actual \ --budget ACTUAL_SYNC_ID \ --actual-url https://actual-api.example.com ``` Use `--actual-api-key-file` and `--actual-encryption-password-file` instead of the environment variables when secrets are stored in files. Use `sync map` after bank authorization to set Actual destination account IDs. ## Operate syncs ```sh syncfetti sync list syncfetti sync get SYNC_ID syncfetti sync runs SYNC_ID --limit 20 syncfetti sync run SYNC_ID syncfetti sync pause SYNC_ID syncfetti sync resume SYNC_ID syncfetti sync refresh-accounts SYNC_ID syncfetti sync reconnect-bank SYNC_ID syncfetti sync delete SYNC_ID --yes ``` Use `sync update` for schedules, dates, payee cleanup, transaction identifiers, and destination state. Duration flags use Go duration syntax. ```sh syncfetti sync update SYNC_ID \ --run-interval 6h \ --first-import-date 2026-01-01 \ --destination-state cleared ``` Use `sync preview` with the same configuration flags to inspect payee changes without saving them. Run `syncfetti help` or a command without required arguments to inspect command usage. The API is beta. Do not blindly retry `sync create`. After a timeout or conflict, inspect `syncfetti sync list` or `syncfetti sync get SYNC_ID` first. ## Reference - [CLI installer](https://syncfetti.com/install.sh): Bash installer for Linux and macOS on amd64 and arm64. - [OpenAPI contract](https://console.syncfetti.com/api/openapi.yaml): Machine-readable beta API used by the CLI. ## Optional - [Syncfetti](https://syncfetti.com/): Product overview. - [Supported banks](https://syncfetti.com/bank-coverage.html): Current country and institution coverage.