Integrate StatusPulse into Your Stack
Real-time monitoring for zero downtime
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