Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/famulor-io:famulor-io-calls-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Famulor Calls API
summary: REST API für AI-Assistenten, Anrufe, Konversationen, Leads und omnichannel Kundenkommunikation.
description: 'Die Famulor Produkt-API unter `https://app.famulor.de/api`. Damit steuerst du
AI-Assistenten, startest und liest Anrufe, verwaltest Leads und Kampagnen,
versendest SMS und WhatsApp-Nachrichten, pflegst Wissensdatenbanken und
automatisierst Prozesse.
## Authentifizierung
Alle Endpunkte erwarten einen API-Key als Bearer-Token:
```
Authorization: Bearer YOUR_API_KEY
```
Den Key erstellst du in deinem Account unter im
Bereich API-Keys. Der Key wird nur einmal angezeigt.
## Webhooks
Famulor sendet Ereignisse (Post-Call, Conversation Ended, Read Receipts) an
deine URL. Die Payloads stehen im Abschnitt `webhooks` dieser Spec.
Diese Datei wird aus der offiziellen Dokumentation generiert:'
version: 1.0.0
contact:
name: Famulor Support
email: sales@famulor.io
url: https://www.famulor.io/support
license:
name: Proprietary
url: https://www.famulor.io/terms
termsOfService: https://www.famulor.io/terms
servers:
- url: https://app.famulor.de/api
description: Production
security:
- BearerAuth: []
tags:
- name: Calls
description: Anrufe starten, auflisten und löschen.
paths:
/user/calls:
get:
tags:
- Calls
summary: List Calls
operationId: listCalls
description: 'List all calls for the authenticated user with filtering options
Docs'
externalDocs:
description: List Calls
url: https://docs.famulor.io/api-v1/calls/list
parameters:
- name: status
in: query
required: false
description: 'Filter calls by status. Possible values: `initiated`, `ringing`, `busy`, `in-progress`, `ended`, `completed`, `ended_by_customer`, `ended_by_assistant`, `no-answer`, `failed`'
schema:
type: string
enum:
- initiated
- ringing
- busy
- in-progress
- ended
- completed
- ended_by_customer
- ended_by_assistant
- no-answer
- failed
- name: type
in: query
required: false
description: 'Filter calls by type. Possible values: `inbound`, `outbound`, `web`'
schema:
type: string
enum:
- inbound
- outbound
- web
- name: phone_number
in: query
required: false
description: Filter calls by client phone number
schema:
type: string
- name: assistant_id
in: query
required: false
description: Filter calls by assistant ID
schema:
type: integer
- name: campaign_id
in: query
required: false
description: Filter calls by campaign ID
schema:
type: integer
- name: date_from
in: query
required: false
description: Filter calls from this date (YYYY-MM-DD format)
schema:
type: string
- name: date_to
in: query
required: false
description: Filter calls up to this date (YYYY-MM-DD format)
schema:
type: string
- name: per_page
in: query
required: false
description: 'Number of calls per page (1-100, default: 15)'
schema:
type: integer
- name: page
in: query
required: false
description: 'Page number (default: 1)'
schema:
type: integer
responses:
'200':
description: Response
content:
application/json:
example:
data:
- id: 123456
assistant_name: Sales Assistant
campaign_name: Neukundenakquise Q1 2024
type: outbound
duration: 180
assistant_phone_number: '+4912345678'
client_phone_number: '+4915123456789'
status: completed
transcript:
- text: Hallo, mein Name ist Maximilian, ich melde mich im Auftrag eines IT-Unternehmens.
type: transcript
sender: bot
timestamp: 1754055268.525861
- text: Hallo?
type: transcript
sender: human
timestamp: 1754055272.069057
variables:
customer_name: John
evaluation:
- name: status
type: bool
value: true
description: Whether the call objective was achieved or not.
- name: summary
type: string
value: Connected to the customer, obtained name of the person responsible for IT.
description: Call summary in a few words.
webhook_response:
crm_updated: true
lead_score: 75
carrier_cost: '0.08000000'
total_cost: '0.12000000'
answered_by: human
recording_url: https://recordings.famulor.de/call-123456.mp3
created_at: '2024-01-15T10:30:00Z'
updated_at: '2024-01-15T10:33:00Z'
- id: 123457
assistant_name: Support Assistant
campaign_name: null
type: inbound
duration: 120
assistant_phone_number: '+4912345678'
client_phone_number: '+4917123456789'
status: ended_by_customer
transcript:
- text: 'Kunde: Hallo, ich habe eine Frage zu meinem Konto.'
type: transcript
sender: human
timestamp: 1754055300.123456
- text: Gerne helfe ich Ihnen dabei. Was kann ich für Sie tun?
type: transcript
sender: bot
timestamp: 1754055302.789012
variables:
issue_resolved: true
satisfaction_rating: 9
evaluation:
- name: issue_resolved
type: bool
value: true
description: Whether the customer's issue was resolved.
- name: satisfaction_rating
type: integer
value: 9
description: Customer satisfaction rating from 1-10.
webhook_response: null
carrier_cost: '0.05000000'
total_cost: '0.08000000'
answered_by: human
recording_url: null
created_at: '2024-01-15T14:20:00Z'
updated_at: '2024-01-15T14:22:00Z'
current_page: 1
first_page_url: https://app.famulor.de/api/user/calls?page=1
from: 1
last_page: 4
last_page_url: https://app.famulor.de/api/user/calls?page=4
links:
- url: null
label: '« Previous'
active: false
- url: https://app.famulor.de/api/user/calls?page=1
label: '1'
active: true
next_page_url: https://app.famulor.de/api/user/calls?page=2
path: https://app.famulor.de/api/user/calls
per_page: 15
prev_page_url: null
to: 15
total: 52
schema:
type: object
properties:
data:
type: array
description: Array of calls
items:
type: object
properties:
id:
type: integer
description: The unique identifier of the call
assistant_name:
type: string
description: The name of the assistant who handled the call
campaign_name:
type:
- string
- 'null'
description: The name of the campaign to which this call belongs (if applicable)
type:
type: string
description: The type of the call (inbound, outbound, or web)
duration:
type: integer
description: The duration of the call in seconds
assistant_phone_number:
type: string
description: The phone number used by the assistant
client_phone_number:
type: string
description: The client's phone number
status:
type: string
description: The current status of the call
transcript:
type: array
description: The transcript of the call conversation as an array of objects containing text, type, sender, and timestamp
items: {}
variables:
type: object
description: Variables collected during the call
additionalProperties: true
evaluation:
type: array
description: Evaluation data for call performance as an array of objects with name, type, value, and description
items: {}
webhook_response:
type:
- object
- 'null'
description: Response from configured webhooks
additionalProperties: true
carrier_cost:
type: string
description: The cost charged by the carrier for this call
total_cost:
type: string
description: The total cost of the call including all fees
answered_by:
type: string
description: Who answered the call (human, machine, or unknown)
recording_url:
type:
- string
- 'null'
description: URL to the call recording (if available and enabled)
created_at:
type: string
description: Date and time when the call was created
updated_at:
type: string
description: Date and time of the last update to the call
additionalProperties: true
current_page:
type: integer
description: The current page number
per_page:
type: integer
description: Number of items per page
total:
type: integer
description: Total number of calls matching the criteria
last_page:
type: integer
description: The last page number
first_page_url:
type: string
description: URL of the first page
last_page_url:
type: string
description: URL of the last page
next_page_url:
type: string
description: URL of the next page, or `null`
prev_page_url:
type:
- string
- 'null'
description: URL of the previous page, or `null`
path:
type: string
description: Base pagination path
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
/user/calls/{id}:
delete:
tags:
- Calls
summary: Delete Call
operationId: deleteCall
description: 'Delete a specific call record from the Famulor system via API. Permanently removes transcripts, recordings and metadata for that voice agent call.
Docs'
externalDocs:
description: Delete Call
url: https://docs.famulor.io/api-v1/calls/delete
parameters:
- name: id
in: path
required: true
description: The unique identifier of the call to be deleted
schema:
type: integer
responses:
'200':
description: Success
content:
application/json:
example:
message: Call deleted successfully
schema:
type: object
properties:
message:
type: string
description: Error message if the call was not found or does not belong to the authenticated user
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
'404':
description: Not Found
content:
application/json:
example:
message: Call not found or does not belong to the authenticated user
'422':
$ref: '#/components/responses/ValidationError'
/user/make_call:
post:
tags:
- Calls
summary: Make a Call
operationId: makeCall
description: 'Initiate an outbound phone call with a specific Famulor AI assistant via API. Pass lead data and trigger automated voice conversations programmatically.
Docs'
externalDocs:
description: Make a Call
url: https://docs.famulor.io/api-v1/calls/make
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone_number:
type: string
description: The customer's phone number in E.164 format (e.g. +1234567890)
assistant_id:
type: integer
description: The ID of the assistant to make the call with
variables:
type: object
description: The variables to be passed to the lead
properties:
customer_name:
type: string
description: The name of the customer
email:
type: string
description: The customer's email address
required:
- phone_number
- assistant_id
responses:
'200':
description: Success
content:
application/json:
example:
message: Call initiated successfully
call_id: 480337
status: initiated
schema:
type: object
properties:
message:
type: string
description: Confirmation message that the call was successfully initiated
call_id:
type: integer
description: The unique ID of the created call
status:
type: string
description: The initial status of the call (e.g. "initiated")
additionalProperties: true
'400':
description: Invalid Phone Number
content:
application/json:
example:
message: Invalid phone number format. Please use E.164 format (e.g. +1234567890)
'401':
$ref: '#/components/responses/Unauthorized'
'404':
description: Assistant Not Found
content:
application/json:
example:
message: Assistant not found or does not belong to the authenticated user
'422':
description: Insufficient Balance
content:
application/json:
example:
message: Insufficient balance to make call. Please top up your account.
components:
responses:
ValidationError:
description: Die Anfrage ist inhaltlich ungültig.
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
example:
message: The given data was invalid.
errors:
phone_number:
- The phone number field is required.
Unauthorized:
description: Fehlender oder ungültiger API-Key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: Unauthenticated.
schemas:
ValidationError:
type: object
properties:
message:
type: string
errors:
type: object
description: Feldname → Liste der Fehlermeldungen.
additionalProperties:
type: array
items:
type: string
Error:
type: object
properties:
message:
type: string
description: Menschenlesbare Fehlermeldung.
error:
type: string
description: Fehlerkennung, sofern gesetzt.
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: 'API-Key als Bearer-Token: `Authorization: Bearer YOUR_API_KEY`. Key erstellen unter https://app.famulor.de.'
externalDocs:
description: Famulor API-Dokumentation
url: https://docs.famulor.io/api-v1/introduction