Pulse Quick Start
Create your first uptime monitor in under 5 minutes.
All endpoints require a Bearer token. See Authentication.
Create a monitor
curl -X POST "https://api.solenoid.systems/v1/pulse" \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://api.example.com/health",
"interval": 60000,
"webhook_url": "https://your-app.com/webhooks/pulse"
}'
Response (201):
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"url": "https://api.example.com/health",
"method": "GET",
"interval": 60000,
"timeout": 10000,
"consecutive_threshold": 1,
"cooldown_ms": 300000,
"active": true,
"status": "unknown",
"webhook_url": "https://your-app.com/webhooks/pulse",
"notify_recovery": false,
"created_at": 1234567890,
"updated_at": 1234567890
}
Save the id — you need it for all subsequent operations.
Check status
curl "https://api.solenoid.systems/v1/pulse/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_KEY"
{
"monitor_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "up",
"latency_ms": 142,
"last_checked_at": 1234567890,
"consecutive_failures": 0
}
List and filter monitors
List all monitors:
curl "https://api.solenoid.systems/v1/pulse" \
-H "Authorization: Bearer YOUR_KEY"
Filter to only failing monitors:
curl "https://api.solenoid.systems/v1/pulse?status=down" \
-H "Authorization: Bearer YOUR_KEY"
Trigger a manual check
Run an immediate check without waiting for the schedule:
curl -X POST "https://api.solenoid.systems/v1/pulse/550e8400-e29b-41d4-a716-446655440000/check" \
-H "Authorization: Bearer YOUR_KEY"
Manual checks do not trigger webhook notifications.
Update a monitor
Send only the fields you want to change:
curl -X PUT "https://api.solenoid.systems/v1/pulse/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"interval": 300000, "notify_recovery": true}'
Delete a monitor
curl -X DELETE "https://api.solenoid.systems/v1/pulse/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_KEY"
JavaScript example
const API = "https://api.solenoid.systems/v1/pulse";
const headers = {
Authorization: "Bearer YOUR_KEY",
"Content-Type": "application/json",
};
const monitor = await fetch(API, {
method: "POST",
headers,
body: JSON.stringify({
url: "https://api.example.com/health",
interval: 60000,
webhook_url: "https://your-app.com/webhooks/pulse",
}),
}).then((r) => r.json());
const status = await fetch(`${API}/${monitor.id}`, { headers }).then((r) =>
r.json()
);
const down = await fetch(`${API}?status=down`, { headers }).then((r) =>
r.json()
);
Next steps
- API Reference — full endpoint documentation
- Webhooks — event types and payload format
- Tier Limits — interval minimums and feature availability