Uptime
Query and manage uptime monitors through the WebPixie GraphQL API.
Uptime monitors are called UptimeLink in the API, for example findUptimeLink and createUptimeLink.
Some features and limits mentioned on this page vary by plan. Visit our Pricing page to review the plans.
Fields
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the uptime monitor. |
name | String! | The monitor's display name. |
target | String! | The URL being checked. |
type | UptimeLinkType! | The check type — currently always HTTP. |
status | UptimeLinkStatusType! | ACTIVE or PASSIVE (paused). |
severity | Int! | Numeric severity for sorting and the SEVERITY filter — higher means more urgent. |
locations | [UptimeLocations!] | Monitoring locations the check runs from. |
checkInterval | Int! | Seconds between checks. |
timeout | Int! | Request timeout in seconds. |
http | UptimeLinkHttp | HTTP-specific check configuration. |
notification | UptimeLinkNotificationConfig! | Notification settings. |
tags | [String!] | Free-form tags attached to the monitor — see Tags & Folders. |
isFavorite | Boolean! | Whether the monitor is marked as a favorite. |
commonName | String! | The monitor's name as shown on its public status page, derived from the target if not explicitly set. |
domain / rootDomain | String | Derived from target. |
lastRecord | UptimeLinkLastRecord | Most recent check result — same fields as findUptimeLinkRecord's items, minus uptimeLinkId/verifiesRecordId. |
lastAccessibility | UptimeLinkLastAccessibility! | Last known up/down transition timestamps. |
nextCheckTime | String | ISO 8601 timestamp of the next scheduled check. |
createTime / updateTime | String! / String | ISO 8601 timestamps for creation / last update. |
UptimeLinkHttp
| Field | Type | Description |
|---|---|---|
method | String | HTTP method used for the check. |
followRedirect | Boolean | Whether HTTP redirects are followed. |
headers | [KeyValue!] | Custom request headers sent with the check. |
data | HttpBody | Request body sent with the check. |
auth | HttpAuth | HTTP authentication used for the check. |
statusCodes | [Int!] | Status codes counted as "up". When empty, any status code counts as up. |
keywords | [String!] | Keywords the response body must (or must not) contain. |
keywordInverseMatch | Boolean | When true, the check fails if a keyword IS found, instead of not found. |
UptimeLinkLastAccessibility
| Field | Type | Description |
|---|---|---|
up | String | ISO 8601 timestamp of the most recent transition to up. |
down | String | ISO 8601 timestamp of the most recent transition to down. |
UptimeLinkNotificationConfig
| Field | Type | Description |
|---|---|---|
all | Boolean! | Whether notifications are on. |
occurrenceThreshold | Int! | Number of consecutive down occurrences required before the create-notification is sent. Defaults to 1. |
Queries
findUptimeLink
Paginated, filterable list of your uptime monitors.
query {
findUptimeLink(query: "status = ACTIVE", limit: 25) {
pagination {
count
}
items {
id
name
target
status
lastRecord {
accessibilityStatus
spendTime
}
}
}
}Parameters
| Name | Type | Description |
|---|---|---|
query | String | Filter expression — see Discovering Filterable Fields. |
page | Int | Page number, defaults to 1. |
limit | Int | Page size, defaults to 10, capped at 100. |
sort | [Sort!] | Sort order, defaults to newest first. |
Response: an UptimeLinkList — pagination + items: [UptimeLink!]!. See Pagination & Sorting.
findUptimeLinkRecord
Individual check results, also paginated and filterable.
query {
findUptimeLinkRecord(query: "uptimeLinkId = \"...\"", limit: 25) {
items {
location
accessibilityStatus
spendTime
startTime
}
}
}Parameters
| Name | Type | Description |
|---|---|---|
query | String | Filter expression — see Discovering Filterable Fields. |
page | Int | Page number, defaults to 1. |
limit | Int | Page size, defaults to 10, capped at 100. |
sort | [Sort!] | Sort order, defaults to newest first. |
Response: an UptimeLinkRecordList — pagination + items: [UptimeLinkRecord!]!. See Pagination & Sorting.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for this check result. |
location | UptimeLocations! | Monitoring location the check ran from. |
spendTime | Float! | Seconds the check took to complete. |
page | Webpage | The fetched page's response data, if the check succeeded. |
uptimeLinkSnapshot | UptimeLinkBase | Snapshot of the monitor's configuration at the time of this check. |
error | UptimeErrorCode | Set if the check failed. |
accessibilityStatus | UptimeLinkAccessibilityStatus | Whether the target was reachable on this check — UP, DOWN, or UNVERIFIED when the check failed but a re-check from another location succeeded. |
startTime / endTime | String! | ISO 8601 timestamps for when the check started/finished. |
uptimeLinkId | ID! | ID of the uptime monitor this record belongs to. |
verifiesRecordId | ID | ID of the failing record this check re-verified from another location, if any. |
findUptimeLinkSummary
Aggregated uptime/response-time stats for a monitor over a time range, bucketed into chunks.
query {
findUptimeLinkSummary(
id: "..."
startTime: "2024-01-01T00:00:00Z"
endTime: "2024-01-31T23:59:59Z"
chunkSize: 24
) {
responseTime
uptimePercent
}
}Parameters
| Name | Type | Description |
|---|---|---|
id | ID! | The uptime monitor's ID. |
startTime | String! | ISO 8601 start of the time range. |
endTime | String! | ISO 8601 end of the time range. The range must be at least 1 hour and covers at most 90 days; a longer range is shortened to the 90 days ending at endTime. |
chunkSize | Int! | Number of buckets to split the time range into (clamped to 7–30). Defaults to 24. |
location | UptimeLocations | Limit the summary to one monitoring location. |
Response: an UptimeLinkSummary — see Types: UptimeLinkSummaryRecord for the shape of each item in records.
| Field | Type | Description |
|---|---|---|
responseTime | Float! | Median response time in seconds; 0 if there were no checks. |
uptime / uptimePercent | Float! | Time the monitor was up, in seconds and as a percentage (0-100) of monitored time. |
downtime / downtimePercent | Float! | Time the monitor was down, in seconds and as a percentage (0-100) of monitored time. |
unmonitored / unmonitoredPercent | Float! | Time with no check data, in seconds and as a percentage (0-100) of the whole period. |
records | [UptimeLinkSummaryRecord!]! | Stats per time bucket. |
incidents | [UptimeIncident!]! | Incidents of this monitor that overlap the time range. |
uptimeLocation
Lists the monitoring locations your workspace can use. No arguments.
Only locations enabled for your workspace are returned. Paid plans can see additional locations, and a new location can be opened on request, within 24 hours — contact Support.
Response: an UptimeLocationList — items: [UptimeLocationItem!]!:
| Field | Type | Description |
|---|---|---|
name | String! | Human-readable name of the monitoring location. |
location | UptimeLocations! | The location's identifier, used in locations args. |
Mutations
createUptimeLink
Creates a new uptime monitor.
mutation {
createUptimeLink(input: {
target: "https://acme.io"
checkInterval: 300
timeout: 10
notification: { all: true }
}) {
id
name
status
}
}Parameters
| Name | Type | Description |
|---|---|---|
input | UptimeLinkInput! | The monitor's configuration — see below. |
UptimeLinkInput fields
| Field | Type | Default | Description |
|---|---|---|---|
target | String! | — | The URL to check (http/https). |
locations | [UptimeLocations!] | null | Monitoring locations to check from. Omit to let WebPixie choose. |
type | UptimeLinkType! | HTTP | The check type — currently always HTTP. |
timeout | Int! | 10 | Request timeout in seconds, up to 15. |
http | UptimeLinkHttpInput | null | HTTP-specific check configuration. |
status | UptimeLinkStatusType! | ACTIVE | Whether the monitor starts active or paused. |
notification | UptimeLinkNotificationConfigInput | null | Notification settings. |
checkInterval | Int! | 3600 | Seconds between checks, up to 86400 (24 hours). The minimum depends on your plan and is available as uptimeLinkMinInterval in your plan's capabilities. |
name | String | null | Display name for the monitor. |
commonName | String | null | The monitor's name as shown on its public status page, derived from the target if omitted. |
tags | [String!] | null | Free-form tags to attach. |
UptimeLinkHttpInput fields
| Field | Type | Default | Description |
|---|---|---|---|
method | String | "GET" | HTTP method to use for the check. |
followRedirect | Boolean | true | Whether to follow HTTP redirects. |
headers | [KeyValueInput!] | null | Custom request headers to send with the check. |
data | HttpBodyInput | null | Request body to send with the check. |
auth | HttpAuthInput | null | HTTP authentication to use for the check. Stored passwords and tokens are never returned; see the link for update behavior. |
statusCodes | [Int!] | null | Status codes to count as "up". Omit or leave empty to accept any status code as up. |
keywords | [String!] | null | Keywords the response body must (or must not) contain. |
keywordInverseMatch | Boolean | null | When true, the check fails if a keyword IS found, instead of not found. |
Response: the created UptimeLink (see Fields above).
Limits: creation fails once your workspace has reached its plan's uptime monitor limit, or once you have created that many monitors in one day (UTC). Deleted monitors still count toward that day's total.
updateUptimeLink
Updates an existing uptime monitor. Fields you leave out are unchanged, with one exception: http replaces the whole HTTP configuration (method, headers, body, status codes, keywords and authentication), so send the complete http object, not only the setting you want to change.
mutation {
updateUptimeLink(id: "...", input: { checkInterval: 300 }) {
id
checkInterval
}
}Parameters
| Name | Type | Description |
|---|---|---|
id | ID! | The uptime monitor's ID. |
input | UptimeLinkUpdateInput! | Fields to update — the same fields as UptimeLinkInput above (including target), all optional here. Omitted fields are left unchanged (except http, see above). |
Response: the updated UptimeLink.
deleteUptimeLink / bulkDeleteUptimeLink
mutation {
deleteUptimeLink(id: "...") {
affectedRecords
}
}mutation {
bulkDeleteUptimeLink(ids: ["...", "..."]) {
affectedRecords
}
}Parameters
| Name | Type | Description |
|---|---|---|
id (single) | ID! | The uptime monitor's ID. |
ids (bulk) | [ID!]! | IDs of the uptime monitors to delete. At most 100 per request. |
Response: a DeleteResult — { affectedRecords: Int! }.
pauseUptimeLink / resumeUptimeLink
Toggle status between ACTIVE and PASSIVE for one or more monitors, without deleting them.
mutation {
pauseUptimeLink(ids: ["...", "..."]) {
affectedRecords
}
}Parameters
| Name | Type | Description |
|---|---|---|
ids | [ID!]! | IDs of the uptime monitors to pause/resume. At most 100 per request. |
Response: an UpdateResult — { affectedRecords: Int! }.