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

# Connections

> Let an agent read records in the business systems you already use

A connection lets one of your agents read records in a system you use: your accounting, CRM, tax, shipping or spend system, or your code repositories. The agent reads only the account you approved.

## Systems

| Category | Systems | What an agent reads |
| - | - | - |
| [Accounting](/api-reference/connections/accounting) | QuickBooks, Zoho Books, Xero | Invoices, bills and reports |
| [CRM](/api-reference/connections/crm) | Salesforce, HubSpot | Accounts, contacts and opportunities |
| [Tax](/api-reference/connections/tax) | TaxJar | Rates and the tax on an order |
| [Shipping](/api-reference/connections/shipping) | Shippo, ShipEngine | Shipments, tracking and quoted rates |
| [Procurement](/api-reference/connections/procurement) | Ramp | Card transactions, bills and suppliers |
| [Repositories](/api-reference/connections/repositories) | GitHub | Code in the repositories you choose |

Each read is charged per call; see [Pricing](/pricing).

## Connect

Start a connection with `POST /v1/connections` ([routes](/api-reference/connections/repositories)); GitHub repositories can also be connected from the console. You approve access on the system's own page, signed in there as yourself. OneShot never asks for your password. A system that authorizes with a key (TaxJar, ShipEngine) takes the key with the request instead.

QuickBooks asks you to grant full access to the company. OneShot only reads from it.

## What a connection does

Connections read. The one exception is a note on a CRM record, written only after you approve it ([CRM](/api-reference/connections/crm#write-a-note)).

OneShot keeps none of the records it reads: each answer comes from the system at the time of the call.

Keys and client secrets you enter are stored encrypted, used only for that connection, and deleted when you revoke it. Sign-ins are held by the systems' authorization service, never by OneShot in readable form.

## Several connections to one system

An agent can hold several connections to one system, for example two QuickBooks companies. Each has its own name and an `account_label` naming the account it reads. List them with `GET /v1/connections` and send the one you want as `connection_id`.

## Revoke and reconnect

Revoke a connection in the console or with `DELETE /v1/connections/:id`. Reads stop at once, and a stored key is deleted.

A sign-in can end at the system, for example after a password change. The connection then shows `expired` and reads answer `409 connection_expired`. Reconnect it from the console, or with `POST /v1/connections/{id}/reconnect`. A connection whose account was disconnected at the system shows `revoked`: start a new one.


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