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.
POST /v1/calls
{
"assistant_id": "front-desk",
"to": "+1555010148"
}
→ 202 Accepted
{ "call_id": "call_9f2ac1" }0
API channels
0
languages
3.1
OpenAPI spec
Free
to get started
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
curl --request GET \
--url https://app.famulor.io/api/user/calls \
--header 'Authorization: Bearer YOUR_API_TOKEN'// 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()Integrate in any stack
From a simple outbound call trigger to a full AI communication platform: the Famulor API adapts to your product.
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.startedFired when the call connects
call.variable_extractedAI has captured a key data point
call.completedCall ended: outcome & transcript ready
appointment.createdBooking confirmed in your calendar
{
"event": "call.completed",
"call_id": "call_9f2ac1",
"assistant": "front-desk",
"outcome": "appointment_booked",
"duration_seconds": 96
}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.
// 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
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
# 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)

