Endpoint
All GraphQL requests are sent as
POST
to a single endpoint:
POST https://staging.towerops.net/api/graphql
Send a JSON body with a
query
field
and optional variables:
curl -X POST https://staging.towerops.net/api/graphql \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "{ devices(limit: 100) { id name ipAddress status } }"}'
Queries are limited to a depth of 10 and a complexity of 500, where a list field's
complexity is multiplied by its
limit
(or a default page estimate when it takes none), a wide selection over a large
limit
can exceed the budget, so page big lists with a smaller limit.
Batched requests (a JSON array body, or a _json/operations
query parameter) may carry at most 10 operations. Introspection queries are
rejected in production: use this page for the schema rather than
__schema
.
For codegen clients the schema is published as files instead of
introspection:
/api/graphql/schema.graphql
serves the SDL, and
/api/graphql/schema.json
the introspection JSON, both public and rate-limited like openapi.json.
Queries
Read operations. An API token's organization is implied; a mobile session passes
organizationId
to choose one.
activity
[ActivityItem]
The organization's recent activity feed, newest first. Requires the `activity:read`
scope. `page`/`perPage` select one page of the merged feed (the same items
`activityPage` reports with metadata); `limit` selects the legacy bounded list, and
the two styles cannot be combined in one request.
| Argument |
Type |
Default |
Description |
| limit |
Int |
- |
Maximum number of activity items to return. Defaults to 50 and is capped at 500. Cannot be combined with `page` or `perPage`. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| page |
Int |
- |
1-based page number; defaults to 1. Cannot be combined with `limit`. |
| perPage |
Int |
- |
Page size. Defaults to 20 and is capped at 100. Cannot be combined with `limit`. |
| type |
String |
- |
Only items of this activity type; an unrecognised type is a field error. Allowed values: config_change, alert_fired, alert_resolved, device_event, sync, device_added, discovery_candidate. |
activityPage
ActivityPage
One page of the activity feed with its metadata, the newest 500 items pageable. Requires the `activity:read` scope.
| Argument |
Type |
Default |
Description |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| page |
Int |
- |
1-based page number; defaults to 1. A page past the end returns empty `entries`. |
| perPage |
Int |
- |
Page size. Defaults to 20 and is capped at 100. |
| type |
String |
- |
Only items of this activity type; an unrecognised type is a field error. Allowed values: config_change, alert_fired, alert_resolved, device_event, sync, device_added, discovery_candidate. |
agent
Agent
Fetches a single agent by ID. Requires the `agents:read` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the agent. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
agents
[Agent]
Lists the organization's monitoring agents. Requires the `agents:read` scope.
| Argument |
Type |
Default |
Description |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
alert
Alert
Fetches a single alert by ID. Covers alerts with no device, such as `agent_offline`, and does
not distinguish an alert in another organization from one that does not exist. Requires the
`alerts:read` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the alert. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
alerts
[Alert]
Lists alerts in the organization, optionally filtered by status, device or a
`triggered_at` range. Requires the `alerts:read` scope. `page`/`perPage` select one
page of the collection (the same rows `alertsPage` reports with metadata); `limit`
selects the legacy bounded list, and the two styles cannot be combined in one
request. `triggeredSince`/`triggeredUntil` replace the seven-day-or-unresolved
default with an inclusive `triggered_at` range, a lower bound without an upper
bound closes at the request's `as_of`, so rows and the page's totalCount share one
instant. A write committed after `as_of` can carry an earlier `triggered_at`, so
resume a few minutes before the prior `as_of`; the overlap is idempotent.
DEPRECATED: use `alertsPage`. This field silently truncates the collection at 100
rows when no `limit` is passed (issue 2618).
Deprecated: Use alertsPage, this field truncates the collection at 100 rows when no limit is passed
| Argument |
Type |
Default |
Description |
| deviceId |
ID |
- |
Only alerts raised for this device. |
| limit |
Int |
- |
Maximum number of alerts to return. Defaults to 100 and is capped at 500. Cannot be combined with `page` or `perPage`. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| page |
Int |
- |
1-based page number; defaults to 1. Cannot be combined with `limit`. |
| perPage |
Int |
- |
Page size. Defaults to 20 and is capped at 100. Cannot be combined with `limit`. |
| status |
String |
- |
Only alerts in this state (`active`, `acknowledged` or `resolved`). |
| triggeredSince |
String |
- |
Only alerts whose `triggered_at` is at or after this ISO 8601 instant are listed; replaces the seven-day-or-unresolved default. |
| triggeredUntil |
String |
- |
Only alerts whose `triggered_at` is at or before this ISO 8601 instant are listed. |
alertsPage
AlertPage
One page of the alert collection with its metadata. Requires the `alerts:read` scope.
| Argument |
Type |
Default |
Description |
| deviceId |
ID |
- |
Only alerts raised for this device. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| page |
Int |
- |
1-based page number; defaults to 1. A page past the end returns empty `entries`. |
| perPage |
Int |
- |
Page size. Defaults to 20 and is capped at 100. |
| status |
String |
- |
Only alerts in this state (`active`, `acknowledged` or `resolved`). |
| triggeredSince |
String |
- |
Only alerts whose `triggered_at` is at or after this ISO 8601 instant are listed; replaces the seven-day-or-unresolved default. |
| triggeredUntil |
String |
- |
Only alerts whose `triggered_at` is at or before this ISO 8601 instant are listed. |
check
Check
Fetches a single service check by ID. Soft-deleted checks are not returned. Requires the
`checks:read` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the check. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
checkResults
[CheckResultPoint]
Historical results for a monitoring check, such as ping or HTTP, newest first. Returns at least 1,000 rows, scaling to 120 points per hour of `timeRange` (43,200 rows maximum). Requires the `checks:read` scope.
| Argument |
Type |
Default |
Description |
| checkId |
ID! |
- |
ID of the check. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| timeRange |
String |
"1h" |
How far back to read, given in hours (`1h`, `24h`). Missing or invalid ranges use one hour. Clamped to 1-720 hours (30 days). |
checks
[Check]
Lists the organization's HTTP, TCP, DNS and ping service checks. Requires the `checks:read` scope.
| Argument |
Type |
Default |
Description |
| checkType |
String |
- |
Only checks of this type (`http`, `tcp`, `dns` or `ping`). |
| deviceId |
ID |
- |
Only checks attached to this device. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
device
Device
Fetches a single device by ID, with its site preloaded. Requires the `devices:read` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the device. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deviceInterfaces
[Interface]
SNMP interfaces discovered on a device. Empty when the device has no SNMP data. Requires the
`devices:read` scope.
| Argument |
Type |
Default |
Description |
| deviceId |
ID! |
- |
ID of the device. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deviceMetrics
[MetricPoint]
Time-series metrics for a device, assembled from the results of the monitoring checks attached
to it. Requires the `devices:read` scope. Series cover the requested window, downsampling
when needed to return at most 1,000 points per check and 5,000 across the device.
| Argument |
Type |
Default |
Description |
| deviceId |
ID! |
- |
ID of the device to read metrics for. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| sensorType |
String |
- |
Only results from checks of this type. |
| timeRange |
String |
"24h" |
How far back to read, given in hours (`24h`, `72h`); anything unparseable falls back to 24 hours. Clamped to 1-720 hours (30 days). |
deviceSensors
[Sensor]
SNMP sensors discovered on a device. Empty when the device has no SNMP data. Requires the
`devices:read` scope.
| Argument |
Type |
Default |
Description |
| deviceId |
ID! |
- |
ID of the device. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
devices
[Device]
Lists devices in the organization, optionally filtered by site, status or seven-day
monitoring coverage. Requires the `devices:read` scope. `page`/`perPage` select one page
of the collection (the same rows `devicesPage` reports with metadata); `limit` selects the
legacy bounded list, and the two styles cannot be combined in one request. `updatedSince`
narrows the collection to devices whose `updated_at` is at or after that instant, closed at
the request's `as_of`, a lower bound without an upper bound, so the window applies to the
rows and the page's totalCount alike. A write committed after `as_of` can carry an earlier
`updated_at`, so resume a few minutes before the prior `as_of`; the overlap is idempotent.
DEPRECATED: use `devicesPage`. This field silently truncates the collection at 100
rows when no `limit` is passed, so a search can miss devices that exist (issue 2618).
Deprecated: Use devicesPage, this field truncates the collection at 100 rows when no limit is passed
| Argument |
Type |
Default |
Description |
| coverageBelow |
Int |
- |
Only active monitored devices below this seven-day coverage percentage. |
| limit |
Int |
- |
Maximum number of devices to return. Capped at 500; omitted, the first 100 are returned. Cannot be combined with `page` or `perPage`. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| page |
Int |
- |
1-based page number; defaults to 1. Cannot be combined with `limit`. |
| perPage |
Int |
- |
Page size. Defaults to 20 and is capped at 100. Cannot be combined with `limit`. |
| search |
String |
- |
Matches device name, IP address, MAC (any spelling) or serial, the same filter the fleet page and REST `?search=` apply. |
| siteId |
ID |
- |
Only devices at this site. |
| status |
String |
- |
Only devices in this status (`up`, `down` or `unknown`). |
| updatedSince |
String |
- |
Only devices whose `updated_at` is at or after this ISO 8601 instant are listed. The window closes at the request's `as_of`. |
devicesPage
DevicePage
One page of the device collection with its metadata. Requires the `devices:read` scope.
| Argument |
Type |
Default |
Description |
| coverageBelow |
Int |
- |
Only active monitored devices below this seven-day coverage percentage. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| page |
Int |
- |
1-based page number; defaults to 1. A page past the end returns empty `entries`. |
| perPage |
Int |
- |
Page size. Defaults to 20 and is capped at 100. |
| search |
String |
- |
Matches device name, IP address, MAC (any spelling) or serial, the same filter the fleet page and REST `?search=` apply. |
| siteId |
ID |
- |
Only devices at this site. |
| status |
String |
- |
Only devices in this status (`up`, `down` or `unknown`). |
| updatedSince |
String |
- |
Only devices whose `updated_at` is at or after this ISO 8601 instant are listed; `meta.window.until` echoes the request's `as_of`. |
discoveredCandidates
[DiscoveredCandidate]
Lists discovered device candidates awaiting review, one page at a time. Requires the `discovery:read` scope.
| Argument |
Type |
Default |
Description |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| page |
Int |
- |
1-based page number. |
| perPage |
Int |
- |
Page size. Defaults to 20 and is capped at 100. |
escalationPolicies
[EscalationPolicy]
Lists the organization's escalation policies, each with its computed health. Requires the
`config:read` scope.
| Argument |
Type |
Default |
Description |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
escalationPolicy
EscalationPolicy
Fetches a single escalation policy with its rules, their targets and the policy's computed
health. Requires the `config:read` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the escalation policy. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
integrations
[Integration]
Lists the organization's third-party integrations, including each one's sync interval and last
sync result. Requires the `integrations:read` scope.
| Argument |
Type |
Default |
Description |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
interfaceTraffic
[InterfaceTrafficPoint]
Traffic rates in bits per second for a network interface, computed from the deltas between SNMP
counter samples, oldest first. Returns up to 120 points per hour of `timeRange` (43,200 rows
maximum), matching the web charts. Requires the `devices:read` scope.
| Argument |
Type |
Default |
Description |
| interfaceId |
ID! |
- |
ID of the interface. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| timeRange |
String |
"24h" |
How far back to read, given in hours (`1h`, `24h`, `72h`). Clamped to 1-720 hours (30 days). |
maintenanceWindow
MaintenanceWindow
Fetches a single maintenance window by ID. Requires the `config:read` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the maintenance window. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
maintenanceWindows
[MaintenanceWindow]
Lists the organization's maintenance windows. Requires the `config:read` scope.
| Argument |
Type |
Default |
Description |
| filter |
String |
- |
Restricts the list to `active`, `upcoming` or `past` windows; any other value returns them all. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
members
[Member]
Lists the organization's members and their roles. Requires the `members:read` scope.
| Argument |
Type |
Default |
Description |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
myOnCall
MyOnCallStatus
The caller's own on-call standing, what the mobile app puts on screen.
| Argument |
Type |
Default |
Description |
| horizonDays |
Int |
14 |
How many days forward and back to search for the caller's shifts. Defaults to 14 and is capped at 90. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
myOrganizations
[Organization]
Every organization the authenticated user belongs to, or, for an API or partner-app token,
only the organization that token is scoped to. Takes no arguments and needs no organization
scope, so it is the query a mobile client uses to populate an organization picker before it
knows which organization to work in. Token callers need the `organization:read` scope since
the result carries organization settings. `sitesCount`, `deviceCount` and `activeAlertsCount`
are computed per row and are only populated by this query.
No arguments.
onCall
OnCallResult
Who is on call for this schedule right now, or null when nobody is. Requires the `config:read` scope.
| Argument |
Type |
Default |
Description |
| scheduleId |
ID! |
- |
ID of the schedule to evaluate. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
organization
Organization
The caller's organization, including its SNMP and MikroTik defaults. Requires the `organization:read` scope.
| Argument |
Type |
Default |
Description |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
schedule
Schedule
Fetches a single on-call schedule with its layers, layer members and overrides preloaded.
Requires the `config:read` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the schedule. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
schedules
[Schedule]
Lists the organization's on-call schedules. Requires the `config:read` scope.
| Argument |
Type |
Default |
Description |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
sensorReadings
[SensorReading]
Historical readings for a single SNMP sensor, newest first. Returns up to 120 points per hour of `timeRange` (43,200 rows maximum), matching the web charts. Requires the `devices:read` scope.
| Argument |
Type |
Default |
Description |
| sensorId |
ID! |
- |
ID of the sensor. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| timeRange |
String |
"24h" |
How far back to read, given in hours (`1h`, `24h`, `72h`). Clamped to 1-720 hours (30 days). |
site
Site
Fetches a single site by ID. Requires the `sites:read` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the site. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
sites
[Site]
Lists every site in the organization. Requires the `sites:read` scope.
| Argument |
Type |
Default |
Description |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
Mutations
Write operations. Each requires the resource's write scope. As with queries, an
API token's organization is implied; a mobile session passes
organizationId
to choose one.
EscalationPolicyInput supports alertTypes (persisted identifiers such as agent_offline or
check_http), checkTypes (the check_ suffix, such as http), and nonnegative routingOrder.
Each non-empty scope dimension must match; values within a list are alternatives.
Omitted fields retain their values on update, while [] clears a list constraint.
Explicit device policy assignment wins even if its scope refuses an alert. Otherwise,
type-filtered non-default policies are tried by ascending routingOrder, creation time and ID;
the first full-scope match wins, with the scoped organization default as fallback.
Unfiltered non-default policies remain assignment-only. Missing device/site context bypasses
only site and role constraints, not severity or type filters.
acknowledgeAlert
Alert
Acknowledges an alert and records the acknowledging user. Requires the `alerts:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the alert to acknowledge. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
addDiscoveredCandidate
Device
Adds a discovered candidate to inventory as a managed device, prefilled with the
identity discovery inferred. Requires the `discovery:write` scope.
| Argument |
Type |
Default |
Description |
| identifier |
CandidateIdentifierInput! |
- |
The candidate's identifier, as returned by `discoveredCandidates`. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
addLayerMember
LayerMember
Adds a user to a rotation layer. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| layerId |
ID! |
- |
ID of the layer to add the user to. |
| position |
Int! |
- |
Where the user sits in the rotation order, counted from zero. |
| userId |
ID! |
- |
ID of the user joining the rotation. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
cancelInvitation
DeleteResult
Cancels a pending invitation. Requires the `members:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the invitation to cancel. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createAgent
AgentWithToken
Creates an agent for the organization and returns its raw token. The token is only ever returned
here, so a client that loses it must create another agent. Requires the `agents:write` scope.
| Argument |
Type |
Default |
Description |
| name |
String! |
- |
Display name for the new agent. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createCheck
Check
Creates a service check and schedules its first run when the check is enabled. Only `http`,
`tcp`, `dns` and `ping` checks can be created here; any other type is rejected. Requires the
`checks:write` scope.
| Argument |
Type |
Default |
Description |
| input |
CheckInput! |
- |
Attributes for the new check, including its `checkType`, interval and type-specific `config`. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createDevice
Device
Creates a device in the caller's organization and returns it with its site preloaded. Requires
the `devices:write` scope.
| Argument |
Type |
Default |
Description |
| input |
DeviceInput! |
- |
Attributes for the new device; the organization is taken from the caller. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createEscalationPolicy
EscalationPolicy
Creates an escalation policy in the caller's organization. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| input |
EscalationPolicyInput! |
- |
Attributes for the new policy, including alert/check type filters and automatic routing order. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createEscalationRule
EscalationRule
Adds a level to an escalation policy. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| escalationPolicyId |
ID! |
- |
ID of the policy the rule belongs to. |
| input |
EscalationRuleInput! |
- |
Attributes for the new rule, such as its position in the ladder and how long it waits before
the next level. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createEscalationTarget
EscalationTarget
Adds someone for an escalation rule to page: either a user directly or an on-call schedule.
Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| escalationRuleId |
ID! |
- |
ID of the rule the target belongs to. |
| input |
EscalationTargetInput! |
- |
Attributes for the new target: its `targetType` plus the matching user or schedule. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createIntegration
Integration
Creates a third-party integration for the organization. Requires the `integrations:write` scope.
Quo with `enabled: true` provisions its listener first. Failure returns an error and retains
a disabled integration, which can be retrieved and updated to retry.
| Argument |
Type |
Default |
Description |
| input |
IntegrationInput! |
- |
Attributes for the new integration, including its provider and credentials. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createLayer
Layer
Adds a rotation layer to a schedule. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| input |
LayerInput! |
- |
Attributes for the new layer, such as its rotation type, interval, handoff time and start date. |
| scheduleId |
ID! |
- |
ID of the schedule the layer belongs to. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createMaintenanceWindow
MaintenanceWindow
Creates a maintenance window, recorded against the calling user, that can suppress alerts for a
site or device while it runs. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| input |
MaintenanceWindowInput! |
- |
Attributes for the new window: its span, what it covers and whether it suppresses alerts. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createOverride
Override
Creates an override that puts one user on call for a schedule over a fixed window, ahead of
whatever the rotation would otherwise say. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| input |
OverrideInput! |
- |
Attributes for the override: the user and the start and end of the window. |
| scheduleId |
ID! |
- |
ID of the schedule the override applies to. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createSchedule
Schedule
Creates an on-call schedule in the caller's organization. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| input |
ScheduleInput! |
- |
Attributes for the new schedule, such as its name and timezone. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
createSite
Site
Creates a site in the caller's organization. Requires the `sites:write` scope.
| Argument |
Type |
Default |
Description |
| input |
SiteInput! |
- |
Attributes for the new site; the organization is taken from the caller. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteAgent
DeleteResult
Deletes an agent and reports whether the delete succeeded. Requires the `agents:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the agent to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteCheck
DeleteResult
Deletes a service check and reports whether the delete succeeded. Requires the `checks:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the check to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteDevice
DeleteResult
Deletes a device and reports whether the delete succeeded. Requires the `devices:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the device to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteEscalationPolicy
DeleteResult
Deletes an escalation policy and reports whether the delete succeeded. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the policy to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteEscalationRule
DeleteResult
Deletes an escalation rule and reports whether the delete succeeded. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the rule to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteEscalationTarget
DeleteResult
Removes a target from an escalation rule and reports whether the delete succeeded. Requires the
`config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the target to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteIntegration
DeleteResult
Deletes an integration and reports whether the delete succeeded. Requires the `integrations:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the integration to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteLayer
DeleteResult
Deletes a rotation layer and reports whether the delete succeeded. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the layer to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteMaintenanceWindow
DeleteResult
Deletes a maintenance window and reports whether the delete succeeded. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the window to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteOverride
DeleteResult
Deletes a schedule override and reports whether the delete succeeded. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the override to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteSchedule
DeleteResult
Deletes an on-call schedule and reports whether the delete succeeded. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the schedule to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
deleteSite
DeleteResult
Deletes a site, every site under it, and their devices, and reports whether the delete succeeded. Requires the `sites:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the site to delete. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
escalateAlert
Alert
Pages the next on-call level immediately instead of waiting for the current
level's timeout. Errors when the alert has no active escalation incident or
the policy has no further level.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the alert to escalate. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
ignoreDiscoveredCandidate
DeleteResult
Dismisses a discovered candidate so it stops resurfacing in review lists.
Requires the `discovery:write` scope.
| Argument |
Type |
Default |
Description |
| identifier |
CandidateIdentifierInput! |
- |
The candidate's identifier, as returned by `discoveredCandidates`. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
removeLayerMember
DeleteResult
Removes a user from a rotation layer and reports whether the removal succeeded. Requires the
`config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the layer membership to remove, not the user ID. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
removeMember
DeleteResult
Removes a member from the organization. Owners cannot be removed, and only owners and admins may
manage members. Requires the `members:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
User ID of the member to remove. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
resolveAlert
Alert
Marks an alert resolved. Requires the `alerts:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the alert to resolve. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
sendInvitation
Invitation
Invites an email address to join the organization. Only owners and admins may invite, and nobody
may grant a role above their own. Requires the `members:write` scope.
| Argument |
Type |
Default |
Description |
| email |
String! |
- |
Email address to invite. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
| role |
String |
"technician" |
Role to grant the invitee; defaults to `technician`. |
snoozeAlert
Alert
Silences an alert for `duration_minutes` without closing it. It leaves every
active list and count, stops paging, and comes back by itself when the snooze
lapses.
| Argument |
Type |
Default |
Description |
| durationMinutes |
Int! |
- |
How long to silence the alert, in minutes. |
| id |
ID! |
- |
ID of the alert to snooze. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
testIntegration
TestResult
Tests an integration's credentials and connectivity. The message is deliberately coarse, because
upstream failure detail can carry credentials. Requires the `integrations:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the integration to test. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
unsnoozeAlert
Alert
Ends a snooze early, returning the alert to normal paging. Requires the `alerts:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the snoozed alert. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateCheck
Check
Updates editable service-check settings; the check type is immutable. Requires the `checks:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the check to update. |
| input |
CheckInput! |
- |
Attributes to change; fields left out keep their stored values. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateDevice
Device
Updates a device in the caller's organization. Requires the `devices:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the device to update. |
| input |
DeviceInput! |
- |
Attributes to change; fields left out keep their stored values. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateEscalationPolicy
EscalationPolicy
Updates an escalation policy. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the policy to update. |
| input |
EscalationPolicyInput! |
- |
Attributes to change; omitted fields keep stored values, empty scope lists clear their constraints, and routingOrder 0 restores the default order. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateEscalationRule
EscalationRule
Updates an escalation rule. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the rule to update. |
| input |
EscalationRuleInput! |
- |
Attributes to change; fields left out keep their stored values. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateIntegration
Integration
Updates an integration. Credentials left out of the input keep their stored values. Requires the
`integrations:write` scope.
Enabling Quo provisions its listener first; failure returns an error and leaves capture disabled.
Replacing its API key first removes the previous workspace's subscription. Failed cleanup keeps
the old credentials for retry. Subscription ids and signing keys are system-owned.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the integration to update. |
| input |
IntegrationInput! |
- |
Attributes to change; fields left out keep their stored values. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateLayer
Layer
Updates a rotation layer. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the layer to update. |
| input |
LayerInput! |
- |
Attributes to change; fields left out keep their stored values. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateMaintenanceWindow
MaintenanceWindow
Updates a maintenance window. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the window to update. |
| input |
MaintenanceWindowInput! |
- |
Attributes to change; fields left out keep their stored values. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateMemberRole
Member
Changes a member's role. The owner's role cannot be changed, only owners may grant the owner
role, and nobody may assign a role above their own. Requires the `members:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
User ID of the member whose role changes. |
| role |
String! |
- |
Role to assign. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateMemberSites
Member
Replaces a member's site restriction (issue 1775): the complete list of
sites the member may see, `[]` lifts the restriction back to the whole
organization. The owner's access cannot be restricted, and a caller whose
own membership is site-scoped can only grant sites inside their own list.
Requires the `members:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
User ID of the member whose site restriction changes. |
| siteIds |
[ID!]! |
- |
Complete list of site IDs the member may see; `[]` is unrestricted. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateOrganization
Organization
Updates the caller's organization, including its SNMP and MikroTik defaults. Requires the
`organization:write` scope.
| Argument |
Type |
Default |
Description |
| input |
OrganizationInput! |
- |
Organization settings to change; fields left out keep their stored values. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateSchedule
Schedule
Updates an on-call schedule. Requires the `config:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the schedule to update. |
| input |
ScheduleInput! |
- |
Attributes to change; fields left out keep their stored values. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
updateSite
Site
Updates a site in the caller's organization. Requires the `sites:write` scope.
| Argument |
Type |
Default |
Description |
| id |
ID! |
- |
ID of the site to update. |
| input |
SiteInput! |
- |
Attributes to change; fields left out keep their stored values. |
| organizationId |
ID |
- |
Ignored for API-token callers, whose organization comes from the token; mobile sessions must pass it. |
Types
The object, input and scalar types published for integration, the schema's internal types are not
listed here. A trailing
!
means non-null; brackets mean a list.
ActivityPage
object
| Field |
Type |
Description |
| entries |
[ActivityItem]! |
The page's activity items, in the collection order (timestamp, then type name, then row id).
|
| meta |
PageMeta! |
Page metadata. The feed has no time-window parameter, so `meta.window` is always null.
|
AlertPage
object
| Field |
Type |
Description |
| entries |
[Alert]! |
The page's alerts, in the collection order (`triggered_at`, then id, both descending).
|
| meta |
PageMeta! |
Page metadata and the `triggeredAt` window this page and its `totalCount` were read from.
|
DeviceMonitoringHistory
object
| Field |
Type |
Description |
| lastDay |
DeviceMonitoringWindow! |
Coverage and the longest recovered gap during the last 24 hours.
|
| lastWeek |
DeviceMonitoringWindow! |
Coverage and the longest recovered gap during the last seven days.
|
| recentPollFailures |
[DevicePollFailure!]! |
|
| recentPollGaps |
[DeviceMonitoringGap!]! |
|
DevicePage
object
| Field |
Type |
Description |
| entries |
[Device]! |
The page's devices, in the collection order (display_order, name, id).
|
| meta |
PageMeta! |
Page metadata and the `updatedAt` window this page and its `totalCount` were read from.
|
MaintenanceWindow
object
| Field |
Type |
Description |
| announceOnStatusPage |
Boolean |
|
| deviceId |
ID |
|
| endsAt |
String |
|
| excludeFromUptime |
Boolean |
|
| id |
ID |
|
| insertedAt |
String |
|
| name |
String |
|
| organizationId |
ID |
|
| publicTitle |
String |
|
| reason |
String |
|
| recurrenceRule |
String |
|
| recurring |
Boolean |
|
| siteId |
ID |
|
| startsAt |
String |
|
| suppressAlerts |
Boolean |
|
| updatedAt |
String |
|