Essere Voice API

Build on your AI voice agents.

REST API, signed webhooks, and an MCP server for everything your Essere agents do — calls, transcripts, insights, appointments, contacts, and usage.

Quickstart API Reference

Your first request

curl https://voice-public-api.essere.ai/v1/calls?limit=3 \
  -H "Authorization: Bearer $ESSERE_API_KEY"

Webhooks

Signed call.completed, appointment.booked, and lead.captured events pushed to your endpoint, with retries and a delivery log.

Webhooks guide →

No-code

Works today with Zapier's generic webhook module and n8n's HTTP Request node — no custom app needed.

Zapier · n8n

AI-native

llms.txt, llms-full.txt, a public OpenAPI spec, and an MCP server.

Paste this into your AI

Building the integration with an AI assistant or coding agent? Give it this prompt — it points at everything it needs.

You are integrating with the Essere Voice API (https://voice-public-api.essere.ai).

Read these first:
- Full docs for LLMs: https://voice-developers.essere.ai/llms-full.txt
- OpenAPI spec: https://voice-public-api.essere.ai/openapi.json

Key facts:
- Auth: send "Authorization: Bearer <API key>" on every request. Keys look
  like vk_live_... (production) or vk_test_... (staging) and are created in
  the Essere dashboard under Developers (Pro plan). Read the key from an
  environment variable — never ask the user to paste it into this chat and
  never hard-code it. Prefer a read-scope key unless the integration writes
  contacts or manages webhooks.
- Base URL: https://voice-public-api.essere.ai/v1
- Errors: JSON body {"error": {"type", "code", "message"}}. Handle
  401 invalid_api_key, 403 plan_required / insufficient_scope,
  404 resource_not_found, 429 rate_limit_exceeded (respect Retry-After).
- Lists are cursor-paginated (?limit=&cursor=); responses look like
  {"object":"list","data":[...],"has_more":true,"next_cursor":"..."}.
  Follow next_cursor until has_more is false.
- Writes accept an Idempotency-Key header — send a unique one per operation.
- Webhooks: subscribe via POST /v1/webhook-endpoints; verify the
  X-Essere-Signature header (HMAC-SHA256 hex of "<t>.<raw body>" with your
  whsec_ secret; reject events older than 5 minutes).
- MCP: https://voice-public-api.essere.ai/mcp (streamable HTTP, same Bearer key) if you support MCP.

My task: [describe the integration you want to build]