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

# Introduction

> Call SquawkVoice from your own systems to place campaign calls and manage agent guidelines

The SquawkVoice API lets your own systems act on your account without anyone signing in to Studio. Use it to place a campaign call the moment something happens in your CRM or on your website, or to keep an agent's guidelines in step with content you maintain elsewhere and publish them.

> [card] [On-Demand Calls](https://docs.squawkvoice.ai/api-reference/on-demand-calls/place-call.md)
>
> Place a call for one contact through a voice campaign, and cancel it before it is dialed.

> [card] [Agents](https://docs.squawkvoice.ai/api-reference/agents/get-guidelines.md)
>
> Read and replace an agent's guidelines, publish the agent, and see which version is live.

## Base URL

Every path in this reference starts from your API base URL. Copy it from Studio: open **Manage → Campaigns**, open any campaign, go to its **On-Demand** tab and select **API reference**. The base URL is the first field in the drawer, with a copy button.

```text theme={null}
https://api.squawkvoice.ai
```

That is the usual value, and the one the examples use. Use the one Studio shows you if it's different: a key only works against the base URL of the Studio it was created in.

## Authentication

Send an API key in the `X-API-Key` header of every request. Create keys in Studio at **Manage → API Keys**. See [Authentication](https://docs.squawkvoice.ai/api-reference/authentication.md).

## Make Your First Request

Read an agent's guidelines. Copy the agent's ID with **Copy ID** in the agent's header in Studio, then run:

```bash theme={null}
curl https://api.squawkvoice.ai/api/v1/assistants/{assistantId}/guidelines \
  -H "X-API-Key: <your API key>"
```

A `200` with `"success": true` means your key and base URL work.

## Requests and Responses

Request bodies are JSON, sent with `Content-Type: application/json`. Responses are JSON. A successful one wraps its result in `data`:

```json theme={null}
{
  "success": true,
  "data": { "assistant_id": "3c7e1a52-8d4f-4b9a-a0e6-5f2d9c8b1e74", "needs_publish": false }
}
```

An error comes back with a `4xx` or `5xx` status and a message saying what went wrong. See [Errors and Rate Limits](https://docs.squawkvoice.ai/api-reference/errors.md).

## Try It in the Docs

Every endpoint page has a **Try it** button that sends a real request with the key you enter, against your real account. Placing a call that way dials a real person, replacing guidelines changes the agent's draft, and publishing puts the draft live, exactly as they would from your own code.


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