> ## Documentation Index
> Fetch the complete documentation index at: https://docs.visorfinance.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Spaces and reference data

> Find the IDs of your spaces, accounts, categories, and tags.

Most operations act on one space. Read the IDs you need once, store them in your script, and read them again when your setup in Visor changes.

The lists on this page return every item in one response; they have no pages. Only the [transaction list](https://docs.visorfinance.app/transactions.md#list-and-export-your-history) and the [notification list](https://docs.visorfinance.app/financial-data.md#your-profile-and-notifications) are paginated.

## Spaces

[`GET /v1/spaces`](https://docs.visorfinance.app/api-reference/spaces/list-accessible-spaces) lists the spaces you own and the spaces you were invited to. Every other operation takes a space `id` in its path:

```text theme={null}
/v1/spaces/{space_id}/accounts
```

A space ID that does not exist, or that belongs to a space you cannot access, receives `404 NOT_FOUND`. The response is the same in both cases.

## Accounts

[`GET /v1/spaces/{space_id}/accounts`](https://docs.visorfinance.app/api-reference/accounts/list-accounts) lists the bank accounts, credit cards, and investment accounts of the space.

| Field | Meaning |
| - | - |
| `type` | `bank`, `credit`, or `investment` |
| `source` | `connected` for an account that syncs from a bank, `manual` for an account you created |
| `balance` | Signed decimal string. A credit card balance is negative when you owe money. |
| `currency_code` | ISO 4217 code of the balance, such as `BRL` |
| `provider_name` | The bank of a connected account, or `null` for a manual account |

The response never includes account numbers, card numbers, or bank credentials.

## Categories

[`GET /v1/spaces/{space_id}/categories`](https://docs.visorfinance.app/api-reference/categories/list-categories) lists the categories Visor provides (`kind: system`) and the categories you created in the space (`kind: custom`).

* Match a system category by its `key`, such as `category.food_and_drinks`. The key is stable.
* The `name` is the name your space shows. A system category is in English, unless you renamed it in the space, and the name can change. The `name` of a custom category is the name you gave it.
* `names` includes English (`en`) and Brazilian Portuguese (`pt-BR`) labels, such as `{"en": "Groceries", "pt-BR": "Supermercado"}`. Both labels use the app's translations and fallbacks, and a rename in the space does not change them. Both contain your chosen name for a custom category.
* `type` is `expense` or `income`. It is `null` for a system category that Visor created from a bank category and has not classified yet.
* A subcategory has the `id` of its parent in `parent_id`, as your space shows it: you can move a system category under another category or to the top level. A top-level category has `parent_id: null`.

## Tags

[`GET /v1/spaces/{space_id}/tags`](https://docs.visorfinance.app/api-reference/tags/list-tags) lists the tags of the space, ordered by name.

## Hidden accounts and categories

The account and category lists leave out what you hid in Visor. Add `include_hidden=true` to include them, with `hidden: true`:

```bash theme={null}
curl "https://api.visorfinance.app/v1/spaces/SPACE_ID/categories?include_hidden=true" \
  --header "Authorization: Bearer $VISOR_TOKEN"
```

An invalid value, such as `yes`, receives `400 BAD_REQUEST` with the parameter name in `details.parameter`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.