Requests of the last hour, per minute
const url = 'https://example.com/api/v1/stats/live';const options = { method: 'GET', headers: {cookie: 'bl_%3Cslug%3E_session=%3Cbl_%3Cslug%3E_session%3E'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/v1/stats/live \ --cookie bl_%3Cslug%3E_session=%3Cbl_%3Cslug%3E_session%3EThe data plane’s requests per minute over the last hour, the current minute included (it fills as the data plane writes its counts every 10 s). Light enough to poll every few seconds.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”OK.
/api/v1/stats/live: documents the JSON built in [live_stats].
object
The last 60 minutes; the last one is still filling.
Requests in one period (an hour or a minute).
object
The last complete minute.
Example generated
{ "minutes": [ { "at": "2026-04-15T12:00:00Z", "requests": 1, "errors": 1 } ], "requests_last_minute": 1, "requests_per_second": 1, "requests_hour": 1, "errors_hour": 1}No valid session, DPoP-bound token or API key.
The body of every failed call to a management API.
object
object
Stable, machine-readable: invalid_request, unauthenticated,
forbidden, not_found, conflict, upstream_unavailable,
unavailable, internal, or a more specific code of the operation.
For people; may change between versions.
Example
{ "error": { "code": "not_found", "message": "unknown negotiation" }}The caller lacks the role this operation needs; or a change with the session cookie came from a page of another site (cross_site_request, decisions #83).
The body of every failed call to a management API.
object
object
Stable, machine-readable: invalid_request, unauthenticated,
forbidden, not_found, conflict, upstream_unavailable,
unavailable, internal, or a more specific code of the operation.
For people; may change between versions.
Example
{ "error": { "code": "not_found", "message": "unknown negotiation" }}