Get monitoring summary
See how many accounts are monitored, what they cost each month.
Returns the monitoring figures of the client's workspace: how many accounts are monitored and the monthly cost. Counts are per account and per persona: an account monitored in two personas counts twice at the top level and is invoiced twice, while inside each by_persona entry every account counts once. Monitoring is invoiced to you at your partner price, so the client has no balance to run short of: not_covered_count and renewal_shortfall_credits are always 0, and not_covered_since is always null.
Same request as the client API, resolved for the client named by partner_workspace_id instead of an API key.
Route
Path parameters
| Parameter | Type | Description |
|---|---|---|
| partner_workspace_id | string | Your own ID for the client workspace, as you chose it at creation. URL-encode it in the path. |
Query parameters
| Parameter | Type | Description |
|---|---|---|
| persona_id | integer | ID of a persona. Optional. Without it the totals cover the whole workspace; with it, that persona only. by_persona always lists every persona. |
Example request
curl -X GET "https://api.getsillage.com/api/v3/partner/workspaces/ws_123/account-monitoring" \
-H "Authorization: Bearer $SILLAGE_MASTER_KEY"Success response
Status: 200 OK
{
"data": {
"is_billed": true,
"price_per_account_credits": 40,
"monitored_count": 120,
"not_covered_count": 0,
"not_covered_since": null,
"monthly_cost_credits": 4800,
"renewal_shortfall_credits": 0,
"by_persona": [
{
"persona_id": 12,
"monitored_count": 80,
"not_covered_count": 0,
"monthly_cost_credits": 3200
},
{
"persona_id": 15,
"monitored_count": 40,
"not_covered_count": 0,
"monthly_cost_credits": 1600
}
]
}
}Response fields
| Field | Type | Description |
|---|---|---|
| data.is_billed | boolean | Always true for a partner workspace. |
| data.price_per_account_credits | number | Credits invoiced to you per account, per persona, per month, at your partner price. |
| data.monitored_count | integer | Accounts monitored, counted per persona. |
| data.not_covered_count | integer | Always 0: renewals are invoiced, never refused. |
| data.not_covered_since | string or null | Always null. |
| data.monthly_cost_credits | number | What the monitored accounts cost per month at your partner price, in credits. Invoiced to you. |
| data.renewal_shortfall_credits | integer | Always 0: the client has no balance to run short of. |
| data.by_persona | array of object | The same figures for each persona. |
| data.by_persona[].persona_id | integer | ID of the persona. |
| data.by_persona[].monitored_count | integer | Accounts monitored in this persona. |
| data.by_persona[].not_covered_count | integer | Always 0. |
| data.by_persona[].monthly_cost_credits | number | Monthly cost of this persona at your partner price, in credits. |
Errors
| Status | Meaning |
|---|---|
| 401 | The master key is missing or invalid. |
| 404 | No workspace found for this partner_workspace_id. |
| 422 | Invalid or unknown persona_id. |
| 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.