Skip to content
nsin docs

List outage incidents

GET
/uptime
curl --request GET \
--url 'https://api.nsin.ir/uptime?domain=example.com&limit=50' \
--header 'Authorization: Bearer <token>'

The domain’s sustained origin-outage incidents, most recent first. An incident opens when a watched scope’s origin-error rate stays above the domain’s threshold for the whole detection window, and resolves after recover_min clear minutes.

Incidents come from two sources: the domain’s default whole-host watch, and each uptime monitor. Read monitor_id / scope_label to tell them apart.

domain
required
string

The domain name (for example example.com). These endpoints take the domain as a query parameter rather than a path segment.

Example
example.com
limit
integer
default: 50 >= 1 <= 200

How many incidents to return, 1-200. Out-of-range values fall back to the default.

Incident history.

Media type application/json
object
incidents
Array<object>
object
id
integer
monitor_id

The monitor that fired. Absent for the domain’s default whole-host watch. Two monitors on one hostname are otherwise indistinguishable in the history.

integer
scope_label

Human name of the watch — the monitor’s name, or its first included path when it has none. Empty string for the whole-host watch.

string
hostname
string
state

open while ongoing, resolved once recovered.

string
ongoing
boolean
started_at
string format: date-time
resolved_at

Absent while the incident is ongoing.

string format: date-time
duration_seconds
integer
peak_err_pct

Highest origin-error percentage reached.

number
sample_reqs

Requests observed over the incident.

integer
Example generated
{
"incidents": [
{
"id": 1,
"monitor_id": 1,
"scope_label": "example",
"hostname": "example",
"state": "example",
"ongoing": true,
"started_at": "2026-04-15T12:00:00Z",
"resolved_at": "2026-04-15T12:00:00Z",
"duration_seconds": 1,
"peak_err_pct": 1,
"sample_reqs": 1
}
]
}

The domain query parameter is missing.

Media type application/json

The single error shape used by every endpoint.

object
error
required

Human-readable description of what went wrong.

string
Examples
Example missing
{
"error": "domain is required"
}

Missing, malformed, revoked or expired API key. (A valid key whose account has been deactivated gets 403 account is inactive instead.)

Media type application/json

The single error shape used by every endpoint.

object
error
required

Human-readable description of what went wrong.

string
Examples
Example invalidKey
{
"error": "invalid API key"
}

No such domain, or it is not visible to this account. Domains you cannot access are reported as not found rather than forbidden.

Media type application/json

The single error shape used by every endpoint.

object
error
required

Human-readable description of what went wrong.

string
Example
{
"error": "read-only API key"
}

The key exceeded its request budget (300 requests per minute by default).

Media type application/json

The single error shape used by every endpoint.

object
error
required

Human-readable description of what went wrong.

string
Examples
Example limited
{
"error": "rate limit exceeded"
}