REST API
Create calls, manage agents and campaigns, read transcripts.
Developers
REST API and signed webhooks for calls, campaigns and transcripts.
Create calls, manage agents and campaigns, read transcripts.
conversation.ended and appointment.booked with HMAC signatures and retries.
Plain HTTPS and JSON, with copy-ready examples for Node.js, Python and cURL.
Test agents safely before going live.
conversation.endedA call finished, with outcome, duration and contact.appointment.bookedA confirmed appointment was created.Each request carries Frontdesk-Signature: t=<seconds>,v1=<HMAC-SHA256 of t.body>. Recompute it with your signing secret and reject old timestamps.
const res = await fetch("https://api.frontdesk.example/v1/calls/outbound", { method: "POST", headers: { Authorization: `Bearer ${process.env.FRONTDESK_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ contactId: "c_8f2…", from: "+15550100190", idempotencyKey: crypto.randomUUID() })});// → 202 Accepted · conversation.ended webhook when the call finishesimport os, uuid, requests res = requests.post( "https://api.frontdesk.example/v1/calls/outbound", headers={"Authorization": f"Bearer {os.environ['FRONTDESK_KEY']}"}, json={"contactId": "c_8f2…", "from": "+15550100190", "idempotencyKey": str(uuid.uuid4())},)# → 202 Accepted · conversation.ended webhook when the call finishescurl -X POST https://api.frontdesk.example/v1/calls/outbound \ -H "Authorization: Bearer $FRONTDESK_KEY" \ -H "Content-Type: application/json" \ -d '{"contactId":"c_8f2…","from":"+15550100190","idempotencyKey":"7d1c…"}' # → 202 AcceptedTalk to the AI yourself. It takes ten seconds.