Make a Call
curl --request POST \
--url https://app.famulor.de/api/user/make_call \
--header 'Content-Type: application/json' \
--data '
{
"phone_number": "<string>",
"assistant_id": 123,
"variables": {
"customer_name": "<string>",
"email": "<string>"
}
}
'import requests
url = "https://app.famulor.de/api/user/make_call"
payload = {
"phone_number": "<string>",
"assistant_id": 123,
"variables": {
"customer_name": "<string>",
"email": "<string>"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
phone_number: '<string>',
assistant_id: 123,
variables: {customer_name: '<string>', email: '<string>'}
})
};
fetch('https://app.famulor.de/api/user/make_call', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/user/make_call",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phone_number' => '<string>',
'assistant_id' => 123,
'variables' => [
'customer_name' => '<string>',
'email' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.famulor.de/api/user/make_call"
payload := strings.NewReader("{\n \"phone_number\": \"<string>\",\n \"assistant_id\": 123,\n \"variables\": {\n \"customer_name\": \"<string>\",\n \"email\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.famulor.de/api/user/make_call")
.header("Content-Type", "application/json")
.body("{\n \"phone_number\": \"<string>\",\n \"assistant_id\": 123,\n \"variables\": {\n \"customer_name\": \"<string>\",\n \"email\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/make_call")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone_number\": \"<string>\",\n \"assistant_id\": 123,\n \"variables\": {\n \"customer_name\": \"<string>\",\n \"email\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"message": "Call initiated successfully",
"call_id": 480337,
"status": "initiated"
}
{
"message": "Invalid phone number format. Please use E.164 format (e.g. +1234567890)"
}
{
"message": "Assistant not found or does not belong to the authenticated user"
}
{
"message": "Insufficient balance to make call. Please top up your account."
}
Calls
Make a Call
Initiate an outbound phone call with a specific Famulor AI assistant via API. Pass lead data and trigger automated voice conversations programmatically.
POST
/
api
/
user
/
make_call
Make a Call
curl --request POST \
--url https://app.famulor.de/api/user/make_call \
--header 'Content-Type: application/json' \
--data '
{
"phone_number": "<string>",
"assistant_id": 123,
"variables": {
"customer_name": "<string>",
"email": "<string>"
}
}
'import requests
url = "https://app.famulor.de/api/user/make_call"
payload = {
"phone_number": "<string>",
"assistant_id": 123,
"variables": {
"customer_name": "<string>",
"email": "<string>"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
phone_number: '<string>',
assistant_id: 123,
variables: {customer_name: '<string>', email: '<string>'}
})
};
fetch('https://app.famulor.de/api/user/make_call', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/user/make_call",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phone_number' => '<string>',
'assistant_id' => 123,
'variables' => [
'customer_name' => '<string>',
'email' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.famulor.de/api/user/make_call"
payload := strings.NewReader("{\n \"phone_number\": \"<string>\",\n \"assistant_id\": 123,\n \"variables\": {\n \"customer_name\": \"<string>\",\n \"email\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.famulor.de/api/user/make_call")
.header("Content-Type", "application/json")
.body("{\n \"phone_number\": \"<string>\",\n \"assistant_id\": 123,\n \"variables\": {\n \"customer_name\": \"<string>\",\n \"email\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/make_call")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone_number\": \"<string>\",\n \"assistant_id\": 123,\n \"variables\": {\n \"customer_name\": \"<string>\",\n \"email\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"message": "Call initiated successfully",
"call_id": 480337,
"status": "initiated"
}
{
"message": "Invalid phone number format. Please use E.164 format (e.g. +1234567890)"
}
{
"message": "Assistant not found or does not belong to the authenticated user"
}
{
"message": "Insufficient balance to make call. Please top up your account."
}
Famulor 1.0 API (legacy). This page applies only to Famulor 1.0 (
app.famulor.de) and is retained for legacy compatibility. For the current platform, use the Famulor 2.0 API reference.Request Body
string
required
The customer’s phone number in E.164 format (e.g. +1234567890)
integer
required
The ID of the assistant to make the call with
object
Response
string
Confirmation message that the call was successfully initiated
integer
The unique ID of the created call
string
The initial status of the call (e.g. “initiated”)
{
"message": "Call initiated successfully",
"call_id": 480337,
"status": "initiated"
}
{
"message": "Invalid phone number format. Please use E.164 format (e.g. +1234567890)"
}
{
"message": "Assistant not found or does not belong to the authenticated user"
}
{
"message": "Insufficient balance to make call. Please top up your account."
}
Related pages: Introduction and Authentication Guide, and API Integration Examples.