---
title: "Quickstart"
description: "Install the BankSync CLI, log in with an API key, list your banks, and pull transactions in under a minute."
section: "CLI"
canonical: "https://banksync.io/docs/cli/cli-quickstart"
---

From zero to transactions in your terminal in about a minute. This assumes you have already [installed the CLI](/docs/cli/installation).

[![BankSync CLI quickstart](https://cdn.banksync.io/videos/cli-quickstart.poster.5f7c1b212f341fe5.png)](https://cdn.banksync.io/videos/cli-quickstart.beab24a10f6ffdb2.mp4)

[Watch: BankSync CLI quickstart](https://cdn.banksync.io/videos/cli-quickstart.beab24a10f6ffdb2.mp4)

**Get running**

1. **Create an API key** — In the BankSync app, open Settings > Developers and create a key. Copy the bsk\_ secret when it is shown, because it appears only once. See the API keys guide for scopes and expiration.
2. **Log in** — Store the key for the CLI. It is validated against your workspace before it is saved.
3. **List your banks** — Confirm the key works and see your connected institutions.
4. **Pull transactions** — List transactions for a bank, resolving the bank by name or id.
5. **Pipe to a tool** — Because output is JSON when piped, the CLI drops straight into jq, scripts, and agents.

## 1. Log in

```bash
banksync login --api-key bsk_your_api_key_here
```

The CLI calls `whoami` to validate the key, then saves it to an encrypted file for future commands. You will not need to pass `--api-key` again on this machine.

```text
Logged in to Acme Inc (profile: default).
```

## 2. List your banks

```bash
banksync banks list
```

On a terminal you get an aligned table with a status column:

```text
ID         NAME             SOURCE    TYPE      STATUS
bnk_a1b2   Chase            plaid     personal  ● active
bnk_c3d4   Amex             plaid     personal  ● active
bnk_e5f6   CommBank         fiskil    personal  ◐ syncing

3 banks · workspace acme
```

## 3. Pull transactions

Reference a bank by its id, or by name (partial names resolve):

```bash
banksync transactions list --bank amex
```

`transactions list` has a short alias, `tx`, and accepts a date range:

```bash
banksync tx list --bank amex --from 2026-01-01 --to 2026-03-31
```

## 4. Pipe to jq

When stdout is not a terminal, the CLI emits its stable JSON envelope automatically, so pipelines just work with no flag:

```bash
banksync tx list --bank amex | jq '.data[] | {date, description, amount}'
```

You can also ask for JSON explicitly with `--json` (or `-o json`):

```bash
banksync banks list --json | jq '.data | length'
```

> **Everything is discoverable from the terminal:** Run banksync --help for the full command tree, banksync \<command> --help for a command's flags and examples, and banksync commands --json for a machine-readable catalog. You never have to leave the shell to find your way around.

## Where to go next

- **Authentication** — API keys, the BANKSYNC\_API\_KEY env var, profiles, and where credentials are stored.' '
  Read more
- **Output formats** — Tables for humans, JSON and NDJSON for machines, plus --fields and --sort.' '
  Read more
- **Syncing and jobs** — Trigger syncs, watch them to completion, and inspect job history.' '
  Read more
- **Connecting banks** — Link a new bank through the web app and wait for it to appear.' '
  Read more
