Base URL
app.famulor.io is the hosted platform. If you sign in on a white-label tenant domain, use that domain instead — the API runs under it with the tenant’s branding and the same paths apply.
Authentication
All requests require a Bearer token in theAuthorization header. Two token types are accepted:
- Service-account API keys (
fam_...) — create them under Settings → API Keys. Each new key belongs to a dedicated, non-human principal instead of the admin who created it. The full key is shown exactly once; only a hash is stored. Every new key has explicit scopes from the canonical registry (for exampleassistants:read,calls:write,campaigns:write,dashboards:read,knowledge:write,voices:read, orbilling:read). Best for server-to-server integrations. - OAuth 2.0 access tokens (
fam_at_...) — issued through Authorization Code with mandatory PKCE-S256. Scoped and short-lived (1 hour, with rotating refresh tokens). Best for third-party apps acting on behalf of a user.
OAuth client security
Dynamic clients may register HTTPS redirect URIs. Native applications may additionally use HTTP redirect URIs on literal loopback addresses (127.0.0.1 or [::1]) with any port. localhost, non-loopback HTTP, URI fragments, and credentials in redirect URIs are rejected.
Authorization requests must send code_challenge_method=S256 and a valid SHA-256 code challenge. Requested scopes must be both canonical and a subset of the scopes registered for that client. Dynamic registration, authorization, and token exchange are protected by distributed rate limits; a limited request returns 429 with Retry-After.
Response envelope
Every endpoint returns a consistent JSON envelope. Successful responses wrap the payload indata (plus optional meta):
What the API returns — and what it doesn’t
Both the REST API and the MCP endpoint return the same, deliberately curated view of your workspace data: everything you need to build on, nothing about how the platform runs internally. Not included in any response:- Infrastructure identifiers — media-session, room, trunk, dispatch and carrier identifiers of the underlying telephony stack.
- Internal storage paths — recordings are served as time-limited signed URLs (
GET /calls/{id}/recording), never as bucket paths. - Platform cost and billing internals — provider costs, token/character/second counters and charge bookkeeping. Your own consumption is reported in the units you are billed in: minutes and credits (
GET /balance,GET /transactions). - Model internals — which model scored a call or wrote a summary. Verdicts, scores and summaries are returned; the engine behind them is not.
- Secrets — passwords, tokens and carrier credentials are never readable back after they are stored; you get a masked hint at most.
- Operational diagnostics — internal call events (component fallbacks, session errors, usage bookings) are filtered out of
GET /calls/{id}events.
Pagination
List endpoints paginate withlimit and offset query parameters:
The response’s
meta.pagination.total carries the total number of matches (ignoring limit/offset), so you can page until offset + limit >= total:
Errors
Failures return an error envelope with a stable machine-readablecode and a human-readable message:
Rate limits
Fair-use rate limits apply per account. If you exceed them the API responds with429 Too Many Requests; back off and retry with exponential delay. Published per-plan limits will be documented here.
White label: manage your platform’s customers
If your workspace has the white-label feature, a dedicated endpoint group lets you run your own platform programmatically: list and register your end-users, issue them API tokens (with or without their password), log them out, move credits between your wallet and theirs, and manage the custom domain your platform runs on. Platform admins on the root platform get the same endpoints, scoped to direct platform customers. All of these require an API key of your white-label workspace with theplatform:read / platform:write scopes (custom domain: settings:*):
Step-by-step recipes (custom auth flows, dashboards, balance management): White Label API guide. The same capabilities are available as MCP tools via the
platform toolset (https://<your-domain>/mcp?toolsets=platform).