Farsafe API (1.0)

Download OpenAPI specification:

REST API for the Farsafe uptime monitoring platform. Provides endpoints for probe management, status pages, reporting, billing, and account management.

API keys allow programmatic access to the Farsafe API. Available on Business accounts only.

Generating an API key

  1. Log in to Farsafe and go to Settings in your Business account.
  2. Scroll to the API Keys section.
  3. Click New API key, enter a name and select the permissions you want to grant.
  4. Copy the key immediately — it is shown only once and cannot be retrieved later.

Authenticating requests

Use HTTP Basic Auth with apikey_id as the username and secret as the password:

Authorization: Basic <base64(apikey_id:secret)>

Example with curl:

curl 'https://dev.farsafe.net/api/probes?account_id=your_account_id' \
  -u 'your_apikey_id:your_secret'

Accounts

Account management, user profile, and password settings

List accounts for the authenticated user

Returns all accounts the authenticated user belongs to. Individual accounts only — not available for business accounts.

Authorizations:
ApiKeyAuth
query Parameters
limit
integer
Default: 25

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip for pagination

match
string

Search/filter string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get account details

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Create a new organization account

Individual accounts only — creates a new business account under the authenticated user.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
required
object
type
required
string
Default: "b"
Value: "b"

Account type for organization registration:

  • b — Business
timezone
required
string

IANA timezone identifier

Responses

Request samples

Content type
application/json
{
  • "identity": {
    },
  • "type": "b",
  • "timezone": "string"
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Update account details

Authorizations:
ApiKeyAuth
query Parameters
id
string
account_id
required
string

The account ID

Request Body schema: application/json
required
object
accepted
boolean

Terms of service acceptance

timezone
string non-empty

Responses

Request samples

Content type
application/json
{
  • "identity": {
    },
  • "accepted": true,
  • "timezone": "string"
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Delete an account

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

Get a new TOTP secret for 2FA setup

Individual accounts only — returns a new TOTP secret and QR code URI for setting up two-factor authentication.

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Enable or disable two-factor authentication

Individual accounts only — enables or disables TOTP-based 2FA. When enabling, auth_code must be a valid code generated from the secret returned by GET /api/account/totp.

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
enable
required
boolean

Whether to enable or disable 2FA

auth_code
required
string = 6 characters

6-digit TOTP verification code

Responses

Request samples

Content type
application/json
{
  • "enable": true,
  • "auth_code": "string"
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

Change the user's password

Individual accounts only — not available for business accounts.

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
current_password
required
string
new_password
required
string >= 8 characters

Responses

Request samples

Content type
application/json
{
  • "current_password": "string",
  • "new_password": "stringst"
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "account password updated"
}

Members

Account member management. Business accounts only — these endpoints are not available for individual accounts.

List account members

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

limit
integer
Default: 25

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip for pagination

match
string

Search/filter string

group_id
string

Filter by member group ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Invite a new member to the account

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
identity
required
string <email>

Email address to invite

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "account invitation initiated"
}

Get a single account member

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

member_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Update an account member

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

member_id
required
string
Request Body schema: application/json
required
object
permission
Array of strings (Permission) unique
Items Enum: "o" "a" "pw" "pr" "sw" "sr" "bw" "br" "rw" "rr"

Permission codes:

  • o — Owner (full access)
  • a — Administrator
  • pw — Probe Read/Write
  • pr — Probe Read
  • sw — Status Page Read/Write
  • sr — Status Page Read
  • bw — Billing Read/Write
  • br — Billing Read
  • rw — Report Read/Write
  • rr — Report Read
enabled
boolean
Default: false
accepted
boolean or null
Default: null

Responses

Request samples

Content type
application/json
{
  • "identity": {
    },
  • "permission": [
    ],
  • "enabled": false,
  • "accepted": null
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Remove a member from the account

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

member_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

Accept an account membership invitation

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
accepted
required
boolean

Whether to accept (true) or decline (false) the invitation

Responses

Request samples

Content type
application/json
{
  • "accepted": true
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

Member Groups

Account member group management. Business accounts only — these endpoints are not available for individual accounts.

List member groups

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

limit
integer
Default: 25

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip for pagination

match
string

Search/filter string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get a member group

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

group_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Create a member group

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
members
required
Array of strings non-empty unique

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "members": [
    ]
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Update a member group

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

group_id
required
string
Request Body schema: application/json
required
name
required
string non-empty
members
required
Array of strings non-empty unique

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "members": [
    ]
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Delete a member group

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

group_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

Probes

Probe CRUD, history, samples, timespans, and outages

List monitoring probes

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

limit
integer
Default: 25

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip for pagination

match
string

Search/filter string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get probe details

Authorizations:
ApiKeyAuth
query Parameters
probe_id
required
string
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Create a new monitoring probe

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
type
required
string
Default: "http"

Probe monitoring type:

  • http — HTTP/HTTPS web monitoring
  • mail — SMTP/IMAP/POP3 mail server monitoring
  • ping — ICMP ping monitoring
  • port — TCP/UDP port monitoring
HTTP (object) or Mail (object) or Ping (object) or Port (object)

Probe configuration — structure depends on the probe type

regions
required
Array of strings non-empty
Items Enum: "af" "as" "eu" "na" "oc" "sa"

One or more monitoring regions to run checks from.

frequency
required
number [ 60 .. 480 ]
fail_level
number [ 1 .. 10 ]
Default: 2
pass_level
number [ 1 .. 10 ]
Default: 1
alert_level
integer [ 0 .. 4 ]
alert_repeat
integer [ 0 .. 60 ]
Default: 0
preempt_crt
integer [ 0 .. 60 ]
Default: 14
preempt_dns
integer [ 0 .. 60 ]
Default: 14
paused
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "http",
  • "config": {
    },
  • "regions": [
    ],
  • "frequency": 60,
  • "fail_level": 2,
  • "pass_level": 1,
  • "alert_level": 4,
  • "alert_repeat": 0,
  • "preempt_crt": 14,
  • "preempt_dns": 14,
  • "paused": false
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Update a monitoring probe

Authorizations:
ApiKeyAuth
query Parameters
probe_id
required
string
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
type
required
string
Default: "http"

Probe monitoring type:

  • http — HTTP/HTTPS web monitoring
  • mail — SMTP/IMAP/POP3 mail server monitoring
  • ping — ICMP ping monitoring
  • port — TCP/UDP port monitoring
HTTP (object) or Mail (object) or Ping (object) or Port (object)

Probe configuration — structure depends on the probe type

regions
required
Array of strings non-empty
Items Enum: "af" "as" "eu" "na" "oc" "sa"

One or more monitoring regions to run checks from.

frequency
required
number [ 60 .. 480 ]
fail_level
number [ 1 .. 10 ]
Default: 2
pass_level
number [ 1 .. 10 ]
Default: 1
alert_level
integer [ 0 .. 4 ]
alert_repeat
integer [ 0 .. 60 ]
Default: 0
preempt_crt
integer [ 0 .. 60 ]
Default: 14
preempt_dns
integer [ 0 .. 60 ]
Default: 14
paused
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "http",
  • "config": {
    },
  • "regions": [
    ],
  • "frequency": 60,
  • "fail_level": 2,
  • "pass_level": 1,
  • "alert_level": 4,
  • "alert_repeat": 0,
  • "preempt_crt": 14,
  • "preempt_dns": 14,
  • "paused": false
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Delete a monitoring probe

Authorizations:
ApiKeyAuth
query Parameters
probe_id
required
string
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "probe deleted"
}

Get historical pass/fail data for a probe

Authorizations:
ApiKeyAuth
query Parameters
probe_id
required
string
account_id
required
string

The account ID

ts_minimum
required
number

Start timestamp (unix seconds)

ts_maximum
required
number

End timestamp (unix seconds)

interval
required
string
Enum: "q" "h" "d"

Aggregation interval for data points:

  • q — 15-minute buckets (ranges under 7 days)
  • h — Hourly buckets (ranges between 7 and 30 days)
  • d — Daily buckets (ranges over 30 days)

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get individual probe check samples

Authorizations:
ApiKeyAuth
query Parameters
probe_id
required
string
account_id
required
string

The account ID

ts_minimum
required
number
ts_maximum
required
number

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": [
    ]
}

List outage timespans

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

probe_id
string
ts_minimum
required
number
ts_maximum
required
number
limit
integer
Default: 25

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip for pagination

status
string
Enum: "f" "p"

Filter by status:

  • f — Fail
  • p — Pass

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get outage/timespan details

Authorizations:
ApiKeyAuth
query Parameters
timespan_id
required
string
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Add a note to an outage timespan

Authorizations:
ApiKeyAuth
query Parameters
timespan_id
required
string
account_id
required
string

The account ID

Request Body schema: application/json
required
note
string
action
string or null
Enum: "a" null
  • a — Acknowledge the outage
  • null — No action

Responses

Request samples

Content type
application/json
{
  • "note": "string",
  • "action": "a"
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Probe Groups

Probe group management

List probe groups

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

limit
integer
Default: 25

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip for pagination

match
string

Search/filter string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get a probe group

Authorizations:
ApiKeyAuth
query Parameters
group_id
required
string
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Create a probe group

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
members
required
Array of strings non-empty unique

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "members": [
    ]
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Update a probe group

Authorizations:
ApiKeyAuth
query Parameters
group_id
required
string
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
members
required
Array of strings non-empty unique

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "members": [
    ]
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Delete a probe group

Authorizations:
ApiKeyAuth
query Parameters
group_id
required
string
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "probe group deleted"
}

Reports

Report generation, download, and scheduled reports

List reports

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

limit
integer
Default: 25

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip for pagination

match
string

Search/filter string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get a report

Authorizations:
ApiKeyAuth
query Parameters
report_id
required
string
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Create a report

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
time_frame
required
number
Default: 1
Enum: 1 2 7 14 30

Report time frame in days:

  • 1 — 24 hours
  • 2 — 48 hours
  • 7 — 7 days
  • 14 — 14 days
  • 30 — 30 days
probe_group_id
string or null
Default: null

Probe group to include in the report. Null includes all probe groups.

description
required
string
Default: ""

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "time_frame": 1,
  • "probe_group_id": null,
  • "description": ""
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Update a report

Authorizations:
ApiKeyAuth
query Parameters
report_id
required
string
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
time_frame
required
number
Default: 1
Enum: 1 2 7 14 30

Report time frame in days:

  • 1 — 24 hours
  • 2 — 48 hours
  • 7 — 7 days
  • 14 — 14 days
  • 30 — 30 days
probe_group_id
string or null
Default: null

Probe group to include in the report. Null includes all probe groups.

description
required
string
Default: ""

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "time_frame": 1,
  • "probe_group_id": null,
  • "description": ""
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Delete a report

Authorizations:
ApiKeyAuth
query Parameters
report_id
required
string
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

Download a report in the specified format

Authorizations:
ApiKeyAuth
query Parameters
report_id
required
string
account_id
required
string

The account ID

format
required
string
Enum: "pdf" "csv" "json" "html"

Download format:

  • pdf — PDF document
  • csv — Comma-separated values
  • json — JSON data
  • html — HTML page

Responses

Response samples

Content type
No sample

List scheduled reports

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

limit
integer
Default: 25

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip for pagination

match
string

Search/filter string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get a scheduled report

Authorizations:
ApiKeyAuth
query Parameters
report_schedule_id
required
string
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Create a scheduled report

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
probe_group_id
required
string or null

Probe group to include in the report. Null includes all probe groups.

format
required
string (ReportFormat)
Default: "pdf"
Enum: "pdf" "csv" "json" "html"

Report file format:

  • pdf — PDF document
  • csv — Comma-separated values
  • json — JSON data
  • html — HTML page
recurrence
required
string (Recurrence)
Default: "w"
Enum: "d" "w" "m"

Report recurrence frequency:

  • d — Daily
  • w — Weekly
  • m — Monthly
day
number [ 1 .. 7 ]

Day of week the report runs (used when recurrence is w):

  • 1 — Monday
  • 2 — Tuesday
  • 3 — Wednesday
  • 4 — Thursday
  • 5 — Friday
  • 6 — Saturday
  • 7 — Sunday
account_member_group_id
string or null
Default: null

Member group to send the report to. Null sends to all users.

additional_email
Array of strings <email> unique [ items <email > ]
Default: []

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "probe_group_id": "string",
  • "format": "pdf",
  • "recurrence": "d",
  • "day": 1,
  • "account_member_group_id": null,
  • "additional_email": [ ]
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Update a scheduled report

Authorizations:
ApiKeyAuth
query Parameters
report_schedule_id
required
string
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
probe_group_id
required
string or null

Probe group to include in the report. Null includes all probe groups.

format
required
string (ReportFormat)
Default: "pdf"
Enum: "pdf" "csv" "json" "html"

Report file format:

  • pdf — PDF document
  • csv — Comma-separated values
  • json — JSON data
  • html — HTML page
recurrence
required
string (Recurrence)
Default: "w"
Enum: "d" "w" "m"

Report recurrence frequency:

  • d — Daily
  • w — Weekly
  • m — Monthly
day
number [ 1 .. 7 ]

Day of week the report runs (used when recurrence is w):

  • 1 — Monday
  • 2 — Tuesday
  • 3 — Wednesday
  • 4 — Thursday
  • 5 — Friday
  • 6 — Saturday
  • 7 — Sunday
account_member_group_id
string or null
Default: null

Member group to send the report to. Null sends to all users.

additional_email
Array of strings <email> unique [ items <email > ]
Default: []

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "probe_group_id": "string",
  • "format": "pdf",
  • "recurrence": "d",
  • "day": 1,
  • "account_member_group_id": null,
  • "additional_email": [ ]
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Delete a scheduled report

Authorizations:
ApiKeyAuth
query Parameters
report_schedule_id
required
string
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

Status Pages

Public status page management

List status pages

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

limit
integer
Default: 25

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip for pagination

match
string

Search/filter string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get a status page

Authorizations:
ApiKeyAuth
query Parameters
status_page_id
required
string
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Create a status page

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
probe_group_id
required
string or null

Probe group to include in the status page — null includes all probes

visibility
required
string (Visibility)
Default: "p"
Value: "p"

Status page visibility mode:

  • p — Public
password
string or null >= 9 characters
Default: null

Optional password protection (minimum 9 characters)

required
object (StatusPageConfig)

Customization options for the status page appearance

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "probe_group_id": "string",
  • "visibility": "p",
  • "password": null,
  • "config": {}
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Update a status page

Authorizations:
ApiKeyAuth
query Parameters
status_page_id
required
string
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
probe_group_id
required
string or null

Probe group to include in the status page — null includes all probes

visibility
required
string (Visibility)
Default: "p"
Value: "p"

Status page visibility mode:

  • p — Public
password
string or null >= 9 characters
Default: null

Optional password protection (minimum 9 characters)

required
object (StatusPageConfig)

Customization options for the status page appearance

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "probe_group_id": "string",
  • "visibility": "p",
  • "password": null,
  • "config": {}
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Delete a status page

Authorizations:
ApiKeyAuth
query Parameters
status_page_id
required
string
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

Get status page summary

Returns all probes with pass/fail data points and timespan summary

Authorizations:
ApiKeyAuth
query Parameters
status_page_id
required
string
password
string or null

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get single probe data for a status page

Returns detailed data for a single probe including runtime metrics

Authorizations:
ApiKeyAuth
query Parameters
status_page_id
required
string
probe_id
required
string
password
string or null

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Contacts

Notification contact management and verification. Available contact types differ by account type: individual accounts support email contacts only; business accounts support phone, Slack, Discord, Microsoft Teams, Google Chat, Webhook, and Telegram contacts.

List notification contacts

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get a contact

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

contact_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Create a notification contact

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string non-empty
identity
required
string non-empty
type
required
string (ContactType)
Enum: "e" "p" "s" "d" "m" "g" "w" "t"
  • e — Email (individual accounts only)
  • p — Phone (business accounts only)
  • s — Slack (business accounts only)
  • d — Discord (business accounts only)
  • m — Microsoft Teams (business accounts only)
  • g — Google Chat (business accounts only)
  • w — Webhook (business accounts only)
  • t — Telegram (business accounts only)
roles
required
Array of strings
Items Enum: "t" "v" "n"

Alert roles assigned to this contact:

  • t — Trigger (receives outage alerts)
  • v — Verification (receives verification codes)
  • n — Notification (receives general notifications)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "identity": "string",
  • "type": "e",
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Update a notification contact

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

contact_id
required
string
Request Body schema: application/json
required
name
required
string non-empty
identity
required
string non-empty
type
required
string (ContactType)
Enum: "e" "p" "s" "d" "m" "g" "w" "t"
  • e — Email (individual accounts only)
  • p — Phone (business accounts only)
  • s — Slack (business accounts only)
  • d — Discord (business accounts only)
  • m — Microsoft Teams (business accounts only)
  • g — Google Chat (business accounts only)
  • w — Webhook (business accounts only)
  • t — Telegram (business accounts only)
roles
required
Array of strings
Items Enum: "t" "v" "n"

Alert roles assigned to this contact:

  • t — Trigger (receives outage alerts)
  • v — Verification (receives verification codes)
  • n — Notification (receives general notifications)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "identity": "string",
  • "type": "e",
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Delete a notification contact

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

contact_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "account contact deleted"
}

Send a verification code to a contact

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

contact_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

Verify a contact with a 6-digit code

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

contact_id
required
string
Request Body schema: application/json
required
code
required
string = 6 characters ^[0-9]{6}$

6-digit verification code

Responses

Request samples

Content type
application/json
{
  • "code": "string"
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

Billing

Billing, payment methods, and transaction records. Business accounts only — these endpoints are not available for individual accounts.

Get billing summary for an account

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Update billing information

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
object
itemize
boolean

Include itemized list in invoice documents

anonymize
boolean

Remove PII from invoice line items

attach
boolean

Attach invoice documents to billing emails

dflt_method_id
string or null

ID of the default payment method

Responses

Request samples

Content type
application/json
{
  • "identity": {
    },
  • "itemize": true,
  • "anonymize": true,
  • "attach": true,
  • "dflt_method_id": "string"
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Enable or disable billing for an account

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
enable
required
boolean

Responses

Request samples

Content type
application/json
{
  • "enable": true
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "billing is enabled"
}

List payment methods

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

limit
integer
Default: 25

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip for pagination

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Create a new payment method (Stripe setup intent)

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Delete a payment method

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

method_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

List billing transaction records

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

limit
integer
Default: 25

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip for pagination

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get a single billing record

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

record_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Cancel a billing record

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

record_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "string"
}

Retry a failed billing record

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

record_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Download a billing record/invoice

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

record_id
required
string
format
required
string
Enum: "pdf" "json"

Download format:

  • pdf — PDF document
  • json — JSON data

Responses

Response samples

Content type
No sample

System

System configuration and reference data

Get system status and server list

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get list of supported timezones

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": [
    ]
}

Get available monitoring regions

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": [
    ]
}

Get supported countries (with SMS capability)

Authorizations:
ApiKeyAuth
query Parameters
sms
boolean

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": [
    ]
}

Get system status and parameters

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get pricing plans and account limits

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": [
    ]
}

Summary

Get account uptime history (pass/fail counts over time)

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

ts_minimum
required
number

Start of time range (unix seconds)

ts_maximum
required
number

End of time range (unix seconds)

interval
required
string
Enum: "q" "h" "d"

Bucket interval size:

  • q — Quarter hour (15 minutes)
  • h — Hour
  • d — Day

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Get account summary (probe counts, status overview)

Authorizations:
ApiKeyAuth
query Parameters
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

API Keys

List API keys

query Parameters
account_id
required
string

The account ID

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Create an API key

query Parameters
account_id
required
string

The account ID

Request Body schema: application/json
required
name
required
string
permission
required
Array of strings (Permission) unique
Items Enum: "o" "a" "pw" "pr" "sw" "sr" "bw" "br" "rw" "rr"

Permission codes:

  • a — Administrator
  • pw — Probe Read/Write
  • pr — Probe Read
  • sw — Status Page Read/Write
  • sr — Status Page Read
  • bw — Billing Read/Write
  • br — Billing Read
  • rw — Report Read/Write
  • rr — Report Read
enabled
required
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "permission": [
    ],
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Update an API key

query Parameters
account_id
required
string

The account ID

apikey_id
required
string
Request Body schema: application/json
required
name
required
string
permission
required
Array of strings (Permission) unique
Items Enum: "o" "a" "pw" "pr" "sw" "sr" "bw" "br" "rw" "rr"

Permission codes:

  • a — Administrator
  • pw — Probe Read/Write
  • pr — Probe Read
  • sw — Status Page Read/Write
  • sr — Status Page Read
  • bw — Billing Read/Write
  • br — Billing Read
  • rw — Report Read/Write
  • rr — Report Read
enabled
required
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "permission": [
    ],
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": {
    }
}

Delete an API key

query Parameters
account_id
required
string

The account ID

apikey_id
required
string

Responses

Response samples

Content type
application/json
{
  • "result": "success",
  • "output": "account api key deleted"
}
Version All versions