# RelationsAI developer documentation

**Availability: Preview**

The RelationsAI API lets your software do what your team does in the RelationsAI console: place outbound calls with an AI voice agent, run calling campaigns, keep contacts and do-not-call lists in sync, and receive events when calls end. It is a JSON REST API over HTTPS, versioned under `/v1`, with test keys for a free, simulated sandbox and live keys for real calls.

  - [Quickstart](/getting-started/quickstart): Create a test key and place your first simulated call.
  - [API reference](/api): Every operation, parameter, response and error.
  - [Receive webhooks](/guides/receiving-webhooks): Get notified when calls end and campaigns change state.
  - [Error codes](/fundamentals/error-codes): What each error means, whether to retry and how to fix it.

## What you can build

- **Call from your CRM.** Place a call the moment a lead arrives, passing the lead's name and details as call variables, and write the outcome back when the call settles.
- **Run campaigns from your data.** Create a campaign, add recipients from your warehouse, start it on a schedule, and pause, resume or stop it from your own tools.
- **Keep data consistent.** Sync contacts, consent and the do-not-call list between RelationsAI and your systems, so every call respects the same rules.
- **React to events.** Receive signed webhooks when a call ends, when its transcript, recording and analysis are final, and when a campaign changes state.

## How it fits together

You build, test and publish agents in the RelationsAI console; the API reads them and uses them to place calls. Every API key belongs to one workspace and one mode: a test key works against a simulated sandbox that never dials anyone or charges anything, and a live key places real calls charged to your workspace. Read [Platform overview](/getting-started/platform-overview) for the full picture, and [API availability](/getting-started/api-availability) for what the API covers today.

## Start here

1. [Quickstart](/getting-started/quickstart): a complete, free test-mode call in about five minutes.
2. [Authentication](/getting-started/authentication) and [API keys](/getting-started/api-keys): how keys, scopes and modes work.
3. [Test mode](/getting-started/test-mode): the simulated outcomes you can trigger.
4. [Error handling](/fundamentals/error-handling) and [Idempotency](/fundamentals/idempotency): how to handle failures and retry without repeating an action, before you go live.
5. [Going live](/guides/going-live) when you are ready for real calls.

## How the docs are organised

**Getting started** explains keys, environments and the core objects. **Guides** walk through complete tasks. **API fundamentals** covers the conventions every request follows: errors, idempotency, pagination, rate limits and data formats. The **API reference** is generated from the OpenAPI contract, which you can also download as [JSON](/openapi.json) or [YAML](/openapi.yaml). There is no official SDK yet: every example uses plain HTTP in cURL, JavaScript (Node.js 20+ `fetch`) and Python (`requests`).

## Docs for AI tools

These docs are also published as [llms.txt](/llms.txt), [llms-full.txt](/llms-full.txt) and as Markdown: add `.md` to any page URL.

## Getting help

Email [support@relationsai.com](mailto:support@relationsai.com) and include the `request_id` of the request you are asking about. See [Support](/resources/support) for what to include and what never to send.
