Skip to main content
OurAiCalling stellt eine REST-API unter deiner Plattform-Domain bereit. Alles, was du im Dashboard machen kannst – Assistenten verwalten, Anrufe starten, Kampagnen steuern, Transkripte lesen – ist auch programmatisch verfügbar.

Basis-URL

app.famulor.io ist die gehostete Plattform. Meldest du dich über eine White-Label-Mandantendomain an, nutze stattdessen diese Domain – die API läuft dort mit dem Branding des Mandanten, es gelten dieselben Pfade.

Authentifizierung

Alle Anfragen erfordern ein Bearer-Token im Authorization-Header. Zwei Token-Typen werden akzeptiert:
  • API-Schlüssel (fam_...) – erstelle sie unter Einstellungen → API-Schlüssel. Der vollständige Schlüssel wird bei der Erstellung nur einmal angezeigt, gespeichert wird ausschließlich ein Hash. Schlüssel lassen sich optional auf Scopes beschränken (z. B. assistants:read, calls:write, campaigns:write, dashboards:read, dashboards:write, leads:write, phone_numbers:write, sip_trunks:write, knowledge:write, voices:read, billing:read) und mit einem Ablaufdatum versehen. Ohne Scope-Einschränkung hat ein Schlüssel vollen Zugriff; ein *:write-Scope schließt das passende *:read automatisch mit ein. Ideal für Server-zu-Server-Integrationen. Dashboard-Endpunkte akzeptieren zusätzlich calls:read/write, sodass OAuth-Clients mit den vier Standard-Scopes kompatibel bleiben.
  • OAuth-2.0-Access-Tokens (fam_at_...) – ausgestellt über den OAuth-Flow der Plattform (Authorization Code + PKCE, dynamische Client-Registrierung). Scoped und kurzlebig (1 Stunde, mit Refresh-Tokens). Ideal für Drittanbieter-Apps, die im Auftrag eines Nutzers handeln.
Behandle API-Schlüssel wie Passwörter. Bette sie niemals in Client-seitigen Code ein – nutze für Browser-Anwendungsfälle stattdessen den OAuth-Flow.

Response-Envelope

Jeder Endpunkt antwortet mit einer einheitlichen JSON-Struktur. Bei Erfolg steckt die Payload in data (plus optionalem meta):

Was die API zurückgibt – und was nicht

REST-API und MCP-Endpoint liefern denselben, bewusst kuratierten Blick auf deine Workspace-Daten: alles, was du zum Bauen brauchst – nichts darüber, wie die Plattform intern arbeitet. In keiner Antwort enthalten:
  • Infrastruktur-IDs – Medien-Session-, Room-, Trunk-, Dispatch- und Carrier-IDs des darunterliegenden Telefonie-Stacks.
  • Interne Storage-Pfade – Aufnahmen kommen als zeitlich begrenzte signierte URL (GET /calls/{id}/recording), nie als Bucket-Pfad.
  • Plattform-Kosten und Abrechnungs-Interna – Provider-Kosten, Token-/Zeichen-/Sekunden-Zähler und Buchungs-Status. Dein eigener Verbrauch wird in den Einheiten ausgewiesen, in denen abgerechnet wird: Minuten und Credits (GET /balance, GET /transactions).
  • Modell-Interna – welches Modell einen Anruf bewertet oder die Zusammenfassung geschrieben hat. Ergebnis, Score und Zusammenfassung kommen zurück, die Engine dahinter nicht.
  • Secrets – Passwörter, Tokens und Carrier-Zugangsdaten sind nach dem Speichern nie wieder lesbar; höchstens ein maskierter Hinweis.
  • Betriebsdiagnostik – interne Call-Events (Komponenten-Fallbacks, Session-Fehler, Verbrauchsbuchungen) werden in den Events von GET /calls/{id} herausgefiltert.
Alles andere steht dir offen: Transkripte, Zusammenfassungen, Analyse-Ergebnisse, extrahierte Felder, QA-Scores, Kontakte, Kampagnen, Nummern und die komplette Assistant-Konfiguration.

Pagination

Listen-Endpunkte werden über die Query-Parameter limit und offset paginiert: Das meta.pagination.total der Antwort enthält die Gesamtzahl der Treffer (unabhängig von limit/offset), sodass du blättern kannst, bis offset + limit >= total:

Fehler

Bei einem Fehler bekommst du eine Fehlerstruktur mit einem stabilen, maschinenlesbaren code und einer für Menschen lesbaren message:

Rate Limits

Pro Account gelten Fair-Use-Rate-Limits. Überschreitest du sie, antwortet die API mit 429 Too Many Requests – warte dann und versuche es mit exponentiellem Backoff erneut. Die veröffentlichten Limits pro Plan werden hier dokumentiert.

White Label: Verwalte die Kunden deiner Plattform

Wenn dein Workspace das White-Label-Feature hat, steuerst du deine eigene Plattform über eine eigene Endpoint-Gruppe komplett programmatisch: Endkunden auflisten und registrieren, API-Tokens für sie ausstellen (mit oder ohne deren Passwort), abmelden, Credits zwischen deinem Wallet und ihren Workspaces bewegen und die Custom Domain deiner Plattform verwalten. Plattform-Admins der Haupt-Plattform nutzen dieselben Endpunkte für ihre direkten Kunden. Alle Endpunkte erfordern einen API-Schlüssel deines White-Label-Workspace mit den Scopes platform:read / platform:write (Custom Domain: settings:*): Schritt-für-Schritt-Rezepte (eigene Auth-Flows, Dashboards, Guthaben-Verwaltung): White-Label-API-Guide. Dieselben Funktionen gibt es als MCP-Tools über das platform-Toolset (https://<deine-domain>/mcp?toolsets=platform).

MCP – Verwende die API als KI-Tools

Alles aus dieser Referenz steht auch über den MCP-Endpunkt der Plattform zur Verfügung (Model Context Protocol, Streamable HTTP):
Verbinde Claude, ChatGPT, Cursor oder einen beliebigen MCP-Client und nutze dieselben Funktionen als KI-Tools – dieselben Services, dieselbe Validierung (Plan-Limits, Modellkatalog, DNC-Prüfungen) und dasselbe Berechtigungsmodell (API-Schlüssel oder OAuth). Erfordert das Plan-Feature Connect AI / MCP. Vollständige Einrichtungsanleitung: MCP endpoint. Schnellverbindung – Claude und ChatGPT erkennen die Authentifizierung automatisch (OAuth); andere Clients können einen API-Schlüssel als statischen Bearer-Header übergeben:

Verfügbare MCP-Tools