# Visor Personal API > Connect your own scripts and automations to your Visor data with a Pro or Premium personal API token. ## Guides ### Get started - [Introduction](https://docs.visorfinance.app/introduction.md): Read your Visor data from your own scripts and automations. - [Quickstart](https://docs.visorfinance.app/quickstart.md): Record your first expense from a script in a few minutes. - [Command-line interface](https://docs.visorfinance.app/cli.md): Use the personal API from your terminal with the visor CLI. - [Spaces and reference data](https://docs.visorfinance.app/reference-data.md): Find the IDs of your spaces, accounts, categories, and tags. - [Transactions](https://docs.visorfinance.app/transactions.md): Export your history, record transactions, and edit or delete them. - [Financial data](https://docs.visorfinance.app/financial-data.md): Read the overview, cards and bills, recurring expenses, installments, goals, investments, connections, and notifications. ### Essentials - [Authentication](https://docs.visorfinance.app/authentication.md): Personal API tokens, Visor CLI login, scopes, expiry, and revocation. - [Idempotency](https://docs.visorfinance.app/idempotency.md): Retry a create without recording it twice. - [Errors](https://docs.visorfinance.app/errors.md): The error envelope and every error code. - [Rate limits](https://docs.visorfinance.app/rate-limits.md): Request limits per token and per client IP. - [Security](https://docs.visorfinance.app/security.md): Keep your personal API tokens safe. ## API reference ### Spaces - [List accessible spaces](https://docs.visorfinance.app/api-reference/spaces/list-accessible-spaces.md): Returns every space the token's user owns or was invited to. Requires the `pfm:read` scope. Use a space `id` to scope later requests. ### Accounts - [List accounts](https://docs.visorfinance.app/api-reference/accounts/list-accounts.md): Returns the bank, credit card, and investment accounts of a space. Requires the `pfm:read` scope. Use an account `id` to filter or create transactions. ### Categories - [List categories](https://docs.visorfinance.app/api-reference/categories/list-categories.md): Returns the system categories and the space's custom categories, named and nested the way the space shows them. Requires the `pfm:read` scope. Match a system category by its `key`: its `name` follows the space and can change. ### Tags - [List tags](https://docs.visorfinance.app/api-reference/tags/list-tags.md): Returns the tags of a space, ordered by name. Requires the `pfm:read` scope. ### Transactions - [List transactions](https://docs.visorfinance.app/api-reference/transactions/list-transactions.md): Returns one page of the space's transactions, newest first (`transacted_at` descending, then `id`). Requires the `pfm:read` scope. Pass `next_cursor` as `after` to read the next page; it is `null` on the last page. Without `to_date`, the list ends today, so a future-dated transaction appears only wh… - [Get a transaction](https://docs.visorfinance.app/api-reference/transactions/get-a-transaction.md): Returns one transaction of the space. Requires the `pfm:read` scope. - [Create a transaction](https://docs.visorfinance.app/api-reference/transactions/create-a-transaction.md): Records a manual transaction in an account of the space. Requires the `pfm:transactions:write` scope and an `Idempotency-Key` header. The transaction takes the currency of its account. A retry with the same key in the same account returns the transaction already recorded, with `idempotent-replayed:… - [Create transactions in a batch](https://docs.visorfinance.app/api-reference/transactions/create-transactions-in-a-batch.md): Records 1 to 100 manual transactions independently. Requires the `pfm:transactions:write` scope. Each row has the single-create fields and an `idempotency_key` with the same rules as the single-create header. The response preserves input order and uses zero-based indexes. A failed row does not undo… - [Edit a transaction](https://docs.visorfinance.app/api-reference/transactions/edit-a-transaction.md): Changes the fields in the body and keeps the others. Requires the `pfm:transactions:write` scope. A manual transaction accepts every field of the body schema. A connected or Apple Pay transaction accepts only `category_id`, `notes`, `ignored`, and `tag_ids`; any other field returns `409 IMMUTABLE_PR… - [Delete a transaction](https://docs.visorfinance.app/api-reference/transactions/delete-a-transaction.md): Deletes one transaction of the space. Requires the `pfm:transactions:write` scope. Visor removes a manual transaction and reverses its effect on the account balance. A connected transaction is hidden instead, so the next bank sync does not bring it back. ### Overview - [Get the financial overview](https://docs.visorfinance.app/api-reference/overview/get-the-financial-overview.md): Returns the financial snapshot of a space for its current financial period (the space's month start, not the calendar month): balances, net worth, card bills due in the next 30 days, period income and expenses, and the projected balance at the end of the period with its components. Amounts are decim… ### Cards - [List credit cards](https://docs.visorfinance.app/api-reference/cards/list-credit-cards.md): Returns the credit cards of a space with their limit and the dates of the current fatura. Requires the `pfm:read` scope. The card `id` is the credit account `id` from `GET /v1/spaces/{space_id}/accounts`. `used_limit` and `available_limit` are the figures the Faturas page shows and are null while th… - [List the bills of a credit card](https://docs.visorfinance.app/api-reference/cards/list-the-bills-of-a-credit-card.md): Returns the faturas of one credit card whose due date is in the `from` - `to` window, latest due date first. Without `from` and `to`, the window is the current calendar month, the month the Faturas page opens on. The window spans at most 366 days. Requires the `pfm:read` scope. A closed bill shows e… ### Recurring expenses - [List subscriptions](https://docs.visorfinance.app/api-reference/recurring-expenses/list-subscriptions.md): Returns the active subscriptions (assinaturas) of a space: cancellable services such as streaming, software, or a gym. Fixed bills such as rent are on the fixed-bills endpoint. Installment plans are not included. Ordered by `next_due_date`. Requires the `pfm:read` scope. - [List fixed bills](https://docs.visorfinance.app/api-reference/recurring-expenses/list-fixed-bills.md): Returns the active fixed bills (contas fixas) of a space: rent, utilities, boletos, insurance, and other recurring expenses that are not subscriptions. Installment plans are not included. Ordered by `next_due_date`. Requires the `pfm:read` scope. ### Installments - [List installment plans](https://docs.visorfinance.app/api-reference/installments/list-installment-plans.md): Returns the installment plans (parcelamentos) of a space, ordered by the date of the last installment, with the same progress and amounts the app shows. Plans on a hidden account are left out. By default it returns the plans still being paid (`status=active`); `status=completed` returns the plans th… ### Goals - [List goals](https://docs.visorfinance.app/api-reference/goals/list-goals.md): Returns the savings goals of a space, newest first, with the same amounts and progress the app shows. The emergency fund is a goal with `kind` `emergency_fund`. Archived goals are left out unless you ask for them with `status=archived`. Requires the `pfm:read` scope. ### Investments - [List investments](https://docs.visorfinance.app/api-reference/investments/list-investments.md): Returns the investments of a space, connected and manual, with the same holdings the Visor portfolio shows: a holding with a zero or negative balance is left out. `summary.total_value` adds the holdings that count toward net worth, converted to the display currency of the token's user. Requires the… ### Connections - [List Open Finance connections](https://docs.visorfinance.app/api-reference/connections/list-open-finance-connections.md): Returns the bank connections that feed accounts in a space, with their sync state. Requires the `pfm:read` scope. The API only reads: the user reconnects or refreshes a bank in the Visor app. ### User - [Show the current user](https://docs.visorfinance.app/api-reference/user/show-the-current-user.md): Returns the profile of the token's user: name, locale, display currency, effective plan, and active space. Requires the `pfm:read` scope. It never returns the CPF, the phone, or a token. ### Notifications - [List notifications](https://docs.visorfinance.app/api-reference/notifications/list-notifications.md): Returns one page of the user's inbox, newest first. Requires the `pfm:read` scope. Pass `next_cursor` as `after` to read the next page; it is `null` on the last page. Notifications the user cleared do not appear. ### Pix payments - [Start a Pix payment](https://docs.visorfinance.app/api-reference/pix-payments/start-a-pix-payment.md): Starts a Pix to one Pix key and returns it with a `start_url`. Open `start_url` in the browser: the first Pix from a bank opens the bank page to authorize Visor, then every Pix opens the page where the user confirms with biometrics. Nothing is paid until the user confirms there. Requires the `pix:pa… - [Get a Pix payment](https://docs.visorfinance.app/api-reference/pix-payments/get-a-pix-payment.md): Returns the status of a Pix you started. Poll it every few seconds until `status` is `completed`, `failed`, `canceled`, or `expired`. While it is `pending`, `start_url` opens the page the user needs next. Requires the `pix:payments:write` scope (Visor CLI login). ## OpenAPI Specs - [openapi](/openapi.json) > The links below point to documentation indexes. Follow each `/_llms/` index recursively until you reach documentation pages. ## Indexes - [Brazilian Portuguese (12 pages)](https://docs.visorfinance.app/_llms/pt-br.txt): Documentation for Brazilian Portuguese. This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.