Essere Voice API

Quickstart

From zero to your first API call in about five minutes.

1. Create an API key

API access is included in the Pro plan. In your Essere dashboard, go to Developers → API keys → Create key, pick a scope (read, or read_write if you'll create contacts or manage webhooks), and copy the key.

Keys are shown once. Store it in a secret manager or environment variable — never in code or git.

export ESSERE_API_KEY="<paste your key here>"   # from the show-once modal

2. List your agents

curl https://voice-public-api.essere.ai/v1/agents \
  -H "Authorization: Bearer $ESSERE_API_KEY"
{
  "object": "list",
  "data": [
    {
      "id": "agt_1a2b3c4d5e6f7a8b9c0d1e2f",
      "name": "Reception Agent",
      "status": "active",
      "language": "en",
      "is_default": true,
      "created_at": "2026-06-01T09:12:00Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

3. List recent calls

curl "https://voice-public-api.essere.ai/v1/calls?limit=5&from=2026-07-01T00:00:00Z" \
  -H "Authorization: Bearer $ESSERE_API_KEY"

Each call includes summary, sentiment, outcome, and has_recording. Keep the id (call_...) of one call for the next step.

4. Fetch a transcript

curl https://voice-public-api.essere.ai/v1/calls/call_9f8e7d6c5b4a3f2e1d0c9b8a/transcript \
  -H "Authorization: Bearer $ESSERE_API_KEY"
{
  "call_id": "call_9f8e7d6c5b4a3f2e1d0c9b8a",
  "turns": [
    {"role": "agent", "text": "Hi, you've reached Horizon Estates. How can I help?"},
    {"role": "caller", "text": "I'm calling about the two-bedroom on Makarios Avenue."}
  ]
}

To download the audio instead, GET /v1/calls/{id}/recording streams the file bytes directly (audio/mpeg).

5. Create a contact (read_write scope)

Contacts feed your agent's memory: on the next call from that number, the agent already knows who's calling.

curl -X POST https://voice-public-api.essere.ai/v1/contacts \
  -H "Authorization: Bearer $ESSERE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: quickstart-contact-001" \
  -d '{
    "phone": "+35799123456",
    "name": "Maria Georgiou",
    "notes": "Interested in 2-bedroom apartments, budget €250k.",
    "fields": {"source": "website-form"}
  }'

Posting the same phone again updates the existing contact (upsert).

Next steps