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

# API Reference

> Complete reference for the Echo REST API. Use the interactive playground to test endpoints directly.

## Base URL

```
https://api.meetecho.ai/v1
```

## Authentication

All `/v1/*` endpoints require an API key passed in the `x-api-key` header.

```bash theme={null}
-H "x-api-key: echo_6f437a610fbb..."
```

Your API key is returned at signup (in `default_project.api_key`) and shown exactly once. If you need to create additional keys or rotate an existing one, use the [API Keys endpoints](/api-reference/api-keys/create).

Auth endpoints (`/v1/auth/*`) are public — no key required.

## API Key Format

Keys always start with `echo_` followed by 64 hex characters:

```
echo_6f437a610fbb65e6a2742c60ef3e916a80f638522ff11fcc1c711b75fd958534
```

## Endpoint Groups

<CardGroup cols={2}>
  <Card title="Auth" icon="key" href="/api-reference/auth/signup">
    Sign up, log in, and refresh tokens.
  </Card>

  <Card title="Customers" icon="users" href="/api-reference/customers/create">
    Register and manage the people you want to call.
  </Card>

  <Card title="Agents" icon="robot" href="/api-reference/agents/create">
    Create and manage reusable voice personas.
  </Card>

  <Card title="Notifications" icon="phone" href="/api-reference/notifications/trigger">
    Trigger outbound calls and inspect results.
  </Card>

  <Card title="API Keys" icon="shield-halved" href="/api-reference/api-keys/create">
    Create and revoke project API keys.
  </Card>

  <Card title="Project" icon="gear" href="/api-reference/project/get">
    Inspect project settings.
  </Card>

  <Card title="Webhook Endpoints" icon="webhook" href="/api-reference/webhooks/create">
    Register and manage webhook endpoints with per-endpoint signing secrets.
  </Card>

  <Card title="Delivery Logs" icon="list-check" href="/api-reference/webhooks/deliveries/list-project">
    Inspect delivery history, per-attempt details, and manually retry failures.
  </Card>
</CardGroup>

## Error Codes

| Status             | Meaning                                                             |
| ------------------ | ------------------------------------------------------------------- |
| `400 Bad Request`  | Validation error on the request body                                |
| `401 Unauthorized` | Missing or invalid API key                                          |
| `403 Forbidden`    | Valid key but insufficient access                                   |
| `404 Not Found`    | Customer, agent, or notification not found in your project/business |
| `409 Conflict`     | `external_id` already exists for this project                       |

All errors return a JSON body:

```json theme={null}
{
  "statusCode": 404,
  "message": "Customer not found",
  "error": "Not Found"
}
```
