v2DeprecatedLeads
List Leads
Return a cursor-paginated list of leads for a partner workspace.
Returns a cursor-paginated list of leads for the workspace, sorted by creation date.
Pass the next_cursor from each response as the cursor parameter of the next request to advance through results, keeping the same sort value across pages. When has_more is false, you have reached the last page.
List leads
POST/api/v2/partner/workspaces/{partner_workspace_id}/leads/query
Path parameters
| Parameter | Type | Description |
|---|---|---|
| partner_workspace_id | string | Opaque workspace identifier from the partner system. |
Request body
All fields are optional.
| Field | Type | Default | Description |
|---|---|---|---|
| cursor | string | Opaque pagination cursor. Pass the next_cursor value from the previous response to fetch the next page. Omit for the first page. | |
| limit | integer | 25 | Number of items to return per page (1–100). |
| sort | string | created_at:desc | Sort order: created_at:asc or created_at:desc. Keep the same value across pages of the same query. |
| date_from | string (date-time) | Return leads created on or after this timestamp (ISO 8601). | |
| date_to | string (date-time) | Return leads created on or before this timestamp (ISO 8601). | |
| countries | array of string | Return leads whose resolved country is one of these values. OR filtering across multiple countries. | |
| cities | array of object | Return leads whose resolved (city, country) pair matches one of these entries. Each entry is { "name": string, "country": string }. | |
| company_id | integer | Return leads whose current company is this one. Takes priority over all identifier fields below. | |
| company_ids | array of integer | Return leads whose current company is one of these. Merged with company_id when both are supplied. | |
| company_domain | array of string | Return leads whose current company matches this domain. OR filtering across multiple companies. See company_id for tier priority. | |
| company_linkedin_handle | array of string | Return leads whose current company matches this LinkedIn handle. See company_id for tier priority. | |
| company_linkedin_url | array of string | Return leads whose current company matches this LinkedIn URL. See company_id for tier priority. |
Unlike the Signals filters, an unresolved company_domain, company_linkedin_handle, or company_linkedin_url never returns a 404 here — it returns an empty page ("data": []).
Example request
curl -X POST "https://api.getsillage.com/api/v2/partner/workspaces/ws_123/leads/query" \
-H "Authorization: Bearer $SILLAGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"limit": 25}'Example response
{
"data": [
{
"id": 901,
"first_name": "Jane",
"last_name": "Doe",
"linkedin_url": "https://linkedin.com/in/janedoe",
"linkedin_handle": "janedoe",
"linkedin_headline": "VP Product at Acme",
"avatar_url": "https://media.licdn.com/janedoe.jpg",
"email": "jane.doe@acme.com",
"phone": null,
"position": "VP Product",
"location": "Paris, France",
"geo": {
"city": "Paris",
"region": "Ile-de-France",
"country": "France",
"country_code": "FR"
},
"company": {
"id": 456,
"name": "Acme Inc",
"domain": "acme.com",
"linkedin_url": "https://www.linkedin.com/company/acme",
"linkedin_handle": "acme",
"activity_summary": "Acme sells collaboration software to mid-market teams.",
"employee_range": "51-200",
"location": "Paris, France"
},
"experiences": [
{
"title": "VP Product",
"company_name": "Acme Inc",
"company_linkedin_url": "https://www.linkedin.com/company/acme",
"location": "Paris, France",
"start_date": "2023-01-01",
"end_date": null,
"is_current": true
}
],
"created_at": "2026-06-12T09:00:00.000Z"
}
],
"meta": {
"next_cursor": "eyJjcmVhdGVkQXQiOiIyMDI2LTA2LTEyVDA5OjAwOjAwLjAwMFoiLCJpZCI6OTAxfQ==",
"has_more": true,
"resolved_companies": [
{ "company_id": 456, "matched_by": "domain", "identifier": "acme.com" }
]
}
}Response fields
Each item in data has the same fields as Get a lead, plus:
| Field | Type | Description |
|---|---|---|
| created_at | string or null | When the lead was created (ISO 8601). |
| meta.next_cursor | string or null | Cursor to pass as cursor on the next request. null on the last page. |
| meta.has_more | boolean | Whether more results exist beyond this page. |
| meta.resolved_companies | array | One entry per company identifier from the request body that resolved to a known company. |
| resolved_companies[].company_id | integer | The resolved company's id, matching company.id on the leads it filtered. |
| resolved_companies[].matched_by | string | Which field matched: company_id, linkedin_handle, linkedin_url, or domain. |
| resolved_companies[].identifier | string | The identifier value that matched. |
Errors
| Status | Meaning |
|---|---|
| 400 | Invalid request body. |
| 401 | The master key is missing or invalid. |
| 429 | Too many requests. |
| 500 | An unexpected server error occurred. |
Error responses use RFC 9457 problem documents with Content-Type: application/problem+json.