API Documentation

Build with the pyrx.uptime API

Full REST API for managing monitors, retrieving data, and integrating with your infrastructure. Automate everything from monitor creation to incident response.

RESTful API

Standard REST endpoints with JSON request/response bodies. Predictable resource-based URLs and HTTP methods.

API Key Auth

Authenticate with scoped API keys. Create read-only keys for dashboards and read-write keys for automation.

OpenAPI Spec

Full OpenAPI 3.1 specification available for code generation. Generate typed clients in any language.

Webhooks

Receive real-time event notifications via webhooks. HMAC-signed payloads for security verification.

Authentication

Simple API key authentication

Generate API keys from your dashboard with granular scopes. Include the key in the Authorization header of every request.

Read-only keys: Safe for dashboards and monitoring tools. Cannot create or modify resources.

Read-write keys: Full access for automation and CI/CD. Can create, update, and delete resources.

Request Header

Authorization: Bearer pyrx_live_abc123...

# Example request
curl -X GET "https://api.pyrx.uptime.dev/v1/monitors" \
  -H "Authorization: Bearer pyrx_live_abc123..." \
  -H "Content-Type: application/json"

# Response
{
  "data": [...],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 42
  }
}

Quick Start

Get started in any language

cURL
curl -X GET "https://api.pyrx.uptime.dev/v1/monitors" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
Python
import requests

response = requests.get(
    "https://api.pyrx.uptime.dev/v1/monitors",
    headers={"Authorization": "Bearer YOUR_API_KEY"}
)

monitors = response.json()["data"]
for monitor in monitors:
    print(f"{monitor['name']}: {monitor['status']}")
Node.js
const response = await fetch(
  "https://api.pyrx.uptime.dev/v1/monitors",
  {
    headers: {
      "Authorization": "Bearer YOUR_API_KEY",
      "Content-Type": "application/json",
    },
  }
);

const { data: monitors } = await response.json();
monitors.forEach(m => console.log(`${m.name}: ${m.status}`));
Go
req, _ := http.NewRequest("GET",
  "https://api.pyrx.uptime.dev/v1/monitors", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")

resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()

var result struct {
  Data []struct {
    Name   string `json:"name"`
    Status string `json:"status"`
  } `json:"data"`
}
json.NewDecoder(resp.Body).Decode(&result)

Endpoints

API reference

Key endpoints for the pyrx.uptime REST API.

GET/v1/monitors
POST/v1/monitors
GET/v1/monitors/:id
PATCH/v1/monitors/:id
DELETE/v1/monitors/:id
GET/v1/monitors/:id/checks
GET/v1/incidents
GET/v1/status-pages
POST/v1/heartbeats/:id/ping

Start building with the API

Get your API key and start integrating in minutes. Full documentation and code examples included.

No credit card required. Free plan available forever.