API Reference - REST API v1

Real-time infrastructure monitoring for DevOps

Introduction

Getting Started with StatusPulse API

Integrate StatusPulse directly into your CI/CD pipelines, internal dashboards, and incident response workflows. All endpoints require authentication via Bearer tokens and return JSON payloads with standard HTTP status codes.

Base URL: https://api.statuspulse.io/v1. Rate limits are capped at 1,200 requests per minute for Pro tiers and 5,000 for Enterprise. Include your secret key in the Authorization: Bearer <token> header. Official client libraries are available for Python, Node.js, and Go.

Generate API Key Download Postman Collection

Endpoints

Core Resources

Provision uptime checks, retrieve live health metrics, and manage notification routing through our idempotent REST endpoints.

POST /monitors

Create a new uptime, SSL, or TCP monitor. Requires name, target_url, interval_seconds, and check_type. Returns the monitor UUID and initial provisioning state.

GET /monitors/{id}/status

Fetch real-time health data for a specific monitor. Payload includes last check timestamp, response latency in milliseconds, HTTP status code, and TLS expiry. Append ?include=history_24h for trend arrays.

PUT /subscribers/{id}

Update alert routing for an existing subscriber. Toggle delivery channels (email, slack, pagerduty, webhook) and configure escalation timeouts. Requires workspace admin or owner permissions.

DELETE /monitors/{id}

Permanently terminate a monitor and purge its historical metrics. Data is archived for 30 days per SOC 2 compliance before permanent deletion. Returns 204 No Content on success.

Examples

Request & Response Samples

Production-ready JSON payloads for common automation workflows. All examples enforce the application/json content type.

Create HTTP Monitor

Request:
{ "name": "Production API Gateway", "target_url": "https://api.acme-corp.com/health", "interval_seconds": 60, "check_type": "http", "expected_status": 200 }

Response (201 Created):
{ "id": "mon_8f3a1c9d", "status": "provisioning", "created_at": "2024-03-15T14:22:00Z" }

Fetch Status & Metrics

Request:
GET /monitors/mon_8f3a1c9d/status?include=history_24h

Response (200 OK):
{ "current_status": "operational", "last_check": "2024-03-15T14:23:05Z", "response_time_ms": 142, "history": [ {"timestamp": "...", "status": "operational", "response_time_ms": 138} ] }

Update Subscriber Routing

Request:
PUT /subscribers/sub_2b9e4f1a
{ "channels": ["slack", "pagerduty"], "escalation_minutes": 15, "timezone": "America/New_York" }

Response (200 OK):
{ "id": "sub_2b9e4f1a", "updated_at": "2024-03-15T14:25:10Z", "active_channels": 2 }