API Reference | RESTful API Docs

Real-time monitoring for zero-downtime guarantees

Introduction

The UptimePulse REST API provides programmatic access to your monitoring infrastructure, alert routing, and public status pages. All endpoints are hosted at https://api.uptimepulse.io/v2 and require authentication via Bearer tokens generated in your dashboard settings.

Rate limits are set to 1,200 requests per minute for standard accounts and 5,000 requests per minute for Enterprise plans. Responses are returned in JSON format with standard HTTP status codes. Pagination uses cursor-based navigation for datasets exceeding 100 records. All timestamps follow ISO 8601 format, and monetary values are represented in minor units (cents).

Endpoints

Manage your observability stack through three core resource groups. Each resource supports standard CRUD operations with granular filtering and webhook integration.

CRUD

Monitors

Provision HTTP, TCP, ICMP, and SSL certificate checks. Configure check intervals between 30s and 24h, define maintenance windows, and assign geographic probes across 14 global regions including Frankfurt, Tokyo, and São Paulo.

Routing

Alerts & Escalations

Define notification policies for Slack, PagerDuty, email, and SMS. Set acknowledgment timeouts, auto-resolution rules, and deduplication windows to prevent alert fatigue during cascading failures.

Public

Status Pages

Generate branded incident timelines, embed real-time component health widgets, and manage subscriber digests. Supports custom domains, SSO integration, and automated SLA reporting for enterprise customers.

Data Models

Understand the object structure returned by every API call. Schemas are versioned alongside the API to ensure backward compatibility.

Monitor Object

Contains id (UUID v4), type (http|tcp|icmp|ssl), interval_seconds, status (active|paused|degraded), and last_check_at. Includes nested probes array with latency percentiles, packet loss rates, and TLS expiry dates.

AlertRule Object

Defines trigger conditions using metric (response_time|status_code|ssl_days_remaining), operator (gt|lt|eq|neq), and threshold. Links to channels array specifying delivery targets, retry intervals, and escalation paths.

StatusComponent Object

Represents a public-facing service node. Fields include group_name, current_status, historical_uptime (30/90/365 day averages), and incident_count. Supports custom SLA targets and planned maintenance overrides.

Request & Response Examples

Copy-paste ready cURL commands and JSON payloads to integrate UptimePulse into your CI/CD pipelines, Terraform modules, or custom dashboards.

POST

Create HTTP Monitor

Provision a new endpoint check with SSL validation and custom request headers.

curl -X POST https://api.uptimepulse.io/v2/monitors \
  -H "Authorization: Bearer up_live_8f3k29a1m4p7" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production Checkout API",
    "type": "http",
    "url": "https://checkout.example.com/v2/health",
    "interval_seconds": 60,
    "expected_status_code": 200,
    "validate_ssl": true,
    "headers": { "X-Client-ID": "pulse-ci" }
  }'
GET

Fetch Alert Rules

Retrieve all active notification policies with cursor pagination.

curl -X GET "https://api.uptimepulse.io/v2/alerts/rules?limit=50&cursor=eyJpZCI6MTIzfQ" \
  -H "Authorization: Bearer up_live_8f3k29a1m4p7"

Response:

{
  "data": [
    {
      "id": "ar_99284710",
      "name": "Critical Latency Spike",
      "metric": "response_time",
      "operator": "gt",
      "threshold": 3000,
      "channels": ["slack-eng-ops", "pagerduty-primary"],
      "created_at": "2023-11-14T08:22:11Z"
    }
  ],
  "pagination": {
    "next_cursor": "eyJpZCI6MTI0fQ",
    "has_more": true
  }
}