curl --request POST \
--url https://app.famulor.io/api/v1/campaigns/{id}/leads/assign \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"segment_id": "se1b2c3d-0000-4000-8000-000000000050"
}
'{
"data": {
"assigned": 12,
"copied": 0,
"skipped": 1
}
}Assign leads to a campaign
Assign leads to a campaign from a saved segment (segment_id) OR explicit lead_ids; provide exactly one. Unassigned contacts are moved into this campaign. Contacts already in this campaign or currently queued/calling are skipped. A contact assigned to another campaign returns a conflict before any assignments; remove it from that campaign first. Contacts are never duplicated. The compatibility field copied is always 0.
Required scope: leads:write (campaigns:write and legacy calls:write are also accepted; unrestricted keys have full access).
curl --request POST \
--url https://app.famulor.io/api/v1/campaigns/{id}/leads/assign \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"segment_id": "se1b2c3d-0000-4000-8000-000000000050"
}
'{
"data": {
"assigned": 12,
"copied": 0,
"skipped": 1
}
}Authorizations
API key (fam_..., created under Settings → API Keys) or an OAuth 2.0 access token (fam_at_...). REST operations also require API Access for the credential's workspace. Keys can be restricted to scopes such as assistants:read, calls:write, campaigns:write, automations:read, dashboards:read, dashboards:write, leads:write, segments:write, loop:read, loop:write, phone_numbers:write, sip_trunks:write, knowledge:write, voices:read, billing:read, billing:write, settings:write, platform:read, platform:write; a *:write scope implies the matching *:read. Automation and dashboard endpoints also accept the legacy calls:* scope. Keys without scope restrictions have full access within the workspace's available capabilities.
Path Parameters
Campaign ID.
Body
Response
Assignment result counts.
Show child attributes
Show child attributes