Pulse API Reference
API & Integrations
Updated Apr 2, 2026
The Pulse API allows your services to send heartbeats and data payloads to Chglog.
Endpoint format
https://pulse.chglog.com/{team_token}/{check_token}
Both tokens are displayed on the check detail page after creating a Pulse or Pulse+Data check.
Supported HTTP methods
| Method | Use case |
|---|---|
GET | Simple heartbeat ping (no payload). |
HEAD | Lightweight ping — no response body returned. |
POST | Heartbeat with JSON payload (required for Pulse+Data checks). |
Request headers (POST)
Content-Type: application/json
Payload (Pulse+Data only)
Send a JSON object in the request body. Maximum size: 50 KB. The JSON must be valid — malformed payloads are rejected with a 400 error.
Response
HTTP/1.1 200 OK
Content-Type: application/json
{"request_id": "abc123"}
Error codes
| Code | Meaning |
|---|---|
200 | Heartbeat received and recorded. |
400 | Invalid JSON payload. |
404 | Invalid team or check token. |
413 | Payload exceeds 50 KB limit. |
Examples
curl (simple heartbeat)
curl -fsS https://pulse.chglog.com/abc123/def456
curl (with data payload)
curl -X POST https://pulse.chglog.com/abc123/def456 \
-H "Content-Type: application/json" \
-d '{"db_size_mb": 1024, "active_connections": 42}'
Python
import requests
requests.post(
"https://pulse.chglog.com/abc123/def456",
json={"queue_length": 0, "workers_active": 4}
)
Node.js
fetch("https://pulse.chglog.com/abc123/def456", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ healthy: true, latency_ms: 23 })
})
Credits
Each successful ping costs 1 credit deducted from your team balance.