---
title: "API reference | Nuvio Docs"
description: "Read and write your Nuvio company's records from your own systems."
url: https://nuvio.io/docs/api
---

# API reference

The Nuvio API is organized around REST. It has predictable, resource-oriented URLs under a versioned path (`/v1`), accepts and returns JSON with camelCase field names, uses standard HTTP response codes, and authenticates every request with an [API key](https://nuvio.io/docs/api/authentication).

An API key belongs to one Nuvio company. Every request reads or writes that company's records: bank accounts and transactions, customers and suppliers, incomes, expenses, payments, products and services, projects, tags and taxes.

Every response has the same envelope: `success`, `errors` and `data`. When a request fails, `errors` says why; see [Errors](https://nuvio.io/docs/api/errors). Ids are UUIDs and dates are `YYYY-MM-DD`.

The API works on one record per request; there are no bulk endpoints. Each company can make up to 1,000 requests an hour.

## Resources

### Accounts & Transactions

-   [GET `/v1/transactions` List all Transactions](https://nuvio.io/docs/api/list-transactions)
-   [POST `/v1/transactions` Add a new Transaction](https://nuvio.io/docs/api/create-transaction)
-   [GET `/v1/transactions/{id}` Get a Transaction by ID](https://nuvio.io/docs/api/get-transaction)
-   [PUT `/v1/transactions/{id}` Update Transaction](https://nuvio.io/docs/api/update-transaction)

### Bank Accounts

-   [GET `/v1/accounts` List all Bank Accounts](https://nuvio.io/docs/api/list-bank-accounts)
-   [POST `/v1/accounts` Create a new Bank Account](https://nuvio.io/docs/api/create-bank-account)
-   [GET `/v1/accounts/{id}` Get a Bank Account by ID](https://nuvio.io/docs/api/get-bank-account)
-   [PUT `/v1/accounts/{id}` Update Bank Account](https://nuvio.io/docs/api/update-bank-account)

### Customers & Suppliers

-   [GET `/v1/business-entities` List all Customers or Suppliers](https://nuvio.io/docs/api/list-business-entities)
-   [POST `/v1/business-entities` Create a new Customer or Supplier](https://nuvio.io/docs/api/create-business-entity)
-   [GET `/v1/business-entities/{id}` Get a Customer or Supplier by ID](https://nuvio.io/docs/api/get-business-entity)
-   [PUT `/v1/business-entities/{id}` Update Customer or Supplier](https://nuvio.io/docs/api/update-business-entity)

### Expenses

-   [POST `/v1/list-expenses` List all expenses](https://nuvio.io/docs/api/list-expenses)
-   [GET `/v1/expense/{id}` Get an Expense by ID](https://nuvio.io/docs/api/get-expense)
-   [PUT `/v1/expense/{id}` Update expense](https://nuvio.io/docs/api/update-expense)
-   [POST `/v1/expense` Create a new Expense](https://nuvio.io/docs/api/create-expense)

### Income

-   [POST `/v1/list-incomes` List all incomes](https://nuvio.io/docs/api/list-incomes)
-   [GET `/v1/income/{id}` Get an Income by ID](https://nuvio.io/docs/api/get-income)
-   [PUT `/v1/income/{id}` Update income](https://nuvio.io/docs/api/update-income)
-   [POST `/v1/income` Create a new Income](https://nuvio.io/docs/api/create-income)

### Payments

-   [POST `/v1/add-payment` Record a new payment](https://nuvio.io/docs/api/add-payment)
-   [POST `/v1/match-payment/{transactionId}` Match payment with an existing Transaction](https://nuvio.io/docs/api/match-payment)

### Products & Services

-   [GET `/v1/product-services` List all Products & Services](https://nuvio.io/docs/api/list-products)
-   [POST `/v1/product-services` Create a new Product or Service](https://nuvio.io/docs/api/create-product)
-   [GET `/v1/product-services/{id}` Get a Product / Service by ID](https://nuvio.io/docs/api/get-product)
-   [PUT `/v1/product-services/{id}` Update Product or Service](https://nuvio.io/docs/api/update-product)

### Projects

-   [GET `/v1/project` List all Projects](https://nuvio.io/docs/api/list-projects)
-   [POST `/v1/project` Create a new Project](https://nuvio.io/docs/api/create-project)
-   [GET `/v1/project/{id}` Get a Project by ID](https://nuvio.io/docs/api/get-project)
-   [PUT `/v1/project/{id}` Update Project](https://nuvio.io/docs/api/update-project)

### Tags

-   [GET `/v1/tags` List all Tags](https://nuvio.io/docs/api/list-tags)
-   [POST `/v1/tags` Create a new Tag](https://nuvio.io/docs/api/create-tag)
-   [GET `/v1/tags/{id}` Get a Tag by ID](https://nuvio.io/docs/api/get-tag)
-   [PUT `/v1/tags/{id}` Update Tag](https://nuvio.io/docs/api/update-tag)

### Taxes

-   [GET `/v1/tax` Tax List](https://nuvio.io/docs/api/list-taxes)

## Just getting started?

Create an API key in Nuvio, then send your first request. [Authentication](https://nuvio.io/docs/api/authentication) shows both.

## Not a developer?

Connect Claude, ChatGPT or Grok to Nuvio and work with your books in plain language, no code needed. See [Connect an AI agent](https://nuvio.io/docs/ai-agents).

Base URL

```
https://api.nuvio.io
```

Rate limit

1,000 requests an hour for each company. A request over the limit gets `429 Too Many Requests`; wait and try again.
