API Reference

Every endpoint of the ShxrkSystems REST API, grouped by resource.

Base URLs

API Base URL
Uptime API https://api.shxrk.systems/api/v1/uptime
Uptime API v2 (beta features) https://api.shxrk.systems/api/v2/uptime
Core API (account, tokens, billing) https://api.shxrk.systems/api/v1

All endpoints accept and return JSON. IDs are UUIDs. Authenticate with Authorization: Bearer sk_shx_... — see Authentication. Write access follows the authenticated user's permissions; status-page member roles (admin, editor, viewer) apply on member-shared pages.

Errors return { "error": "<message>" } with a matching HTTP status — 400 invalid input, 401 missing/invalid credentials, 403 insufficient permission or plan limit, 404 not found, 429 rate limited.

Interactive: browse schemas and send test requests in the API Explorer, or import /openapi.json into Postman/Insomnia.

Account & API tokens

Method Path Description
GET /api/v1/user/api-tokens List your tokens (never exposes secrets)
POST /api/v1/user/api-tokens Create a token — plaintext returned once
DELETE /api/v1/user/api-tokens/:id Revoke a token immediately
GET /api/v1/billing/status Current plan, seats and usage
GET /api/v1/notifications In-app notifications
GET /api/v1/overview Uptime dashboard overview (also under /uptime/overview)
GET /uptime/tier-info Your plan's tier and limits

Monitors

Method Path Description
GET /monitors List monitors (?status_page_id= to filter)
POST /monitors Create a monitor
GET /monitors/:id Monitor detail
PUT /monitors/:id Update a monitor
DELETE /monitors/:id Delete a monitor
GET /monitors/:id/latency-baseline Learned latency baseline
PUT /monitors/order Reorder monitors (monitors: [{id, order}], single transaction)

Create/update fields (all optional except name, type, target on create):

Field Type Notes
status_page_id uuid Owning status page
group_id uuid Monitor group
type enum http ping tcp udp dns smtp pop3 imap telnet postgres mysql redis ssl domain agent heartbeat api game_server composite — plus agent-executed infra types: docker podman docker_swarm kubernetes proxmox vmware ceph rabbitmq kafka mqtt snmp network_device
target string URL, host, host:port or query target
interval int Seconds between checks (plan-limited)
http_method enum GET POST PUT DELETE PATCH HEAD OPTIONS
http_headers / http_body string Custom request headers / body
expected_status int Expected HTTP status code
expected_body_match_type enum contains exact regex not_contains
expected_body / expected_keywords string Body / keyword assertions
latency_threshold_ms int Over this the monitor reports degraded
follow_redirects / verify_ssl bool HTTP behavior flags
failure_threshold int 1–20 consecutive failures before down
recovery_threshold int 1–20 consecutive successes before up
degraded_timeout_seconds int Stale-after timeout for push monitors
expected_interval int Heartbeat interval in seconds (10–86400)
auto_create_incident / auto_publish_incident bool Incident automation
incident_severity enum minor major critical
game_type enum fivem minecraft rust cs2 ark valheim custom
query_method enum query rest_api push tcp_connect
query_port int Game query port
regions string[] Checking regions (plan-limited)

Status pages

Method Path Description
GET /status-pages List your status pages
POST /status-pages Create (name, slug, description, custom_domain, show_branding, …)
GET /status-pages/check-slug Slug availability (?slug=)
GET /status-pages/member-of Pages you are a member of
GET / PUT / DELETE /status-pages/:id Read / update / delete
PUT /status-pages/:id/ssl Custom-domain SSL config
PUT /status-pages/:id/legal Imprint / privacy links
GET /status-pages/:id/monitors Monitors on the page
GET /status-pages/:id/groups Groups on the page
GET /status-pages/:id/incidents Incidents on the page
GET /status-pages/:id/incidents/stats Incident statistics
GET /status-pages/:id/maintenance Maintenance windows
GET /status-pages/:id/seats Seat usage

Members

Method Path Description
GET /status-pages/:id/members List members
POST /status-pages/:id/members Invite by email (email, role: admin/editor/viewer/custom, capabilities for custom)
POST /status-pages/members/accept Accept an invitation
PUT /status-pages/:id/members/:member_id Change role
DELETE /status-pages/:id/members/:member_id Remove member
DELETE /status-pages/:id/members/invitations/:invitation_id Cancel a pending invite

SLA

Method Path Description
GET /status-pages/:id/sla SLA summary
GET / PUT /status-pages/:id/sla-targets SLA targets
GET /status-pages/:id/sla/export Export SLA report
GET / PUT /status-pages/:id/sla-policy Assigned SLA policy
GET / POST /sla-policies List / create policies
GET / PUT / DELETE /sla-policies/:id Manage a policy

On-call

Method Path Description
GET / PUT / DELETE /status-pages/:id/on-call Active on-call policy
GET / POST /status-pages/:id/on-call/policies Policies
PUT / DELETE /status-pages/:id/on-call/policies/:policyId Manage a policy
GET / POST /status-pages/:id/on-call/schedules Rotation schedules
GET / PUT / DELETE /status-pages/:id/on-call/schedules/:scheduleId Manage a schedule

Event rules (v1 + v2)

Method Path Description
GET / POST /status-pages/:id/events/rules List / create rules
PUT / DELETE /status-pages/:id/events/rules/:rule_id Manage a rule
GET /status-pages/:id/events/log Custom event log
POST /status-pages/:id/events/emit Emit a custom event

Rule fields: event_name, display_name, classification (public/team_only), conditions (JSON), alert_channels, cooldown_seconds, is_enabled, optional monitor_id, agent_id, incident_template_id.

Incident templates (v1 + v2)

Method Path Description
GET / POST /status-pages/:id/incident-templates List / create templates
PUT / DELETE /status-pages/:id/incident-templates/:template_id Manage a template

Alert setup (status-page webhooks)

Method Path Description
GET / POST /status-pages/:id/alert-setup List / add alert webhook
PUT / DELETE /status-pages/:status_page_id/alert-setup/:id Update / remove
POST /status-pages/:status_page_id/alert-setup/:id/test Test delivery

Discord

Method Path Description
POST /status-pages/:id/discord/token Discord bot link token
GET /status-pages/:id/discord/status-channels Linked status channels
DELETE /discord/status-channels/:id Unlink a status channel

Groups

Method Path Description
GET /groups List (?status_page_id= to filter)
POST /groups Create (name, status_page_id)
PUT /groups/order Reorder (status_page_id, groups: [{id, order}])
PUT / DELETE /groups/:id Rename / delete

Agents

Method Path Description
GET /agents List agents
POST /agents Create (name, hostname, status_page_id)
GET /agents/token Generate an install token
GET /agents/:agent_id Agent detail
GET /agents/:agent_id/detail Extended detail
GET /agents/:agent_id/metrics Recent metrics
PUT / DELETE /agents/:agent_id Update / delete

Public agent endpoints (/agents/version, /agents/install, /agents/handshake, /agents/enroll, /agents/metrics, /agents/events, /agents/discoveries, /agents/monitors, /agents/commands, /monitors/:id/status) are used by the agent binary itself with its own credentials (X-Agent-Token).

Incidents

Method Path Description
GET /incidents List
POST /incidents Create (status_page_id, title, severity, monitor_ids, is_public, …)
GET / PUT / DELETE /incidents/:id Read / update / delete
POST /incidents/:id/updates Add timeline update
POST /incidents/:id/publish Make public on the status page
POST /incidents/:id/unpublish Hide from the status page

Severity: minor major critical. Status: investigating identified monitoring resolved.

Maintenance

Method Path Description
GET /maintenance List windows
POST /maintenance Create (status_page_id, title, start_time, end_time, targets, recurrence fields)
GET / PUT / DELETE /maintenance/:id Manage a window
GET / POST /maintenance/:id/updates Timeline updates
PUT / DELETE /maintenance/:id/updates/:update_id Manage an update

Recurrence: recurrence_type (none/daily/weekly/monthly), recurrence_interval, recurrence_end_date, recurrence_day_of_week, recurrence_day_of_month.

Webhooks (account level)

Method Path Description
GET /webhooks List webhooks
POST /webhooks Create (name, url, provider, secret, events, status_page_id)
GET / PUT / DELETE /webhooks/:id Manage
POST /webhooks/:id/test Test delivery
PATCH /webhooks/:id/toggle Toggle is_active
PATCH /webhooks/:id/team-only Toggle team_only

Providers: discord slack telegram generic — see Webhooks.

Notify contacts & subscribers

Method Path Description
GET / POST /notify-contacts List / create notify contacts
DELETE /notify-contacts/:id Remove a contact
GET /subscribers Status-page subscribers

Audit

Method Path Description
GET /audit-logs · /audit/logs Audit log (?monitor_id= or ?status_page_id=, ?event_type=, limit, offset)
GET /audit/stats Aggregate stats
GET /audit/status-page/:id/daily-events Daily event rollups
GET /audit/monitor/:id/events Monitor event timeline

Referrals

Method Path Description
GET /referrals/stats Referral stats and credits
POST /referrals/redeem Redeem credits
POST /referrals/click Track a referral click (public)

API monitoring (v1 + v2)

Method Path Description
POST /api-monitoring/push Push metrics (push-key auth, unauthenticated user route)
GET /api-monitoring/monitors/:id Config + state
PUT /api-monitoring/monitors/:id/config Update widgets, thresholds, interval
GET /api-monitoring/monitors/:id/metrics Recent pushed metrics
POST /api-monitoring/monitors/:id/regenerate-key Rotate push key

See API Monitoring for the push payload.

Game server monitoring (v2, beta)

Requires beta access — all routes under /api/v2/uptime.

Method Path Description
GET /game-server/monitors List
GET /game-server/monitors/:id Detail
PUT /game-server/monitors/:id/config Update config
GET /game-server/monitors/:id/metrics Recent metrics
GET /game-server/monitors/:id/plugin Download the server plugin
POST /game-server/monitors/:id/regenerate-key Rotate push key
POST /game-server/push Push metrics (push-key auth)

See Game Server Monitoring for the push payload.

Push endpoints

Token-authenticated — no user session needed, each credential is scoped to a single monitor:

Method Path Description
POST /heartbeat/:monitor_id Heartbeat push — Authorization: Bearer <hb_ token> or ?token=
POST /api-monitoring/push API metric push — Authorization: Bearer <push_key>
POST /api/v2/uptime/game-server/push Game server metric push — Authorization: Bearer <push_key>

Agent endpoints

Used by the agent binary itself with its own credentials (not user tokens):

Method Path Description
GET /agents/version Version manifest for self-update
GET /agents/install Install script download
POST /agents/handshake Agent registration/handshake
POST /agents/enroll Enrollment-token registration
POST /agents/metrics Metric ingestion
POST /agents/events Security event ingestion
POST /agents/discoveries Discovered service ingestion
GET /agents/monitors Monitor list for the agent
GET /agents/commands Pending commands poll
POST /agents/commands/:id/ack Command acknowledgement
POST /monitors/:id/status Check-result submission (X-Agent-Token)

Health

Method Path Description
GET /health Service health (also /api/v1/uptime/health)