Developer Platform
Build with Famulor AI
in your own product
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.
<50ms
API latency
99.9%
uptime SLA
5 APIs
channels
Free
to get started
API Explorer
One platform,
every channel
Famulor exposes a unified HTTP API plus webhooks and MCP tooling. Covers calls, assistants with knowledge bases, conversations and AI replies, WhatsApp Business, SMS, phone numbers & SIP, campaigns/leads β one intro page; browse the interactive reference after you skim the pillars below.
- 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 Famulor phone numbers
- Webhooks β post-call payload, conversation-ended, assistant toggles (signed)
- MCP Server & Famulor Skill β connect Cursor, Claude, and other MCP hosts
curl --request GET \
--url https://app.famulor.de/api/user/calls \
--header 'Authorization: Bearer YOUR_API_TOKEN'// List your AI calls (User API)
const res = await fetch('https://app.famulor.de/api/user/calls', {
headers: {
Authorization: 'Bearer YOUR_API_TOKEN',
Accept: 'application/json',
},
})
const payload = await res.json()
// β Example: pagination + call records β see Calls / List in docsWhat you can build
Integrate in any stack
From simple outbound call triggers to full AI communication platforms β the Famulor API adapts to your product.
Webhooks
React to every call,
in real time
Famulor sends signed webhook events to your endpoint for every step of the call lifecycle. No polling needed β your backend instantly knows when a lead is qualified or a booking is confirmed.
call.startedFired when the call connects
call.variable_extractedAI has captured a key lead data point
call.completedCall ended β outcome & transcript ready
appointment.createdBooking confirmed in your calendar
// Express webhook handler
app.post('/webhooks/famulor', (req, res) => {
const sig = req.headers['x-famulor-signature']
const body = req.rawBody
// Verify HMAC-SHA256 signature
if (!verifySignature(body, sig, process.env.WEBHOOK_SECRET)) {
return res.status(401).send('Unauthorized')
}
const { event, call_id, outcome, metadata } = req.body
switch (event) {
case 'call.completed':
await crm.updateLead(metadata.lead_id, { status: outcome })
break
case 'appointment.created':
await calendar.confirmBooking(req.body.appointment)
break
}
res.sendStatus(200)
})MCP Integration
Give your AI agent
a real phone line
Famulor ships a fully compliant MCP (Model Context Protocol) server. Connect it to Claude, GPT-4, or any MCP host β and let your AI agents make real phone calls, send WhatsApp messages, and manage leads autonomously.
// Connect Famulor as an MCP server
import Anthropic from '@anthropic-ai/sdk'
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://mcp.famulor.io',
headers: { Authorization: 'Bearer YOUR_API_TOKEN' },
}],
messages: [{
role: 'user',
content: 'Call lead_001 and qualify them for the Pro plan.',
}],
})Compatible with
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
# User API Β· Bearer token (see API Reference β Authentication)
curl --request GET \
--url https://app.famulor.de/api/user/calls \
--header 'Authorization: Bearer YOUR_API_TOKEN'
# Verify webhook signature in your handler
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)Resources
Get Started
Ready to build?
Sign up for free and get your API key instantly. No credit card required for the trial β start making AI phone calls in under 5 minutes.