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.

List members

Paginate the members of a list, with their monitoring.

Returns the members of a list, a page at a time. A member's id is the ID the rest of the API uses: GET /api/v3/companies/{company_id} for a company, GET /api/v3/leads/{lead_id} for a person. Each member carries signal_buckets and, on customer and prospect lists, its monitoring in every persona. Members are sorted with the most recently added first.

Route

GET/api/v3/lists/{kind}/{list_id}/members

Access modes

Use a workspace API key. The workspace is inferred from the key.

Authorization: Bearer sk_live_...

Path parameters

ParameterTypeDescription
kindstringcompany or profile. It matches the kind of the list.
list_idintegerID of the list.

Query parameters

ParameterTypeDescription
pageintegerPage number, starting at 1. Defaults to 1.
page_sizeintegerItems per page. Defaults to 25, maximum 100.
response_formatstringconcise or normalized (default). concise returns id, linkedin_handle and linkedin_url only. normalized adds the name and logo of a company, or the name, photo, position, headline, enrichment status and current company of a person, plus signal_buckets and, on customer and prospect lists, monitoring.
signal_bucketsstringessential returns the members monitored through this list. none returns the others: an account monitored through another list still matches none here.
qstringSearches the members by name or LinkedIn handle, and people also by their current company's name. Not case-sensitive. 1 to 255 characters.
persona_idintegerReads monitoring in this persona only, and checks monitoring_status against it. Customer and prospect lists only.
monitoring_statusstringmonitored, not_covered, monitored_elsewhere or not_monitored. Returns the members that have this status in at least one persona of their monitoring, or in the persona given by persona_id. Customer and prospect lists only.

Monitoring of a member

On a customer or prospect list, each member carries monitoring: one entry per persona the list is attached to, or per active persona when the list is attached to none. Each entry gives the persona_id, the status of the account in that persona, and the covered_until and not_covered_since dates. You do not need to send persona_id to read the monitoring of every persona; send it to narrow to one.

StatusMeaning
monitoredThe account is monitored in this persona and its paid month is running, or your workspace is not billed.
not_coveredThe account should be monitored but the renewal could not be paid. not_covered_since tells since when. We retry every hour.
monitored_elsewhereThe account is monitored in another persona only.
not_monitoredThe account is not monitored in this persona. If it was stopped during a paid month, covered_until tells when its signals end.
  • monitoring is null on every list that is not a customer or prospect list.
  • monitoring is an empty array when your workspace has no persona. Every member then counts as not_monitored: monitoring_status=not_monitored returns them all, and any other status returns none.
  • monitoring comes with response_format=normalized only.
  • persona_id or monitoring_status on a list that is not a customer or prospect list is refused with 422, and so is a persona_id that is not one of your active personas.

To change monitoring, see Account Monitoring.

Example request

curl "https://api.getsillage.com/api/v3/lists/company/12/members?page=1&page_size=25&monitoring_status=monitored" \
  -H "Authorization: Bearer $SILLAGE_API_KEY"

Success response

Status: 200 OK

Members of a company list.

{
  "data": [
    {
      "id": 301,
      "name": "Acme",
      "domain": "acme.com",
      "linkedin_handle": "acme",
      "linkedin_url": "https://www.linkedin.com/company/acme",
      "logo_url": "https://media.licdn.com/dms/image/acme-logo.png",
      "signal_buckets": ["essential"],
      "monitoring": [
        {
          "persona_id": 7,
          "status": "monitored",
          "covered_until": "2026-11-08T09:30:00.000Z",
          "not_covered_since": null
        },
        {
          "persona_id": 9,
          "status": "not_monitored",
          "covered_until": null,
          "not_covered_since": null
        }
      ]
    }
  ],
  "meta": {
    "pagination": {
      "page": 1,
      "page_size": 25,
      "page_count": 1,
      "total": 1
    }
  }
}

Response fields

FieldTypeDescription
data[].idintegerID of the member: the ID of the company (as in GET /api/v3/companies/{company_id}) or of the person (as in GET /api/v3/leads/{lead_id}). Pass it as member_id to Remove a member.
data[].namestring or nullCompanies only.
data[].domainstring or nullCompanies only. The website domain.
data[].full_namestring or nullPeople only.
data[].first_namestring or nullPeople only.
data[].last_namestring or nullPeople only.
data[].linkedin_handlestring or nullLinkedIn handle.
data[].linkedin_urlstring or nullLinkedIn URL.
data[].logo_urlstring or nullCompanies only. The logo, when we have one.
data[].avatar_urlstring or nullPeople only. The photo, when we have one.
data[].positionstring or nullPeople only.
data[].linkedin_headlinestring or nullPeople only.
data[].enrichment_statusstring or nullPeople only.
data[].companyobject or nullPeople only. The current company when we know it, as a summary: id (its ID in your workspace, null when it is not one of its companies), name, domain, linkedin_url, linkedin_handle and logo_url.
data[].signal_bucketsarray of string or null["essential"] when the account of this member is monitored through this list, null when it is not. Normalized format only.
data[].monitoringarray of object or nullThe monitoring of the account in each persona, as described above. null on lists that are not customer or prospect lists. Normalized format only.
data[].monitoring[].persona_idintegerID of the persona.
data[].monitoring[].statusstringmonitored, not_covered, monitored_elsewhere or not_monitored.
data[].monitoring[].covered_untilstring or nullEnd of the paid month, as an ISO 8601 timestamp. After a stop, when signals stop.
data[].monitoring[].not_covered_sincestring or nullWhen the account stopped being covered, as an ISO 8601 timestamp.
meta.paginationobjectPagination metadata: page, page_size, page_count and total. See Pagination.

Errors

StatusMeaning
401The API key is missing or invalid.
404The list does not exist.
422A query parameter is not valid or not known, or persona_id or monitoring_status is sent for a list that is not a customer or prospect list, or persona_id is not one of your active personas.
429Rate limit exceeded.
500An unexpected server error occurred.

Error responses use RFC 9457 problem documents with Content-Type: application/problem+json. type is always about:blank; code tells one problem from another, detail says what went wrong this time, and errors names the field at fault.

On this page