Developer Platform

Build with Famulor AI in your own product

A full REST API for voice calls, WhatsApp AI, SMS and messaging, plus an MCP server, real-time webhooks, and dashboard embedding. Add AI communication to any product in minutes.

calls.create.ts
POST /v1/calls
{
  "assistant_id": "front-desk",
  "to": "+1555010148"
}

→ 202 Accepted
{ "call_id": "call_9f2ac1" }
call.completed
Webhook delivered
MCP server online

0

API channels

0

languages

3.1

OpenAPI spec

Free

to get started

API Explorer

One platform, every channel

One HTTP API plus webhooks and MCP: calls, assistants, WhatsApp Business, SMS, numbers & SIP, campaigns and leads.

  • Calls & campaigns: outbound/inbound lifecycle, statuses, integrations
  • Assistants & knowledge bases: prompts, voices, models, KB documents
  • Conversations & AI replies: chat sessions, messaging, takeover handoff
  • WhatsApp Business: senders, templates, sessions within the 24h window
  • SMS: programmatic sends tied to your Famulor phone numbers
  • Webhooks: signed post-call and conversation-ended payloads
  • MCP Server & Famulor Skill: connect MCP-compatible AI hosts
Shell · Quick start (cURL)
curl --request GET \
  --url https://app.famulor.io/api/user/calls \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
JavaScript · Voice API
// List your AI calls (User API)
const res = await fetch('https://app.famulor.io/api/v1/calls', {
  headers: {
    Authorization: 'Bearer YOUR_API_TOKEN',
    Accept: 'application/json',
  },
})
const payload = await res.json()
Webhooks

React to every call, in real time

Signed webhook events to your endpoint for every step of the call. No polling: your backend knows when a lead is qualified or a booking is confirmed.

call.started

Fired when the call connects

call.variable_extracted

AI has captured a key data point

call.completed

Call ended: outcome & transcript ready

appointment.created

Booking confirmed in your calendar

webhook.payload.json
{
  "event": "call.completed",
  "call_id": "call_9f2ac1",
  "assistant": "front-desk",
  "outcome": "appointment_booked",
  "duration_seconds": 96
}
MCP Integration

Give your AI agent a real phone line

An MCP (Model Context Protocol) server for Claude and other hosts. Your agents place calls, send WhatsApp and manage leads.

stdio transport
SSE transport
OAuth 2.0 auth
Full tool schema
JavaScript · Claude + Famulor MCP
// Connect Famulor as an MCP server
const client = new Anthropic();

const response = await client.messages.create({
  model: 'claude-opus-4-6',
  max_tokens: 1024,
  tools: [{
    type: 'mcp',
    server_label: 'famulor',
    server_url:   'https://app.famulor.io/mcp',
    headers:      { Authorization: 'Bearer YOUR_API_TOKEN' },
  }],
});

Compatible with

Claude (Anthropic)CursorWindsurfClaude Code
Authentication

Secure by default

Every API request is authenticated with a scoped Bearer token. Webhook payloads are signed with HMAC-SHA256 so you can verify authenticity before processing.

  • Bearer token authentication: per-team, rotatable
  • Webhook HMAC-SHA256 signature verification
  • TLS encryption on all endpoints
  • IP allowlist support for enterprise plans
Shell + Python · Auth examples
# Bearer token
curl --request GET \
  --url https://app.famulor.io/api/user/calls \
  --header 'Authorization: Bearer YOUR_API_TOKEN'

# Verify a webhook signature
import hmac, hashlib

def verify_signature(payload: bytes, sig: str, secret: str) -> bool:
    expected = hmac.new(secret.encode(), payload, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, sig)

Ready to build?

Sign up for free and get your API key in minutes.