The leads in a campaign
curl --request GET \
--url https://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads', 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-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads",
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://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads"
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://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads")
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{
"data": [
{
"id": "<string>",
"campaignId": "<string>",
"name": "<string>",
"phone": "<string>",
"stageIndex": 123,
"stage": "<string>",
"isOptedOut": true,
"lastActivityAt": 123,
"lastMessageSnippet": "<string>",
"messageCount": 123,
"awaitingParty": "lead",
"qualifiedAt": 123
}
],
"pagination": {
"limit": 123,
"total": 123,
"hasMore": true,
"nextCursor": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"traceId": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"traceId": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"traceId": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"traceId": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"traceId": "<string>"
}
}Campaigns
The leads in a campaign
GET
/
campaigns
/
{campaignId}
/
leads
The leads in a campaign
curl --request GET \
--url https://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads', 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-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads",
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://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads"
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://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-production-a5d3.up.railway.app/v1/campaigns/{campaignId}/leads")
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{
"data": [
{
"id": "<string>",
"campaignId": "<string>",
"name": "<string>",
"phone": "<string>",
"stageIndex": 123,
"stage": "<string>",
"isOptedOut": true,
"lastActivityAt": 123,
"lastMessageSnippet": "<string>",
"messageCount": 123,
"awaitingParty": "lead",
"qualifiedAt": 123
}
],
"pagination": {
"limit": 123,
"total": 123,
"hasMore": true,
"nextCursor": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"traceId": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"traceId": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"traceId": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"traceId": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"traceId": "<string>"
}
}Authorizations
Authorization: Bearer rk_live_…. Keys do not expire and are scoped to one account. The
secret is shown once at creation and stored only as a hash, so it cannot be recovered — if
you lose it, revoke it and generate another on the API keys page.
Path Parameters
The campaign id.
Query Parameters
Page size. An oversized value is clamped rather than rejected.
Required range:
1 <= x <= 200Pass pagination.nextCursor from the previous page.

