Base URL
Authentication
All API requests require an API key passed in theAuthorization header as a Bearer token:
Endpoints
The API exposes five groups of endpoints:CRM Resources
CRUD operations on CRM resources. The same endpoints work across all connected providers — Salesforce, HubSpot, Zoho CRM, Pipedrive, LeadConnector, Monday CRM, and more.
Writable resources:
contact, lead, deal, meeting, company, note, task, activity, appointment
Read-only resources: owner, pipeline — support GET /{resource} (list) and GET /{resource}/{id} (get) only. These are managed by the provider and cannot be created, updated, or deleted through this API.
Accounting Resources
CRUD operations on accounting resources. The same endpoints work across all connected providers (currently QuickBooks Online).
Writable resources:
invoice, contact, account, payment, tax_rate, journal_entry, expense, purchase_order, sales_order, credit_note, vendor_credit, item, tracking_category, accounting_period, payment_method, payment_term, employee, project, attachment, expense_report, item_fulfillment
Update-only: company_info — singleton per realm; cannot be created or deleted.
Read-only resources: address, phone_number, balance_sheet, income_statement, cash_flow_statement, general_ledger_transaction, transaction, bank_feed_account, bank_feed_transaction — list and get only.
The created_after / created_before query params filter by record creation timestamp on regular resources. On the three financial reports (balance_sheet, income_statement, cash_flow_statement) they are reinterpreted as the report’s period bounds — created_before on balance_sheet is the as-of snapshot date.
Field Mappings
Connect
MCP Workspaces
Manage workspaces — router-mode MCP servers scoped to an optional set of integrations. These endpoints are authenticated with your API key (Authorization: Bearer sk_live_* / sk_test_*). The environment is derived from the key — sk_test_* keys operate on sandbox, sk_live_* on production — so it is never sent in the request.
Toolkit and database connectors (GitHub, Gmail, Notion, Jira, PostgreSQL) are not unified REST resources like /crm or /accounting — they are accessed through the MCP runtime (/mcp/{workspaceId}) and the HTTP chat endpoint (/mcp/{workspaceId}/chat), scoped by the workspace’s integrations.
GET /mcp/workspaces
Query parameters:
POST /mcp/workspaces
Request body. The environment is taken from the API key, so it is not part of the body.
PATCH /mcp/workspaces/{id}
Partial update — send only the fields you want to change. The environment is key-derived and cannot be changed here.
DELETE /mcp/workspaces/{id}
Archives the workspace (soft delete) and responds with 204 No Content. The {id} path parameter must be a valid UUID.
router mode), returns 404 Not Found. Invalid request bodies return 422 Unprocessable Entity with per-field validation messages.
HTTP Streaming Chat
Managing session context
Each chat session supports a stored context — a free-text string (up to 8 000 characters) that is encrypted at rest and automatically prepended to the agent’s system prompt on every turn of the session. Use these endpoints to set, read, or remove that context out-of-band (e.g. from your backend before the user’s first message).sessionId is the same UUID you pass as x-session-id on each chat call. All three endpoints authenticate with Authorization: Bearer <API_KEY>.
context field on POST /mcp/{workspaceId}/chat writes the same value — these CRUD endpoints let you manage it without sending a chat message.
Response Format
All responses follow a consistent envelope:Pagination
List endpoints use cursor-based pagination:
Response pagination metadata: