Uptime

Query and manage uptime monitors through the WebPixie GraphQL API.

Fields

FieldTypeDescription
idID!Unique identifier for the uptime monitor.
nameString!The monitor's display name.
targetString!The URL being checked.
typeUptimeLinkType!The check type — currently always HTTP.
statusUptimeLinkStatusType!ACTIVE or PASSIVE (paused).
severityInt!Numeric severity/priority score, mainly useful for sorting and the SEVERITY filter — higher generally means more urgent. Derived internally from status and recent check results.
locations[UptimeLocations!]Monitoring regions the check runs from.
checkIntervalInt!Seconds between checks.
timeoutInt!Request timeout in seconds.
httpUptimeLinkHttpHTTP-specific check configuration.
notificationUptimeLinkNotificationConfig!Notification settings.
tags[String!]Free-form tags attached to the monitor.
isFavoriteBoolean!Whether the monitor is marked as a favorite.
commonNameString!The monitor's name as shown on its public status page, derived from the target if not explicitly set.
domain / rootDomainStringDerived from target.
lastRecordUptimeLinkLastRecordMost recent check result — same fields as findUptimeLinkRecord's items, minus uptimeLinkId/verifiesRecordId.
lastAccessibilityUptimeLinkLastAccessibility!Last known up/down transition timestamps.
nextCheckTimeStringISO 8601 timestamp of the next scheduled check.
createTime / updateTimeString! / StringISO 8601 timestamps for creation / last update.

UptimeLinkHttp

FieldTypeDescription
methodStringHTTP method used for the check.
followRedirectBooleanWhether HTTP redirects are followed.
headers[KeyValue!]Custom request headers sent with the check.
dataHttpBodyRequest body sent with the check.
authHttpAuthHTTP authentication used for the check.
statusCodes[Int!]Status codes counted as "up". Any other status code counts as down.
keywords[String!]Keywords the response body must (or must not) contain.
keywordInverseMatchBooleanWhen true, the check fails if a keyword IS found, instead of not found.

UptimeLinkLastAccessibility

FieldTypeDescription
upStringISO 8601 timestamp of the most recent transition to up.
downStringISO 8601 timestamp of the most recent transition to down.

UptimeLinkNotificationConfig

FieldTypeDescription
allBoolean!Whether all notification channels are enabled.
occurrenceThresholdInt!Number of consecutive down occurrences required before the create-notification is sent. Defaults to 1, must be 1 or greater.

Queries

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

NameTypeDescription
queryStringFilter expression — see UptimeLinkFilterableFields.
pageIntPage number, defaults to 1.
limitIntPage size, defaults to 10, capped at 100.
sort[Sort!]Sort order, defaults to newest first.

Response: an UptimeLinkListpagination + 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

NameTypeDescription
queryStringFilter expression — see UptimeLinkRecordFilterableFields.
pageIntPage number, defaults to 1.
limitIntPage size, defaults to 10, capped at 100.
sort[Sort!]Sort order, defaults to newest first.

Response: an UptimeLinkRecordListpagination + items: [UptimeLinkRecord!]!. See Pagination & Sorting.

FieldTypeDescription
idID!Unique identifier for this check result.
locationUptimeLocations!Monitoring region the check ran from.
spendTimeFloat!Seconds the check took to complete.
pageWebpageThe fetched page's response data, if the check succeeded.
uptimeLinkSnapshotUptimeLinkBaseSnapshot of the monitor's configuration at the time of this check.
errorUptimeErrorCodeSet if the check failed.
accessibilityStatusUptimeLinkAccessibilityStatusWhether the target was reachable on this check, or UNVERIFIED if a cross-region re-check contradicted the primary result.
startTime / endTimeString!ISO 8601 timestamps for when the check started/finished.
uptimeLinkIdID!ID of the uptime monitor this record belongs to.
verifiesRecordIdIDID of the failing record this check re-verified from another region, 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

NameTypeDescription
idID!The uptime monitor's ID.
startTimeString!ISO 8601 start of the time range.
endTimeString!ISO 8601 end of the time range.
chunkSizeInt!Number of buckets to split the time range into (clamped to 7–30). Defaults to 24.
locationUptimeLocationsLimit the summary to one monitoring region.

Response: an UptimeLinkSummary — see Types: UptimeLinkSummaryRecord for the shape of each item in records.

FieldType
responseTimeFloat!
uptime / uptimePercentFloat!
downtime / downtimePercentFloat!
unmonitored / unmonitoredPercentFloat!
records[UptimeLinkSummaryRecord!]!
incidents[UptimeIncident!]!

uptimeLocation

Lists available monitoring regions. No arguments.

Response: an UptimeLocationListitems: [UptimeLocationItem!]!:

FieldTypeDescription
nameString!Human-readable name of the monitoring region.
locationUptimeLocations!The region's identifier, used in locations args.

uptimeLinkTag

Lists the tags currently in use across your uptime monitors. No arguments. Response: [String!]!.

Mutations

Creates a new uptime monitor.

mutation {
  createUptimeLink(input: {
    target: "https://acme.io"
    checkInterval: 300
    timeout: 10
    notification: { all: true }
  }) {
    id
    name
    status
  }
}

Parameters

NameTypeDescription
inputUptimeLinkInput!The monitor's configuration — see below.

UptimeLinkInput fields

FieldTypeDefaultDescription
targetString!The URL to check (http/https).
locations[UptimeLocations!]nullMonitoring regions to check from. Omit to use the default region.
typeUptimeLinkType!HTTPThe check type — currently always HTTP.
timeoutInt!10Request timeout in seconds.
httpUptimeLinkHttpInputnullHTTP-specific check configuration.
statusUptimeLinkStatusType!ACTIVEWhether the monitor starts active or paused.
notificationUptimeLinkNotificationConfigInputnullNotification settings.
checkIntervalInt!3600Seconds between checks.
nameStringnullDisplay name for the monitor.
commonNameStringnullThe monitor's name as shown on its public status page, derived from the target if omitted.
tags[String!]nullFree-form tags to attach.

UptimeLinkHttpInput fields

FieldTypeDefaultDescription
methodString"GET"HTTP method to use for the check.
followRedirectBooleantrueWhether to follow HTTP redirects.
headers[KeyValueInput!]nullCustom request headers to send with the check.
dataHttpBodyInputnullRequest body to send with the check.
authHttpAuthInputnullHTTP authentication to use for the check.
statusCodes[Int!]nullStatus codes to count as "up". Omit to accept any status code as up.
keywords[String!]nullKeywords the response body must (or must not) contain.
keywordInverseMatchBooleannullWhen true, the check fails if a keyword IS found, instead of not found.

Response: the created UptimeLink (see Fields above).

Updates an existing uptime monitor. Only the fields you pass are changed.

mutation {
  updateUptimeLink(id: "...", input: { checkInterval: 60 }) {
    id
    checkInterval
  }
}

Parameters

NameTypeDescription
idID!The uptime monitor's ID.
inputUptimeLinkUpdateInput!Fields to update — the same 11 fields as UptimeLinkInput above (including target), all optional here. Omitted fields are left unchanged.

Response: the updated UptimeLink.

mutation {
  deleteUptimeLink(id: "...") {
    affectedRecords
  }
}
mutation {
  bulkDeleteUptimeLink(ids: ["...", "..."]) {
    affectedRecords
  }
}

Parameters

NameTypeDescription
id (single)ID!The uptime monitor's ID.
ids (bulk)[ID!]!IDs of the uptime monitors to delete.

Response: a DeleteResult{ affectedRecords: Int! }.

Toggle status between ACTIVE and PASSIVE for one or more monitors, without deleting them.

mutation {
  pauseUptimeLink(ids: ["...", "..."]) {
    affectedRecords
  }
}

Parameters

NameTypeDescription
ids[ID!]!IDs of the uptime monitors to pause/resume.

Response: an UpdateResult{ affectedRecords: Int! }.

Filterable Fields

UptimeLinkFilterableFields (for findUptimeLink) and UptimeLinkRecordFilterableFields (for findUptimeLinkRecord) — see Discovering Filterable Fields.

enum UptimeLinkFilterableFields {
  ID
  STATUS
  IS_FAVORITE
  TYPE
  LOCATIONS
  TARGET
  NAME
  DOMAIN
  ROOT_DOMAIN
  CHECK_INTERVAL
  TIMEOUT
  HTTP_STATUS_CODES
  HTTP_KEYWORDS
  HTTP_KEYWORD_INVERSE_MATCH
  TAGS
  CREATE_TIME
  UPDATE_TIME
  LAST_ACCESSIBILITY_STATUS
  LAST_UP_TIME
  LAST_DOWN_TIME
  LAST_CHECK_TIME
  SEVERITY
}

enum UptimeLinkRecordFilterableFields {
  ID
  UPTIME_LINK_ID
  LOCATION
  ACCESSIBILITY_STATUS
  ERROR
  SPEND_TIME
  START_TIME
  END_TIME
  PAGE_TITLE
  PAGE_STATUS_CODE
  PAGE_RESPONSE_TIME
  PAGE_CONTENT_SIZE
  CREATE_TIME
  NEXT_CHECK_TIME
}

On this page