All list endpoints return paginated results. Use the page and per_page query parameters to control pagination.
Query Parameters
| Parameter | Type | Default | Description |
|---|
page | integer | 1 | Page number (starts at 1) |
per_page | integer | 25 | Number of results per page (max 100) |
Every paginated response includes a meta object with pagination information:
{
"data": [...],
"meta": {
"page": 1,
"per_page": 25,
"total": 142
}
}
| Field | Type | Description |
|---|
meta.page | integer | Current page number |
meta.per_page | integer | Number of items per page |
meta.total | integer | Total number of matching records |
Example
Fetch the second page of leads with 10 results per page:
curl -X GET \
"https://api.reachedapp.com/v1/leads?page=2&per_page=10" \
-H "Authorization: Bearer rchd_live_xxxxxxxxxxxx"
const response = await fetch(
"https://api.reachedapp.com/v1/leads?page=2&per_page=10",
{
headers: {
"Authorization": "Bearer rchd_live_xxxxxxxxxxxx"
}
}
);
const { data, meta } = await response.json();
console.log(`Page ${meta.page} of ${Math.ceil(meta.total / meta.per_page)}`);
Iterating Through All Pages
async function fetchAllLeads(apiKey) {
const baseUrl = "https://api.reachedapp.com/v1/leads";
const allLeads = [];
let page = 1;
let hasMore = true;
while (hasMore) {
const response = await fetch(`${baseUrl}?page=${page}&per_page=100`, {
headers: { "Authorization": `Bearer ${apiKey}` }
});
const { data, meta } = await response.json();
allLeads.push(...data);
hasMore = page * meta.per_page < meta.total;
page++;
}
return allLeads;
}
import requests
def fetch_all_leads(api_key):
base_url = "https://api.reachedapp.com/v1/leads"
all_leads = []
page = 1
while True:
response = requests.get(
f"{base_url}?page={page}&per_page=100",
headers={"Authorization": f"Bearer {api_key}"}
)
result = response.json()
all_leads.extend(result["data"])
if page * result["meta"]["per_page"] >= result["meta"]["total"]:
break
page += 1
return all_leads
To minimize the number of requests, use per_page=100 (the maximum) when fetching all records.