A Project
curl --request GET \ --url https://api.uup.dev/v1/projects/prj_01J9Z3K8X4M2N6P8Q0R2S4T6V8 \ --header 'Authorization: Bearer <token>'One Project this token reaches.
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_….
Responses
Section titled “Responses”The Project.
A Project.
object
The Project’s identifier, prj_….
The IANA timezone its days are cut by.
How many locations a new Monitor is checked from when it names none.
When it was suspended, or null.
When it was made.
Example generated
{ "id": "example", "organizationId": "example", "name": "example", "timezone": "example", "defaultLocationCount": 1, "suspendedAt": "2026-04-15T12:00:00Z", "createdAt": "2026-04-15T12:00:00Z"}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" }}