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: API sends, two-way conversations with AI replies, history and manual replies
  • Webhooks: post-call, conversation-ended and signed booking payloads
  • MCP Server & Famulor Skill: connect MCP-compatible AI hosts
Shell · Quick start (cURL)
curl --request GET \
  --url https://app.famulor.io/api/v1/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()
White-Label API

Your platform. Your customers.

Build your own customer portal. Create accounts, manage access and transfer credits through the API. Your domain uses the same API paths.

Read the white-label docs
POST /api/v1/platform/users
curl https://your-domain.example/api/v1/platform/users \
  --request POST \
  --header "Authorization: Bearer $FAMULOR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "Alex Example",
    "email": "alex@customer.example",
    "mode": "invite"
  }'

Create customer accounts

Register customers with their own workspace and retrieve their account overview.

GET · POST /platform/usersGET /platform/users/{user_id}

Manage customer access

Issue customer tokens, connect a login flow and revoke access when needed.

POST /platform/users/{user_id}/tokenPOST /platform/users/loginPOST /platform/users/{user_id}/logout

Transfer credits

Move credits between your reseller balance and customer accounts.

POST /platform/users/{user_id}/balance

Configure onboarding

Control registration, prepaid defaults and welcome credits from your software.

GET · PATCH /platform/default-limitsGET · PATCH /platform/welcome-credits

Connect your domain

Add your domain, receive DNS records and check activation through the API.

GET · POST · DELETE /custom-domainPOST /custom-domain/verify

Manage through MCP

Connect customer management and credit tools to your AI client.

/mcp?toolsets=platform

For resellers with API Access and an Owner or Admin role. Customer management uses platform:read / platform:write; domains use the relevant settings scopes.

Webhooks

React to every outcome, in real time

Webhook events to your endpoint when a call or conversation ends or a booking comes in. No polling: your backend knows when a lead is qualified or a booking is confirmed.

call.completed

Call ended: outcome & transcript ready

conversation.ended

Email or messaging conversation ended, with transcript

booking.created

Booking created, signed with HMAC-SHA256

booking.rescheduled

Booking moved, with its previous start time

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

A hosted MCP server for Claude, ChatGPT, Cursor and other hosts, plus the official Famulor plugin in ChatGPT and Codex. Your agents place calls, send WhatsApp, manage leads and ask Milian.

Hosted HTTPS endpoint
OAuth 2.0 per workspace
Approval per tool group
ChatGPT & Codex plugin
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)ChatGPTCodexCursorWindsurfClaude Code
Famulor CLI

The whole API in your terminal

Every API operation as a command, with JSON, table or JSONL output. For scripts, CI and coding agents like Claude Code or Codex.

  • API key in your OS keychain
  • --dry-run and a prompt before every delete
  • Command schemas as JSON for agents
Shell · Famulor CLI
npm install -g famulor
famulor login
famulor list-assistants --output table
famulor create-call --assistant-id <id> --to-number +4930123456
Authentication

Secure by default

Every API request uses a Bearer token: a workspace API key with its own scopes and expiry, or an OAuth 2.0 token. Booking webhooks are signed with HMAC-SHA256 so you can verify authenticity before processing.

  • Workspace API keys with their own permissions and expiry
  • OAuth 2.0 with PKCE for apps acting for users
  • HMAC-SHA256 signatures on booking webhooks
  • TLS encryption on all endpoints
Shell + Python · Auth examples
# Bearer token
curl --request GET \
  --url https://app.famulor.io/api/v1/calls \
  --header 'Authorization: Bearer YOUR_API_TOKEN'

# Verify a booking webhook signature (X-Famulor-Signature: sha256=<hex>)
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.