Get Lead
curl --request GET \
--url https://crm.uservox.ai/api/v1/leads/get \
--header 'Authorization: Bearer <token>'import requests
url = "https://crm.uservox.ai/api/v1/leads/get"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://crm.uservox.ai/api/v1/leads/get', 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://crm.uservox.ai/api/v1/leads/get",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://crm.uservox.ai/api/v1/leads/get"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://crm.uservox.ai/api/v1/leads/get")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://crm.uservox.ai/api/v1/leads/get")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"_id": "<string>",
"name": "<string>",
"phone": "<string>",
"email": "<string>",
"projectId": "<string>",
"processId": "<string>",
"referenceId": "<string>",
"currentState": "<string>",
"lastDisposition": "<string>",
"metadata": {},
"createdAt": "<string>",
"updatedAt": "<string>",
"activities": [
{}
]
}
}Leads
Get Lead
Retrieve a single lead with all its activities
GET
/
leads
/
get
Get Lead
curl --request GET \
--url https://crm.uservox.ai/api/v1/leads/get \
--header 'Authorization: Bearer <token>'import requests
url = "https://crm.uservox.ai/api/v1/leads/get"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://crm.uservox.ai/api/v1/leads/get', 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://crm.uservox.ai/api/v1/leads/get",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://crm.uservox.ai/api/v1/leads/get"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://crm.uservox.ai/api/v1/leads/get")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://crm.uservox.ai/api/v1/leads/get")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"_id": "<string>",
"name": "<string>",
"phone": "<string>",
"email": "<string>",
"projectId": "<string>",
"processId": "<string>",
"referenceId": "<string>",
"currentState": "<string>",
"lastDisposition": "<string>",
"metadata": {},
"createdAt": "<string>",
"updatedAt": "<string>",
"activities": [
{}
]
}
}Rate Limits:
- Request Rate: ~100 requests per 5 seconds per project (same as other lead APIs).
- Heavy use of this endpoint (especially with
masked=false) can be expensive; cache results when possible.
Query Parameters
string
MongoDB ObjectId of the lead (required if not using referenceId)
string
External reference ID (requires projectId and processId)
string
Required when using referenceId
string
Required when using referenceId
boolean
default:"false"
If
true, masks phone number (all but last 4 digits)Response
boolean
Indicates if the request was successful
object
The lead object with activities
Show Lead Properties
Show Lead Properties
string
MongoDB ObjectId of the lead
string
Lead’s name
string
Phone number
string
Email address
string
Project ID
string
Process ID
string
External reference ID
string
Current state of the lead
string
Last disposition
object
Lead metadata
string
ISO 8601 timestamp of creation
string
ISO 8601 timestamp of last update
array
Array of activity objects
Error Responses
-
400 Bad Request
- Missing identifier
- Returned when neither
leadIdnorreferenceIdis provided. - Example:
{ "success": false, "error": "Either leadId or referenceId is required" }
- Returned when neither
- Missing projectId/processId with referenceId
- Returned when
referenceIdis provided without bothprojectIdandprocessId. - Example:
{ "success": false, "error": "projectId and processId are required when using referenceId" }
- Returned when
- Missing identifier
-
404 Not Found
- Returned when no lead matches the provided identifiers.
- Examples:
{ "success": false, "error": "Lead with ID <leadId> not found" } { "success": false, "error": "Lead with referenceId <referenceId> not found" }
-
429 Too Many Requests
- Returned when project-level rate limits are exceeded for this endpoint.
- Recommended behavior:
- Back off and retry later with exponential backoff.
- Avoid hot-loop polling; cache results on your side when possible.
-
500 Internal Server Error
- Unexpected server-side error.
- Safe to retry with backoff; if it persists, contact support with request details.
