Skip to content

A Project

GET
/projects/{projectId}
Code sample: Shell / cURL
curl --request GET \
--url https://api.uup.dev/v1/projects/prj_01J9Z3K8X4M2N6P8Q0R2S4T6V8 \
--header 'Authorization: Bearer <token>'

One Project this token reaches.

projectId
required

The Project’s identifier, prj_….

string

Example

prj_01J9Z3K8X4M2N6P8Q0R2S4T6V8

The Project’s identifier, prj_….

The Project.

Media typeapplication/json

A Project.

object
id
required

The Project’s identifier, prj_….

string
organizationId
required
string
name
required
string
timezone
required

The IANA timezone its days are cut by.

string
defaultLocationCount
required

How many locations a new Monitor is checked from when it names none.

integer
suspendedAt
required

When it was suspended, or null.

string | null format: date-time
createdAt
required

When it was made.

string format: date-time

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.

Media typeapplication/json

A refusal.

object
error
required
object
code
required

What was refused, stable across releases. New codes may be added, so handle a code you do not know as its status says.

string
Allowed values: invalid_request bad_identifier unauthenticated forbidden not_found not_entitled rate_limited interval_below_floor timeout_below_floor url_missing check_not_applicable port_blocked target_cap_reached too_few_locations location_unavailable uptime_always_on monitor_busy monitor_suspended project_suspended validation_required validation_unavailable validation_rate_limited validation_expired validation_mismatch validation_failed default_rule_is_fixed name_taken paid_needs_email paid_rule_sends_nothing webhook_url_refused address_refused event_type_not_on_monitor too_many_webhooks url_taken
message
required

What to do, in the dashboard’s words. It may change, so never branch on it.

string
field

The field at fault, on a 400 invalid_request.

string
kind

On a 402 not_entitled: what the Plan allows no more of.

string
Allowed values: project monitor heartbeat location
plan

On a 402: the Plan’s name.

string
limit

On a 402: what the Plan allows. On a 422 target_cap_reached: the cap’s figure.

integer
used

On a 402: what is in use, or for locations, how many were asked.

integer
cap

On a 422 target_cap_reached: which cap the Monitor would pass.

string
key

On a 422 target_cap_reached: the site the cap counts, by its host.

string
location

On a 422 target_cap_reached: the location the cap was reached from.

string
current

On a 422 target_cap_reached: what the cap counts now, before this Monitor.

integer
rules

On a 409 paid_needs_email: the names of the saved rules it would break.

Array<string>
eventTypes

On a 400 event_type_not_on_monitor: the events this Monitor never sends.

Array<string>

Example

{
"error": {
"code": "invalid_request",
"kind": "project"
}
}

No working API token: unauthenticated.

Media typeapplication/json

A refusal.

object
error
required
object
code
required

What was refused, stable across releases. New codes may be added, so handle a code you do not know as its status says.

string
Allowed values: invalid_request bad_identifier unauthenticated forbidden not_found not_entitled rate_limited interval_below_floor timeout_below_floor url_missing check_not_applicable port_blocked target_cap_reached too_few_locations location_unavailable uptime_always_on monitor_busy monitor_suspended project_suspended validation_required validation_unavailable validation_rate_limited validation_expired validation_mismatch validation_failed default_rule_is_fixed name_taken paid_needs_email paid_rule_sends_nothing webhook_url_refused address_refused event_type_not_on_monitor too_many_webhooks url_taken
message
required

What to do, in the dashboard’s words. It may change, so never branch on it.

string
field

The field at fault, on a 400 invalid_request.

string
kind

On a 402 not_entitled: what the Plan allows no more of.

string
Allowed values: project monitor heartbeat location
plan

On a 402: the Plan’s name.

string
limit

On a 402: what the Plan allows. On a 422 target_cap_reached: the cap’s figure.

integer
used

On a 402: what is in use, or for locations, how many were asked.

integer
cap

On a 422 target_cap_reached: which cap the Monitor would pass.

string
key

On a 422 target_cap_reached: the site the cap counts, by its host.

string
location

On a 422 target_cap_reached: the location the cap was reached from.

string
current

On a 422 target_cap_reached: what the cap counts now, before this Monitor.

integer
rules

On a 409 paid_needs_email: the names of the saved rules it would break.

Array<string>
eventTypes

On a 400 event_type_not_on_monitor: the events this Monitor never sends.

Array<string>

Example

{
"error": {
"code": "invalid_request",
"kind": "project"
}
}

This token may not do this: forbidden.

Media typeapplication/json

A refusal.

object
error
required
object
code
required

What was refused, stable across releases. New codes may be added, so handle a code you do not know as its status says.

string
Allowed values: invalid_request bad_identifier unauthenticated forbidden not_found not_entitled rate_limited interval_below_floor timeout_below_floor url_missing check_not_applicable port_blocked target_cap_reached too_few_locations location_unavailable uptime_always_on monitor_busy monitor_suspended project_suspended validation_required validation_unavailable validation_rate_limited validation_expired validation_mismatch validation_failed default_rule_is_fixed name_taken paid_needs_email paid_rule_sends_nothing webhook_url_refused address_refused event_type_not_on_monitor too_many_webhooks url_taken
message
required

What to do, in the dashboard’s words. It may change, so never branch on it.

string
field

The field at fault, on a 400 invalid_request.

string
kind

On a 402 not_entitled: what the Plan allows no more of.

string
Allowed values: project monitor heartbeat location
plan

On a 402: the Plan’s name.

string
limit

On a 402: what the Plan allows. On a 422 target_cap_reached: the cap’s figure.

integer
used

On a 402: what is in use, or for locations, how many were asked.

integer
cap

On a 422 target_cap_reached: which cap the Monitor would pass.

string
key

On a 422 target_cap_reached: the site the cap counts, by its host.

string
location

On a 422 target_cap_reached: the location the cap was reached from.

string
current

On a 422 target_cap_reached: what the cap counts now, before this Monitor.

integer
rules

On a 409 paid_needs_email: the names of the saved rules it would break.

Array<string>
eventTypes

On a 400 event_type_not_on_monitor: the events this Monitor never sends.

Array<string>

Example

{
"error": {
"code": "invalid_request",
"kind": "project"
}
}

No such thing, or not one this token reaches: not_found.

Media typeapplication/json

A refusal.

object
error
required
object
code
required

What was refused, stable across releases. New codes may be added, so handle a code you do not know as its status says.

string
Allowed values: invalid_request bad_identifier unauthenticated forbidden not_found not_entitled rate_limited interval_below_floor timeout_below_floor url_missing check_not_applicable port_blocked target_cap_reached too_few_locations location_unavailable uptime_always_on monitor_busy monitor_suspended project_suspended validation_required validation_unavailable validation_rate_limited validation_expired validation_mismatch validation_failed default_rule_is_fixed name_taken paid_needs_email paid_rule_sends_nothing webhook_url_refused address_refused event_type_not_on_monitor too_many_webhooks url_taken
message
required

What to do, in the dashboard’s words. It may change, so never branch on it.

string
field

The field at fault, on a 400 invalid_request.

string
kind

On a 402 not_entitled: what the Plan allows no more of.

string
Allowed values: project monitor heartbeat location
plan

On a 402: the Plan’s name.

string
limit

On a 402: what the Plan allows. On a 422 target_cap_reached: the cap’s figure.

integer
used

On a 402: what is in use, or for locations, how many were asked.

integer
cap

On a 422 target_cap_reached: which cap the Monitor would pass.

string
key

On a 422 target_cap_reached: the site the cap counts, by its host.

string
location

On a 422 target_cap_reached: the location the cap was reached from.

string
current

On a 422 target_cap_reached: what the cap counts now, before this Monitor.

integer
rules

On a 409 paid_needs_email: the names of the saved rules it would break.

Array<string>
eventTypes

On a 400 event_type_not_on_monitor: the events this Monitor never sends.

Array<string>

Example

{
"error": {
"code": "invalid_request",
"kind": "project"
}
}

Too many requests: rate_limited. Retry-After says when to try again.

Media typeapplication/json

A refusal.

object
error
required
object
code
required

What was refused, stable across releases. New codes may be added, so handle a code you do not know as its status says.

string
Allowed values: invalid_request bad_identifier unauthenticated forbidden not_found not_entitled rate_limited interval_below_floor timeout_below_floor url_missing check_not_applicable port_blocked target_cap_reached too_few_locations location_unavailable uptime_always_on monitor_busy monitor_suspended project_suspended validation_required validation_unavailable validation_rate_limited validation_expired validation_mismatch validation_failed default_rule_is_fixed name_taken paid_needs_email paid_rule_sends_nothing webhook_url_refused address_refused event_type_not_on_monitor too_many_webhooks url_taken
message
required

What to do, in the dashboard’s words. It may change, so never branch on it.

string
field

The field at fault, on a 400 invalid_request.

string
kind

On a 402 not_entitled: what the Plan allows no more of.

string
Allowed values: project monitor heartbeat location
plan

On a 402: the Plan’s name.

string
limit

On a 402: what the Plan allows. On a 422 target_cap_reached: the cap’s figure.

integer
used

On a 402: what is in use, or for locations, how many were asked.

integer
cap

On a 422 target_cap_reached: which cap the Monitor would pass.

string
key

On a 422 target_cap_reached: the site the cap counts, by its host.

string
location

On a 422 target_cap_reached: the location the cap was reached from.

string
current

On a 422 target_cap_reached: what the cap counts now, before this Monitor.

integer
rules

On a 409 paid_needs_email: the names of the saved rules it would break.

Array<string>
eventTypes

On a 400 event_type_not_on_monitor: the events this Monitor never sends.

Array<string>

Example

{
"error": {
"code": "invalid_request",
"kind": "project"
}
}