SystemPulse REST API endpoint mapping and rate limit visualization

API Reference | SystemPulse Docs

Real-time Infrastructure Monitoring

Configuration

Base URL & Authentication

All API requests must be routed through our primary gateway. Secure access using your organization's API key in the `Authorization` header.

Base URL: https://api.systempulse.io/v2
Authentication: Bearer token via header Authorization: Bearer <YOUR_API_KEY>. Keys are scoped to specific clusters (e.g., us-east-1-prod, eu-west-2-staging) and can be rotated without service interruption via the dashboard. All endpoints require HTTPS and validate TLS 1.2+ connections.

Core Resources

Endpoints, Rate Limits & Pagination

SystemPulse exposes a comprehensive REST interface for querying metrics, managing alert rules, and retrieving incident timelines. Standard rate limits are enforced at 120 requests per minute per API key.

Pagination follows the cursor-based model. Responses include a next_cursor field when additional data is available. Use the ?limit=100&cursor=abc123 query parameters to iterate through large datasets like log streams or historical CPU utilization records. Exceeding the rate limit returns 429 Too Many Requests with a Retry-After header. Bulk operations cap at 500 resources per payload.

GET /v2/hosts

Retrieve registered infrastructure nodes with filtering by region, status, and custom tags. Supports bulk export in CSV or JSON formats.

POST /v2/alerts/rules

Create or update threshold-based and anomaly-detection alert configurations. Returns rule ID and evaluation schedule.

GET /v2/incidents/{id}/timeline

Fetch chronological event logs, severity transitions, and resolution notes for active or archived incidents.

Implementation

Code Examples

Integrate monitoring data into your CI/CD pipelines, custom dashboards, or incident response workflows using our officially supported language bindings.

Python (requests)

import requests

url = "https://api.systempulse.io/v2/hosts"
headers = {"Authorization": "Bearer sp_live_8f9a2c1d4e5b6789"}
params = {"limit": 50, "status": "active"}

response = requests.get(url, headers=headers, params=params)
for host in response.json()["data"]:
    print(f"{host['hostname']}: {host['cpu_usage']}%")

Node.js (fetch)

const response = await fetch('https://api.systempulse.io/v2/hosts', {
  headers: { 'Authorization': 'Bearer sp_live_8f9a2c1d4e5b6789' },
});
const data = await response.json();
console.log(`${data.data.length} nodes retrieved. Next cursor: ${data.next_cursor}`);

Go (net/http)

req, _ := http.NewRequest("GET", "https://api.systempulse.io/v2/hosts", nil)
req