Update List
Rename a list, change its tracking defaults, or archive it.
Updates a list's name, description, default_tracking_status and archived state. Send only the fields you want to change; anything you omit is left as it is. The list type is immutable — if you send it, it is ignored. Pass description: null to clear the description.
tier and default_signal_bucket are read-only: they come back on the updated list, but sending them changes nothing.
The three default lists every workspace starts with — Tier 1, Tier 2 and Tier 3 — can be renamed but not archived; archiving one returns 409. The same goes for the employee list, "All my employees".
Set archived: true to put a list away. It keeps every member and setting, but it stops appearing in List all lists unless you ask for it with include_archived=true. Set archived: false to bring it back. Archiving is not deleting: to remove a list, use Delete list.
Changing default_tracking_status immediately changes the behaviour of every member that has no tracking status of its own. Members carrying an explicit value keep it — clear a member's own value with Set member tracking status if you want it to follow the new default.
Update list
Path parameters
| Parameter | Type | Description |
|---|---|---|
| kind | string | List kind: company or profile (matches the list type). |
| list_id | integer | Identifier of the list. Specific to your environment. |
Request body
| Field | Type | Description |
|---|---|---|
| name | string | Optional. New name, non-empty. |
| description | string | Optional. New description; pass null to clear it. |
| default_tracking_status | enum | Optional. followed or unfollowed. |
| archived | boolean | Optional. true archives the list, false brings it back. |
| persona_ids | integer[] | Optional. Replaces the full set of personas this list belongs to. Omit to leave them untouched; send an empty array to make the list apply to every persona. For the employee list, only its current set is accepted; any other set returns 409. |
Every field is optional, but the body itself is required — send {} for a no-op. type, tier, default_signal_bucket and archived_at are not accepted and are ignored if present — archived_at is set for you when you pass archived.
Example request
curl -X PUT "https://api.getsillage.com/api/v2/lists/company/128" \
-H "Authorization: Bearer $SILLAGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Key competitors (EMEA)", "description": "Refocused on EMEA" }'Example response
{
"data": {
"id": 128,
"kind": "company",
"type": "competitor",
"name": "Key competitors (EMEA)",
"description": "Refocused on EMEA",
"tier": null,
"default_tracking_status": "followed",
"default_signal_bucket": "bucket_1",
"member_count": 12,
"bound_agent_count": 1,
"archived_at": null,
"persona_ids": []
}
}Errors
| Status | Description |
|---|---|
| 400 | Invalid request. |
| 401 | The API key is missing or invalid. |
| 404 | The list does not exist in your workspace. |
| 409 | The request archives one of the three default Tier 1/2/3 lists or the employee list, which cannot be archived, or changes the personas of the employee list. |
| 422 | Invalid list_id, or an invalid body (empty name, unknown default_tracking_status, or a persona_ids entry that does not belong to your workspace). |
| 429 | Too many requests. |
| 500 | An unexpected server error occurred. |