Assign Leads to an Agent in Bulk
curl --request POST \
--url https://api.getnexor.ai/api/public/leads/bulk/assign-workflow \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"lead_ids": [
"<unknown>"
],
"workflow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reason": "api_assignment"
}
'import requests
url = "https://api.getnexor.ai/api/public/leads/bulk/assign-workflow"
payload = {
"lead_ids": ["<unknown>"],
"workflow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reason": "api_assignment"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
lead_ids: ['<unknown>'],
workflow_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
workflowId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
reason: 'api_assignment'
})
};
fetch('https://api.getnexor.ai/api/public/leads/bulk/assign-workflow', 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://api.getnexor.ai/api/public/leads/bulk/assign-workflow",
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([
'lead_ids' => [
'<unknown>'
],
'workflow_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'workflowId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'reason' => 'api_assignment'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://api.getnexor.ai/api/public/leads/bulk/assign-workflow"
payload := strings.NewReader("{\n \"lead_ids\": [\n \"<unknown>\"\n ],\n \"workflow_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"workflowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reason\": \"api_assignment\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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://api.getnexor.ai/api/public/leads/bulk/assign-workflow")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"lead_ids\": [\n \"<unknown>\"\n ],\n \"workflow_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"workflowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reason\": \"api_assignment\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getnexor.ai/api/public/leads/bulk/assign-workflow")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"lead_ids\": [\n \"<unknown>\"\n ],\n \"workflow_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"workflowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reason\": \"api_assignment\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"total": 250,
"assigned": 1,
"workflow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"failed": [
{
"lead_id": "<unknown>",
"error": "<string>"
}
]
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}Assign Leads to an Agent in Bulk
This operation lets you assign leads to an agent in bulk for the authenticated Nexor account. This reference documents verified path, query, and top-level JSON body fields, observed response status codes, and top-level response fields. Provider-owned or deeply nested response shapes may remain open.
POST
/
leads
/
bulk
/
assign-workflow
Assign Leads to an Agent in Bulk
curl --request POST \
--url https://api.getnexor.ai/api/public/leads/bulk/assign-workflow \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"lead_ids": [
"<unknown>"
],
"workflow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reason": "api_assignment"
}
'import requests
url = "https://api.getnexor.ai/api/public/leads/bulk/assign-workflow"
payload = {
"lead_ids": ["<unknown>"],
"workflow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflowId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reason": "api_assignment"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
lead_ids: ['<unknown>'],
workflow_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
workflowId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
reason: 'api_assignment'
})
};
fetch('https://api.getnexor.ai/api/public/leads/bulk/assign-workflow', 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://api.getnexor.ai/api/public/leads/bulk/assign-workflow",
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([
'lead_ids' => [
'<unknown>'
],
'workflow_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'workflowId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'reason' => 'api_assignment'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://api.getnexor.ai/api/public/leads/bulk/assign-workflow"
payload := strings.NewReader("{\n \"lead_ids\": [\n \"<unknown>\"\n ],\n \"workflow_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"workflowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reason\": \"api_assignment\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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://api.getnexor.ai/api/public/leads/bulk/assign-workflow")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"lead_ids\": [\n \"<unknown>\"\n ],\n \"workflow_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"workflowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reason\": \"api_assignment\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getnexor.ai/api/public/leads/bulk/assign-workflow")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"lead_ids\": [\n \"<unknown>\"\n ],\n \"workflow_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"workflowId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"reason\": \"api_assignment\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"total": 250,
"assigned": 1,
"workflow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"failed": [
{
"lead_id": "<unknown>",
"error": "<string>"
}
]
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>"
}Safety and behavior notes
- Each accepted lead has its current run deactivated, receives a new run, and starts cadence, which can trigger real outbound contact.
- Per-lead failures are returned inside HTTP 200 with success=false; inspect failed for every request.
- The request body performs real bulk workflow assignments when submitted.
- Direct REST executes immediately and has no dry_run or confirm field.
- Review the complete lead set and destination workflow before submitting the operation.
Authorizations
API key for authentication. Keys are prefixed with nxr_live_.
Body
application/json
Response
Batch always returns 200 after workflow validation; success=false means one or more per-lead failures.
Last modified on September 8, 2026
⌘I