Monitor or stop accounts
Start or stop monitoring a selection of accounts in one business unit.
Monitors or stops a selection of accounts in one business unit, and bills it right away: send signal_buckets: ["essential"] to monitor them, null to stop. Monitoring costs 50 credits per account and per business unit for a month.
Accounts are monitored through the lists attached to that business unit: an account that only sits on lists attached to no business unit is refused. When a list is attached to several business units, monitoring an account on it monitors, and charges, it in each of them. Stopping keeps the month already paid until its end and never refunds it.
The request is never refused for lack of credits: an account whose month cannot be paid comes back with the status not_covered in changed. The response tells what the request took from your balance in charged_credits. A request where every account is refused still answers 200. Every change is recorded, with who made it, in the membership log of the lists involved.
To monitor a whole list, including the accounts added to it later, set its signal_buckets with PUT /api/v3/lists/{kind}/{list_id}. See the account monitoring overview.
Route
Access modes
Use a workspace API key. The workspace is inferred from the key.
Authorization: Bearer sk_live_...Body parameters
| Parameter | Type | Description |
|---|---|---|
| persona_id | integer | ID of the business unit. Specific to your environment. Optional when your workspace has exactly one active business unit; required when it has several (the request is refused with a 422 otherwise). |
| company_ids | array of integer | IDs of the companies to change, between 1 and 1000: the id of each account in the key account list. Required. |
| signal_buckets | array of string or null | The signal groups to monitor the accounts with, ["essential"], or null to stop monitoring them. Only essential exists today. Required. |
Example request
curl -X PUT "https://api.getsillage.com/api/v3/account-monitoring/accounts" \
-H "Authorization: Bearer $SILLAGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"persona_id": 12,
"company_ids": [
301,
302,
303
],
"signal_buckets": [
"essential"
]
}'Success response
Status: 200 OK
{
"data": {
"changed": [
{
"company_id": 301,
"status": "monitored",
"covered_until": "2026-11-08T09:30:00.000Z"
},
{
"company_id": 302,
"status": "not_covered",
"covered_until": null
}
],
"already_in_state": [303],
"refused": [],
"charged_credits": 50,
"balance_after_credits": 950
}
}Response fields
| Field | Type | Description |
|---|---|---|
| data.changed | array of object | Accounts that changed, with their status read back once billing ran. |
| data.changed[].company_id | integer | ID of the company. Specific to your environment. |
| data.changed[].status | string | monitored, not_covered, monitored_elsewhere or not_monitored. See the statuses. |
| data.changed[].covered_until | string or null | End of the month already paid, as an ISO 8601 timestamp. After a stop, when signals stop. null when nothing is paid. |
| data.already_in_state | array of integer | IDs of the companies already in the requested state. They are not charged again. |
| data.refused | array of object | Accounts that cannot be changed, with the reason. See the table below. |
| data.refused[].company_id | integer | ID of the company. Specific to your environment. |
| data.refused[].reason | string | Why the account is refused. |
| data.charged_credits | number | What this request took from your balance, in credits, renewals already due included. 0 when a partner pays. |
| data.balance_after_credits | number or null | Your credit balance once billing ran. null when a partner pays. |
Refusal reasons
| Reason | Meaning |
|---|---|
| workspace_wide_list_only | The account is only on lists attached to no business unit. Add it to a list attached to this business unit first. |
| not_in_business_unit | The account is not on any list of this business unit. |
| monitored_through_workspace_wide_list | When stopping: the account is monitored through a list attached to no business unit. Stop that list instead. |
Errors
| Status | Meaning |
|---|---|
| 401 | The API key is missing or invalid. |
| 409 | Your workspace has no active business unit. |
| 422 | Invalid body (company_ids empty or above 1000, signal_buckets missing), an unknown persona_id, or persona_id missing while your workspace has several business units. |
| 429 | Rate limit exceeded. |
| 500 | An unexpected server error occurred. |