Appearance
dashboard
6 endpoints at a glance
| Method | Path | Summary |
|---|---|---|
GET | /dashboard/credits/ | Get Credits |
GET | /dashboard/measurements/ | Get Measurements |
POST | /dashboard/measurements/{measurement_id}/stop | Post Stop Measurement |
GET | /dashboard/probes/ | Get Probes |
POST | /dashboard/refresh/ | Post Refresh |
GET | /dashboard/summary/ | Get Summary |
dashboard
Get Summary
GET
/dashboard/summary/
Composite payload — all three sections in one round trip.
The dashboard page calls this on mount; sub-pages call the
section-specific endpoints below if they need fresher data.
Parameters
Header Parameters
authorization
x-api-key
Query Parameters
refresh
Type
boolean
Default
falseResponses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Get Credits
Get Probes
Get Measurements
Post Refresh
POST
/dashboard/refresh/
Drop every cached row for the calling user.
The next /summary/ (or any section endpoint) is a full
re-fetch from RIPE. Returns the count of cache rows deleted —
informational, mostly useful for verifying the request landed.
Parameters
Header Parameters
authorization
x-api-key
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Post Stop Measurement
POST
/dashboard/measurements/{measurement_id}/stop
Stop one of the caller's ongoing measurements.
Ownership is enforced upstream — RIPE returns 403/404 when the
caller doesn't own the measurement, mapped here to the matching
HTTP status. On success the user's measurements / summary cache
rows are dropped so the next dashboard read shows the
Stopped state.
POST (not DELETE) on our side — consistent with
POST /dashboard/refresh/ and avoids middleware that's strict
about DELETE bodies. The action verb in the URL keeps the intent
obvious.
Parameters
Header Parameters
authorization
x-api-key
Path Parameters
measurement_id*
Type
Requiredinteger
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}