Update Lead
curl --request PUT \
--url https://app.famulor.de/api/user/leads/{id} \
--header 'Content-Type: application/json' \
--data '
{
"campaign_id": 123,
"phone_number": "<string>",
"status": "<string>",
"variables": {}
}
'import requests
url = "https://app.famulor.de/api/user/leads/{id}"
payload = {
"campaign_id": 123,
"phone_number": "<string>",
"status": "<string>",
"variables": {}
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({campaign_id: 123, phone_number: '<string>', status: '<string>', variables: {}})
};
fetch('https://app.famulor.de/api/user/leads/{id}', 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/leads/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'campaign_id' => 123,
'phone_number' => '<string>',
'status' => '<string>',
'variables' => [
]
]),
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/leads/{id}"
payload := strings.NewReader("{\n \"campaign_id\": 123,\n \"phone_number\": \"<string>\",\n \"status\": \"<string>\",\n \"variables\": {}\n}")
req, _ := http.NewRequest("PUT", 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.put("https://app.famulor.de/api/user/leads/{id}")
.header("Content-Type", "application/json")
.body("{\n \"campaign_id\": 123,\n \"phone_number\": \"<string>\",\n \"status\": \"<string>\",\n \"variables\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/leads/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"campaign_id\": 123,\n \"phone_number\": \"<string>\",\n \"status\": \"<string>\",\n \"variables\": {}\n}"
response = http.request(request)
puts response.read_body{
"message": "Lead successfully updated"
}
Leads
Update Lead
Update an existing Famulor lead via API. Modify contact information, custom variables, status and campaign assignment for AI voice outreach.
PUT
/
api
/
user
/
leads
/
{id}
Update Lead
curl --request PUT \
--url https://app.famulor.de/api/user/leads/{id} \
--header 'Content-Type: application/json' \
--data '
{
"campaign_id": 123,
"phone_number": "<string>",
"status": "<string>",
"variables": {}
}
'import requests
url = "https://app.famulor.de/api/user/leads/{id}"
payload = {
"campaign_id": 123,
"phone_number": "<string>",
"status": "<string>",
"variables": {}
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({campaign_id: 123, phone_number: '<string>', status: '<string>', variables: {}})
};
fetch('https://app.famulor.de/api/user/leads/{id}', 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/leads/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'campaign_id' => 123,
'phone_number' => '<string>',
'status' => '<string>',
'variables' => [
]
]),
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/leads/{id}"
payload := strings.NewReader("{\n \"campaign_id\": 123,\n \"phone_number\": \"<string>\",\n \"status\": \"<string>\",\n \"variables\": {}\n}")
req, _ := http.NewRequest("PUT", 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.put("https://app.famulor.de/api/user/leads/{id}")
.header("Content-Type", "application/json")
.body("{\n \"campaign_id\": 123,\n \"phone_number\": \"<string>\",\n \"status\": \"<string>\",\n \"variables\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/leads/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"campaign_id\": 123,\n \"phone_number\": \"<string>\",\n \"status\": \"<string>\",\n \"variables\": {}\n}"
response = http.request(request)
puts response.read_body{
"message": "Lead successfully updated"
}
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.Path Parameters
integer
required
The ID of the lead to be updated
Request Body
integer
The ID of the campaign to which the lead should be assigned
string
The lead’s phone number (automatically formatted to E164)
string
The status of the lead. Must be one of the following values: created, completed, reached-max-retries
object
Custom variables to be merged with the existing lead variables
Response Fields
string
Success message indicating the lead was updated
Notes
- The lead must belong to the authenticated user
- When updating the campaign, the new campaign must also belong to the authenticated user
- Phone numbers are automatically formatted and validated
- Variables are merged with existing variables (not replaced)
- Only allowed fields can be updated: campaign_id, phone_number, status, variables
- The status field has restricted values to maintain data integrity
{
"message": "Lead successfully updated"
}
Related pages: Introduction and Authentication Guide, and API Integration Examples.