List Providers
GET
/api/v1/lead_providers/Get a list of providers (paginated).
Auth: Admin JWT + IsAdminOnlyPosition.
Query parameters
| Parameter | Type | Description |
|---|---|---|
is_exclusive | Boolean (true/false) | Filter by exclusivity |
search | String | Text search |
page | Integer | Page number (page size 10) |
Response — 200 OK
DRF pagination format: count + next / previous + results.
{
"count": 42,
"next": "http://.../lead_providers/?page=2",
"previous": null,
"results": [
{
"id": 1,
"name": "Super Leads LLC",
"email": "contact@superleads.com",
"status": "active",
"is_exclusive": false,
"assigned_user": { "id": 7, "username": "jdoe", "full_name": "John Doe" },
"price_per_lead": "12.50",
"created_at": "2026-05-01T10:00:00Z",
"updated_at": "2026-06-10T14:30:00Z"
}
]
}
:::info Field types
assigned_user— an object on read ({ id, username, full_name }).price_per_lead— a decimal, as a string;nullwhen there is no value. :::
Code samples
- curl
- JavaScript
- Python
curl "https://api.navigo.example/api/v1/lead_providers/?is_exclusive=false&page=1" \
-H "Authorization: Bearer $NAVIGO_ADMIN_JWT"
const params = new URLSearchParams({ is_exclusive: "false", page: "1" });
const res = await fetch(
`https://api.navigo.example/api/v1/lead_providers/?${params}`,
{ headers: { Authorization: `Bearer ${process.env.NAVIGO_ADMIN_JWT}` } },
);
const { count, results } = await res.json();
import os, requests
resp = requests.get(
"https://api.navigo.example/api/v1/lead_providers/",
headers={"Authorization": f"Bearer {os.environ['NAVIGO_ADMIN_JWT']}"},
params={"is_exclusive": "false", "page": 1},
timeout=15,
)
resp.raise_for_status()
data = resp.json()
print(data["count"], len(data["results"]))
Possible errors
| Status | Reason |
|---|---|
401 | JWT token is invalid or expired |
403 | No admin position |
Full format: Errors.