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
Access modes
Use a workspace API key. The workspace is inferred from the key.
Authorization: Bearer sk_live_...Path parameters
| Parameter | Type | Description |
|---|---|---|
| kind | string | company or profile. It matches the kind of the list. |
| list_id | integer | ID of the list. |
Query parameters
| Parameter | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. Defaults to 1. |
| page_size | integer | Items per page. Defaults to 25, maximum 100. |
| response_format | string | concise 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_buckets | string | essential returns the members monitored through this list. none returns the others: an account monitored through another list still matches none here. |
| q | string | Searches the members by name or LinkedIn handle, and people also by their current company's name. Not case-sensitive. 1 to 255 characters. |
| persona_id | integer | Reads monitoring in this persona only, and checks monitoring_status against it. Customer and prospect lists only. |
| monitoring_status | string | monitored, 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.
| Status | Meaning |
|---|---|
monitored | The account is monitored in this persona and its paid month is running, or your workspace is not billed. |
not_covered | The account should be monitored but the renewal could not be paid. not_covered_since tells since when. We retry every hour. |
monitored_elsewhere | The account is monitored in another persona only. |
not_monitored | The account is not monitored in this persona. If it was stopped during a paid month, covered_until tells when its signals end. |
monitoringisnullon every list that is not a customer or prospect list.monitoringis an empty array when your workspace has no persona. Every member then counts asnot_monitored:monitoring_status=not_monitoredreturns them all, and any other status returns none.monitoringcomes withresponse_format=normalizedonly.persona_idormonitoring_statuson a list that is not a customer or prospect list is refused with422, and so is apersona_idthat 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
| Field | Type | Description |
|---|---|---|
| data[].id | integer | ID 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[].name | string or null | Companies only. |
| data[].domain | string or null | Companies only. The website domain. |
| data[].full_name | string or null | People only. |
| data[].first_name | string or null | People only. |
| data[].last_name | string or null | People only. |
| data[].linkedin_handle | string or null | LinkedIn handle. |
| data[].linkedin_url | string or null | LinkedIn URL. |
| data[].logo_url | string or null | Companies only. The logo, when we have one. |
| data[].avatar_url | string or null | People only. The photo, when we have one. |
| data[].position | string or null | People only. |
| data[].linkedin_headline | string or null | People only. |
| data[].enrichment_status | string or null | People only. |
| data[].company | object or null | People 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_buckets | array 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[].monitoring | array of object or null | The 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_id | integer | ID of the persona. |
| data[].monitoring[].status | string | monitored, not_covered, monitored_elsewhere or not_monitored. |
| data[].monitoring[].covered_until | string or null | End of the paid month, as an ISO 8601 timestamp. After a stop, when signals stop. |
| data[].monitoring[].not_covered_since | string or null | When the account stopped being covered, as an ISO 8601 timestamp. |
| meta.pagination | object | Pagination metadata: page, page_size, page_count and total. See Pagination. |
Errors
| Status | Meaning |
|---|---|
| 401 | The API key is missing or invalid. |
| 404 | The list does not exist. |
| 422 | A 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. |
| 429 | Rate limit exceeded. |
| 500 | An 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.