API Reference - REST API v2

Integrate StatusPulse into Your Stack

Real-time monitoring for zero downtime

Jump to Documentation View Dashboard

Introduction

StatusPulse v2 provides a RESTful interface for programmatically managing uptime monitors, configuring alert routing, and embedding live status pages. All requests are made over HTTPS and return JSON payloads.

Base URL: https://api.statuspulse.io/v2. The API supports standard HTTP methods, pagination via cursor-based offsets, and request/response compression. Current version enforces TLS 1.3 and drops support for legacy API keys generated before Q3 2023.

Core Endpoints

Manage your infrastructure monitoring lifecycle through three primary resource groups: Monitors, Alerts, and Status Pages.

Monitors

GET /v2/monitors - List all active and paused checks

POST /v2/monitors - Create HTTP, TCP, or SSL certificate checks

PATCH /v2/monitors/:id - Update check intervals or target endpoints

Alerts

GET /v2/alerts - Retrieve incident history and resolution logs

POST /v2/alerts/channels - Register Slack, PagerDuty, or email routing rules

DELETE /v2/alerts/:id - Archive resolved notifications

Status Pages

GET /v2/pages - Fetch public status page configurations

PUT /v2/pages/:id/components - Sync monitored services to public dashboards

POST /v2/pages/:id/maintenance - Schedule planned downtime windows

Authentication

Authenticate every request using Bearer tokens. Generate scoped API keys from your workspace settings under Integrations > API Access.

Include the token in the Authorization header. Tokens are valid for 90 days and automatically rotate upon renewal.

cURL

curl -X GET https://api.statuspulse.io/v2/monitors \
  -H "Authorization: Bearer sk_live_9xK2mPqR7vL4nW8zYt1J" \
  -H "Content-Type: application/json"

Python

import requests

headers = {
    "Authorization": "Bearer sk_live_9xK2mPqR7vL4nW8zYt1J",
    "Content-Type": "application/json"
}
response = requests.get("https://api.statuspulse.io/v2/monitors", headers=headers)

Go

package main

import (
    "fmt"
    "net/http"
)

func main() {
    req, _ := http.NewRequest("GET", "https://api.statuspulse.io/v2/monitors", nil)
    req.Header.Set("Authorization", "Bearer sk_live_9xK2mPqR7vL4nW8zYt1J")
    client := &http.Client{}
    resp, _ := client.Do(req)
    fmt.Println(resp.Status)
}

Rate Limits

API throughput is governed by workspace tier and request type. Exceeding limits returns 429 Too Many Requests with a Retry-After header.

Standard workspaces receive 1,200 requests per minute for read operations and 300 requests per minute for write operations. Enterprise accounts scale to 10,000 RPM with dedicated queue allocation. Always implement exponential backoff for transient failures.

Response Headers

X-RateLimit-Limit: 1200

X-RateLimit-Remaining: 847

X-RateLimit-Reset: 1678901234