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.
Real-time infrastructure monitoring for DevOps
Introduction
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.
Endpoints
Provision uptime checks, retrieve live health metrics, and manage notification routing through our idempotent REST endpoints.
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.
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.
Update alert routing for an existing subscriber. Toggle delivery channels (email, slack, pagerduty, webhook) and configure escalation timeouts. Requires workspace admin or owner permissions.
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
Production-ready JSON payloads for common automation workflows. All examples enforce the application/json content type.
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" }
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} ] }
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 }