The Project's uptime
curl --request GET \ --url 'https://api.uup.dev/v1/projects/prj_01J9Z3K8X4M2N6P8Q0R2S4T6V8/uptime?limit=50' \ --header 'Authorization: Bearer <token>'Each Monitor’s 30d figure and its days in that window, as the Project page shows them, in the order the Monitors were made.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The Project’s identifier, prj_….
Example
prj_01J9Z3K8X4M2N6P8Q0R2S4T6V8The Project’s identifier, prj_….
Query Parameters
Section titled “Query Parameters”The next of the page before. Left out, the first page.
The next of the page before. Left out, the first page.
How many to answer, 50 unless asked.
How many to answer, 50 unless asked.
Responses
Section titled “Responses”A page of Monitors’ uptime.
Each Monitor’s 30d figure and its days, in the order the Monitors were made.
object
One Monitor’s 30d figure and its days.
object
Its 30d figure.
object
When it was read.
From 0 to 1, unrounded: 1 − incidentSeconds / coveredSeconds. Null when nothing was measured.
The seconds it was checked and measured: the figure’s denominator.
The seconds of those inside an Incident.
The seconds it was checked but You Up? could not measure.
The hours You Up? could not measure, left out of the figure. A part hour is one.
Its days in the 30d window, oldest first.
One local day of a Monitor’s uptime.
object
YYYY-MM-DD, in the Project’s timezone.
Its local midnight.
The next local midnight.
From 0 to 1, unrounded: 1 − incidentSeconds / measuredSeconds. Null when nothing was measured.
The seconds it was checked, measured or not: measuredSeconds + notMeasuredSeconds.
The seconds it was checked and measured.
The seconds of those inside an Incident.
The seconds it was checked but You Up? could not measure.
The hours You Up? could not measure, left out of the figure. A part hour is one.
The seconds it was not checked, by why.
object
Pass it as cursor for the next page. Null on the last page.
Example
{ "data": [ { "window": { "window": "24h" } } ]}The request was refused: invalid_request names the field at fault.
A refusal.
object
object
What was refused, stable across releases. New codes may be added, so handle a code you do not know as its status says.
What to do, in the dashboard’s words. It may change, so never branch on it.
The field at fault, on a 400 invalid_request.
On a 402 not_entitled: what the Plan allows no more of.
On a 402: the Plan’s name.
On a 402: what the Plan allows. On a 422 target_cap_reached: the cap’s figure.
On a 402: what is in use, or for locations, how many were asked.
On a 422 target_cap_reached: which cap the Monitor would pass.
On a 422 target_cap_reached: the site the cap counts, by its host.
On a 422 target_cap_reached: the location the cap was reached from.
On a 422 target_cap_reached: what the cap counts now, before this Monitor.
On a 409 paid_needs_email: the names of the saved rules it would break.
On a 400 event_type_not_on_monitor: the events this Monitor never sends.
Example
{ "error": { "code": "invalid_request", "kind": "project" }}No working API token: unauthenticated.
A refusal.
object
object
What was refused, stable across releases. New codes may be added, so handle a code you do not know as its status says.
What to do, in the dashboard’s words. It may change, so never branch on it.
The field at fault, on a 400 invalid_request.
On a 402 not_entitled: what the Plan allows no more of.
On a 402: the Plan’s name.
On a 402: what the Plan allows. On a 422 target_cap_reached: the cap’s figure.
On a 402: what is in use, or for locations, how many were asked.
On a 422 target_cap_reached: which cap the Monitor would pass.
On a 422 target_cap_reached: the site the cap counts, by its host.
On a 422 target_cap_reached: the location the cap was reached from.
On a 422 target_cap_reached: what the cap counts now, before this Monitor.
On a 409 paid_needs_email: the names of the saved rules it would break.
On a 400 event_type_not_on_monitor: the events this Monitor never sends.
Example
{ "error": { "code": "invalid_request", "kind": "project" }}This token may not do this: forbidden.
A refusal.
object
object
What was refused, stable across releases. New codes may be added, so handle a code you do not know as its status says.
What to do, in the dashboard’s words. It may change, so never branch on it.
The field at fault, on a 400 invalid_request.
On a 402 not_entitled: what the Plan allows no more of.
On a 402: the Plan’s name.
On a 402: what the Plan allows. On a 422 target_cap_reached: the cap’s figure.
On a 402: what is in use, or for locations, how many were asked.
On a 422 target_cap_reached: which cap the Monitor would pass.
On a 422 target_cap_reached: the site the cap counts, by its host.
On a 422 target_cap_reached: the location the cap was reached from.
On a 422 target_cap_reached: what the cap counts now, before this Monitor.
On a 409 paid_needs_email: the names of the saved rules it would break.
On a 400 event_type_not_on_monitor: the events this Monitor never sends.
Example
{ "error": { "code": "invalid_request", "kind": "project" }}No such thing, or not one this token reaches: not_found.
A refusal.
object
object
What was refused, stable across releases. New codes may be added, so handle a code you do not know as its status says.
What to do, in the dashboard’s words. It may change, so never branch on it.
The field at fault, on a 400 invalid_request.
On a 402 not_entitled: what the Plan allows no more of.
On a 402: the Plan’s name.
On a 402: what the Plan allows. On a 422 target_cap_reached: the cap’s figure.
On a 402: what is in use, or for locations, how many were asked.
On a 422 target_cap_reached: which cap the Monitor would pass.
On a 422 target_cap_reached: the site the cap counts, by its host.
On a 422 target_cap_reached: the location the cap was reached from.
On a 422 target_cap_reached: what the cap counts now, before this Monitor.
On a 409 paid_needs_email: the names of the saved rules it would break.
On a 400 event_type_not_on_monitor: the events this Monitor never sends.
Example
{ "error": { "code": "invalid_request", "kind": "project" }}Too many requests: rate_limited. Retry-After says when to try again.
A refusal.
object
object
What was refused, stable across releases. New codes may be added, so handle a code you do not know as its status says.
What to do, in the dashboard’s words. It may change, so never branch on it.
The field at fault, on a 400 invalid_request.
On a 402 not_entitled: what the Plan allows no more of.
On a 402: the Plan’s name.
On a 402: what the Plan allows. On a 422 target_cap_reached: the cap’s figure.
On a 402: what is in use, or for locations, how many were asked.
On a 422 target_cap_reached: which cap the Monitor would pass.
On a 422 target_cap_reached: the site the cap counts, by its host.
On a 422 target_cap_reached: the location the cap was reached from.
On a 422 target_cap_reached: what the cap counts now, before this Monitor.
On a 409 paid_needs_email: the names of the saved rules it would break.
On a 400 event_type_not_on_monitor: the events this Monitor never sends.
Example
{ "error": { "code": "invalid_request", "kind": "project" }}