SrvPulse

Docs / HTTP API

HTTP API

Base URL https://api.srvpulse.net/v1. Bearer tokens, JSON in and out.

Authentication

curl https://api.srvpulse.net/v1/hosts \
  -H "Authorization: Bearer spt_live_4Kd91x..."

Tokens are workspace-scoped with roles read, write or admin. 600 requests per minute; X-RateLimit-Remaining is authoritative.

Endpoints

MethodPathDescription
GET/hostsHosts with agent version and last seen
GET/hosts/{id}/metricsTime series for a window
GET/collectorsCollectors, region, upstream state
GET/checksList probes
POST/checksCreate a probe
PATCH/checks/{id}Update interval or expectations
GET/alertsOpen and recent alerts
POST/exportsRequest a bulk export job

Read metrics

GET /v1/hosts/h_8831/metrics?metric=cpu.busy&from=2026-10-18T00:00:00Z&step=60s

{
  "host": "h_8831",
  "metric": "cpu.busy",
  "unit": "percent",
  "points": [
    { "t": "2026-10-18T00:00:00Z", "v": 11.4 },
    { "t": "2026-10-18T00:01:00Z", "v": 13.9 }
  ]
}

Collector state

GET /v1/collectors

{
  "collectors": [
    { "id": "col_ruc1", "region": "ru-central", "upstream": "eu-west",
      "agents": 212, "spool_bytes": 0, "state": "connected" },
    { "id": "col_euw1", "region": "eu-west", "upstream": null,
      "agents": 0, "state": "aggregation" }
  ]
}

Errors

CodeErrorMeaning
400invalid_windowRange longer than retention
402quota_exceededHost limit reached
403not_agent_facingEndpoint accepts collectors only
409duplicate_idCheck ID already in use
429rate_limitedRetry after Retry-After