Skip to main content
This is the endpoint reference for the Open API. Every path below is relative to your API base and the /v1/open prefix, and every request needs an API key with the right permission scope.
https://api.a2v2.ai is the production API base URL (see API Overview). <AGENT_ID> is the ID of the agent your key is scoped to. Where a request or response body isn’t fully documented below, treat it as to be confirmed — call the matching schema endpoint (for contacts and forms) to see the exact fields your agent expects.

How endpoints are addressed

Most endpoints are scoped to an agent and a contact in the URL path. Contacts can be addressed two ways:

Contacts

Create, read, update, and archive CRM contacts. Requires the Contact Access scope (contacts) with the matching action.

List query parameters

The list endpoint (GET /contacts/chatbots/<AGENT_ID>) supports:

Contact fields

A contact accepts standard fields plus a free-form customFields object for your own data. The standard fields include:
primaryEmail is required when creating a contact via the API.
The exact required/optional status and validation rules per field can vary by how the agent’s CRM schema is configured. Call GET /contacts/schema/chatbots/<AGENT_ID> to get the authoritative field list for your agent. Field-level types and rules beyond primaryEmail being required are to be confirmed against that schema.

Example — create a contact


Contact files

Upload and manage files attached to a contact. Requires the Contact Access scope (contacts). For file lists, sortBy accepts createdAt, fileName, or fileSize; limit is 1–100. The delete request optionally accepts a reason field in the body.
The <contactId> here is the A2V2 contact ID. Allowed file types and the maximum file size are enforced by the platform; the exact limits are to be confirmed.

Forms

Submit and read CRM form submissions on behalf of a contact.
Forms endpoints require a forms permission on the API key. The dashboard currently exposes Contact Access and Document Extraction Access scopes — the availability of a dedicated forms scope is to be confirmed. Verify your key can call these endpoints before building on them, or contact support.
The submission status filter accepts draft, submitted, under_review, approved, rejected, or archived. When submitting, formData is a JSON object keyed by the template’s fields — call the template schema endpoint to see the expected keys.

Document extraction

Extract structured data from an uploaded document using AI. Requires the Document Extraction Access scope (document-extraction).

Extract request

Send as multipart/form-data: A schema field looks like:
Supported field type values include string, number, date, boolean, email, array, and object.

Extract response

data holds the extracted fields keyed by your schema; metadata.confidence is an overall confidence score, with per-field scores in fieldConfidences.
Document extraction consumes credits like other AI operations. See Credits explained.

Managing keys

API keys themselves are created and managed in the dashboard, not with an API key — see Authentication and API keys in Settings. Usage statistics for your keys are also available in the dashboard.

Authentication

Create a key and grant the right scopes.

API Overview

Base URL, response format, pagination, and rate limits.

CRM Contacts

How contacts work in the dashboard.

CRM Forms

Build the form templates these endpoints submit to.