> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.jelliu.co/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.jelliu.co/_mcp/server.

# Introduction

Jelliu runs AI agents that talk to your customers: they place and answer **phone calls**, reply on **WhatsApp**, handle **email**, and chat on your website through an embeddable **web chat widget**. The Jelliu API gives your own systems programmatic access to the same workspace you manage in the dashboard.

With the API you can:

* **Manage agents** — list, create and update the voice and chat agents in your workspace.
* **Run campaigns** — create outreach campaigns on the `voice`, `whatsapp`, `webchat` or `email` channel, load contacts, and activate or pause them.
* **Work with contacts** — add contacts one by one or in bulk, and read your workspace-wide contact list.
* **Read calls and conversations** — outcomes, summaries and transcripts after each interaction.
* **Pull analytics** — the KPIs your dashboard shows.
* **React to events** — receive signed [webhooks](/webhooks) when a call ends or a campaign completes.
* **Connect AI assistants** — expose your workspace to Claude, ChatGPT or Cursor through the [MCP server](/mcp).

## Base URLs

| Surface                | URL                                                      |
| ---------------------- | -------------------------------------------------------- |
| REST API               | `https://api.jelliu.co`                                  |
| MCP server             | `https://mcp.jelliu.co`                                  |
| Web chat widget loader | `https://api.jelliu.co/widget-embed/{widgetId}/embed.js` |
| Dashboard              | `https://app.jelliu.co`                                  |

Every REST endpoint lives under the `/api` prefix, for example `https://api.jelliu.co/api/agents`. Requests and responses are JSON. Successful responses wrap their payload in a `data` field:

```json
{
  "data": { "...": "..." }
}
```

The REST API is meant for **server-to-server** calls. Browser requests from your own domain are rejected by CORS, and an API key must never ship to a browser. To put an agent on a web page, use the [web chat widget](/widget) instead.

## Where to go next

#### [Quickstart](/quickstart)

Create an API key, list your agents and create your first campaign.

#### [Authentication](/authentication)

API key format, scopes, and what each scope can reach.

#### [Webhooks](/webhooks)

Receive signed events and verify them.

#### [MCP server](/mcp)

Operate Jelliu from Claude, ChatGPT or Cursor.

#### [API reference](/api-reference)

Every endpoint, parameter and response.