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

PUT/api/v3/account-monitoring/accounts

Access modes

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

Authorization: Bearer sk_live_...

Body parameters

ParameterTypeDescription
persona_idintegerID 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_idsarray of integerIDs of the companies to change, between 1 and 1000: the id of each account in the key account list. Required.
signal_bucketsarray of string or nullThe 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

FieldTypeDescription
data.changedarray of objectAccounts that changed, with their status read back once billing ran.
data.changed[].company_idintegerID of the company. Specific to your environment.
data.changed[].statusstringmonitored, not_covered, monitored_elsewhere or not_monitored. See the statuses.
data.changed[].covered_untilstring or nullEnd of the month already paid, as an ISO 8601 timestamp. After a stop, when signals stop. null when nothing is paid.
data.already_in_statearray of integerIDs of the companies already in the requested state. They are not charged again.
data.refusedarray of objectAccounts that cannot be changed, with the reason. See the table below.
data.refused[].company_idintegerID of the company. Specific to your environment.
data.refused[].reasonstringWhy the account is refused.
data.charged_creditsnumberWhat this request took from your balance, in credits, renewals already due included. 0 when a partner pays.
data.balance_after_creditsnumber or nullYour credit balance once billing ran. null when a partner pays.

Refusal reasons

ReasonMeaning
workspace_wide_list_onlyThe account is only on lists attached to no business unit. Add it to a list attached to this business unit first.
not_in_business_unitThe account is not on any list of this business unit.
monitored_through_workspace_wide_listWhen stopping: the account is monitored through a list attached to no business unit. Stop that list instead.

Errors

StatusMeaning
401The API key is missing or invalid.
409Your workspace has no active business unit.
422Invalid 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.
429Rate limit exceeded.
500An unexpected server error occurred.

On this page