Ga naar inhoud

Statistics of the last 24 hours

GET
/api/v1/stats
curl --request GET \
--url https://example.com/api/v1/stats \
--cookie bl_%3Cslug%3E_session=%3Cbl_%3Cslug%3E_session%3E

Processes per state, agreements, evidence entries and the data plane’s requests of the last 24 hours (per hour, errors, refusals, p50 and p95), with the health of the components and the last heartbeat to the authority. The dashboard shows it.

OK.

Media typeapplication/json

/api/v1/stats: documents the JSON built in [collect_stats] and [stats].

object
negotiations
required

Negotiations per state.

object
key
additional properties
integer format: int64
transfers
required

Transfers per state.

object
key
additional properties
integer format: int64
agreements
required
integer format: int64
evidence_entries
required
integer format: int64
dataplane_series
required

The last 24 hours, per hour.

Array<object>

Requests in one period (an hour or a minute).

object
at
required
string format: date-time
requests
required
integer format: int64
errors
required
integer format: int64
dataplane
required
object
requests_24h
required
integer format: int64
errors_24h
required

Answers with status 4xx or 5xx, including what the data plane refused itself.

integer format: int64
refused_24h
required
integer format: int64
p50_ms
number | null format: double
p95_ms
number | null format: double
last_request_at
string | null format: date-time
series
required

Hours with requests: hour, count.

Array<object>
object
health
required

As in /healthz.

object
key
additional properties
string
last_heartbeat_at
string | null

Example generated

{
"negotiations": {
"additionalProperty": 1
},
"transfers": {
"additionalProperty": 1
},
"agreements": 1,
"evidence_entries": 1,
"dataplane_series": [
{
"at": "2026-04-15T12:00:00Z",
"requests": 1,
"errors": 1
}
],
"dataplane": {
"requests_24h": 1,
"errors_24h": 1,
"refused_24h": 1,
"p50_ms": 1,
"p95_ms": 1,
"last_request_at": "2026-04-15T12:00:00Z",
"series": [
{}
]
},
"health": {
"additionalProperty": "example"
},
"last_heartbeat_at": "example"
}

No valid session, DPoP-bound token or API key.

Media typeapplication/json

The body of every failed call to a management API.

object
error
required
object
code
required

Stable, machine-readable: invalid_request, unauthenticated, forbidden, not_found, conflict, upstream_unavailable, unavailable, internal, or a more specific code of the operation.

string
message
required

For people; may change between versions.

string

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).

Media typeapplication/json

The body of every failed call to a management API.

object
error
required
object
code
required

Stable, machine-readable: invalid_request, unauthenticated, forbidden, not_found, conflict, upstream_unavailable, unavailable, internal, or a more specific code of the operation.

string
message
required

For people; may change between versions.

string

Example

{
"error": {
"code": "not_found",
"message": "unknown negotiation"
}
}