Skip to content

Per-product usage counters for one of the caller's client accounts.

GET
/partner/accounts/{client_account_id}/usage
curl --request GET \
--url https://api.siteqwality.com/partner/accounts/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/usage \
--header 'Authorization: Bearer <token>'

Resolved through exactly the path /billing/usage uses, against the CLIENT’s account id: account_usage_periods derives the window each product is metered in, and usage_counters_for_resolved_periods reads each product’s counter from its own window. Nothing here may shortcut to a single period string. A client can be anchored on a different day per product, and reporting one period is what made the 2026-08-02 hard-stop incident invisible for a month.

A client provisioned but not yet given an entitlement bundle has no paid packs, so every product resolves to the calendar month and only the products it has actually used carry a row.

client_account_id
required
string format: uuid

Client account identifier

The client’s per-product usage

Media type application/json

Response for GET /partner/accounts/{id}/usage.

Deliberately carries NO top-level period. /billing/usage still has one for backwards compatibility, and it is a lie whenever an account is anchored on a different day per product: reporting one is what made the 2026-08-02 hard-stop incident invisible for a month. A new endpoint gets to start correct.

object
account_id
required
string format: uuid
products
required

Every product, including the ones with no counter row yet, is NOT guaranteed here: this lists the counter rows that exist, exactly as /billing/usage does. A product a client has never used has no row.

Array<object>

One product’s counters for one client.

Field-for-field the shape /billing/usage returns, on purpose: a partner reading a client’s usage here and that client reading their own usage in the dashboard must not see two different numbers or two different units.

object
product
required
string
current_usage
required

Usage in the product’s CUSTOMER-FACING unit (see unit), not the raw tracking unit: synthetic is metered in seconds and reported in minutes.

integer format: int64
quota_limit
required
integer format: int64
hard_stopped
required
boolean
unit
required
string
period
required

The period THIS product is metered in.

string
Example generated
{
"account_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"products": [
{
"product": "example",
"current_usage": 1,
"quota_limit": 1,
"hard_stopped": true,
"unit": "example",
"period": "example"
}
]
}

Missing or invalid authentication

Caller is not an admin, or the account is not in the partner program

No live client account of yours with that id

Internal server error