API v3 is live and in beta: expect possible malfunctions and breaking changes in the coming days. If you find a bug, please report it to your Sillage contact.
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

ParameterTypeDescription
partner_workspace_idstringOpaque workspace identifier from the partner system.

Request body

All fields are optional.

FieldTypeDefaultDescription
cursorstringOpaque pagination cursor. Pass the next_cursor value from the previous response to fetch the next page. Omit for the first page.
limitinteger25Number of items to return per page (1–100).
sortstringcreated_at:descSort order: created_at:asc or created_at:desc. Keep the same value across pages of the same query.
date_fromstring (date-time)Return leads created on or after this timestamp (ISO 8601).
date_tostring (date-time)Return leads created on or before this timestamp (ISO 8601).
countriesarray of stringReturn leads whose resolved country is one of these values. OR filtering across multiple countries.
citiesarray of objectReturn leads whose resolved (city, country) pair matches one of these entries. Each entry is { "name": string, "country": string }.
company_idintegerReturn leads whose current company is this one. Takes priority over all identifier fields below.
company_idsarray of integerReturn leads whose current company is one of these. Merged with company_id when both are supplied.
company_domainarray of stringReturn leads whose current company matches this domain. OR filtering across multiple companies. See company_id for tier priority.
company_linkedin_handlearray of stringReturn leads whose current company matches this LinkedIn handle. See company_id for tier priority.
company_linkedin_urlarray of stringReturn 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:

FieldTypeDescription
created_atstring or nullWhen the lead was created (ISO 8601).
meta.next_cursorstring or nullCursor to pass as cursor on the next request. null on the last page.
meta.has_morebooleanWhether more results exist beyond this page.
meta.resolved_companiesarrayOne entry per company identifier from the request body that resolved to a known company.
resolved_companies[].company_idintegerThe resolved company's id, matching company.id on the leads it filtered.
resolved_companies[].matched_bystringWhich field matched: company_id, linkedin_handle, linkedin_url, or domain.
resolved_companies[].identifierstringThe identifier value that matched.

Errors

StatusMeaning
400Invalid request body.
401The master key is missing or invalid.
429Too many requests.
500An unexpected server error occurred.

Error responses use RFC 9457 problem documents with Content-Type: application/problem+json.

On this page