API Reference

Programmatic access to PulseKeep. Manage monitors, retrieve uptime data, and automate your monitoring workflow.

https://api.pulsekeep.iov1

Authentication

All API requests require authentication using an API key. Include your key in the X-API-Key header.

# Example request
curl -X GET https://api.pulsekeep.io/v1/monitors \
-H "X-API-Key: pk_your_api_key_here"

API Key Scopes: Keys can be created with read (read-only) or full (read + write) access. Manage your API keys in Settings → API.

Rate Limits

PlanRate Limit
Starter / Free60 requests/minute
Indie300 requests/minute
Agency1,000 requests/minute

Endpoints

Monitors

GET/v1/monitorsread
GET/v1/monitors/:idread
POST/v1/monitorsfull
PATCH/v1/monitors/:idfull
DELETE/v1/monitors/:idfull
POST/v1/monitors/:id/pausefull
POST/v1/monitors/:id/resumefull
GET/v1/monitors/:id/uptimeread

Status

GET/v1/statusread

Incidents

GET/v1/incidentsread

Maintenance

GET/v1/maintenanceread
POST/v1/maintenancefull
DELETE/v1/maintenance/:idfull

Account

GET/v1/accountread

Response Format

All responses follow a consistent JSON structure:

Success Response
{ "success": true, "data": { ... }, "meta": { ... } }
Error Response
{ "success": false, "error": { "message": "...", "code": "ERROR_CODE" } }

Examples

Create a Monitor

# Create a new HTTP monitor
curl -X POST https://api.pulsekeep.io/v1/monitors \
-H "X-API-Key: pk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"name": "My API", "url": "https://api.example.com/health", "interval_seconds": 60}'
Required fields: name, url
Optional: type (http), method (GET), interval_seconds (60), regions

Get Uptime Statistics

# Get uptime stats for a monitor
curl -X GET https://api.pulsekeep.io/v1/monitors/mon_abc123/uptime \
-H "X-API-Key: pk_your_api_key"
# Response
{
"success": true,
"data": {
"uptime_24h": 99.95,
"uptime_7d": 99.87,
"uptime_30d": 99.92,
"total_checks_30d": 43200
}
}

Pause & Resume Monitors

# Pause a monitor
curl -X POST https://api.pulsekeep.io/v1/monitors/mon_abc123/pause \
-H "X-API-Key: pk_your_api_key"
# Resume a monitor
curl -X POST https://api.pulsekeep.io/v1/monitors/mon_abc123/resume \
-H "X-API-Key: pk_your_api_key"

List Incidents

# Get all incidents
curl -X GET https://api.pulsekeep.io/v1/incidents \
-H "X-API-Key: pk_your_api_key"
# Response
{
"success": true,
"data": [{
"id": "inc_xyz789",
"monitor_id": "mon_abc123",
"started_at": "2024-01-15T10:30:00Z",
"resolved_at": "2024-01-15T10:35:00Z",
"cause": "Connection timeout"
}]
}

Create Maintenance Window

# Schedule a maintenance window
curl -X POST https://api.pulsekeep.io/v1/maintenance \
-H "X-API-Key: pk_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "name": "Database Migration", "description": "Scheduled DB upgrade", "start_time": "2024-01-20T02:00:00Z", "end_time": "2024-01-20T04:00:00Z", "monitor_id": "mon_abc123" }'
Required: name, start_time, end_time
Optional: description, monitor_id (omit to apply to all monitors)

Get Account Info

# Get your account details and plan info
curl -X GET https://api.pulsekeep.io/v1/account \
-H "X-API-Key: pk_your_api_key"
# Response
{
"success": true,
"data": {
"id": "user_123",
"email": "dev@example.com",
"plan_tier": "indie",
"monitors_used": 12
}
}

Plan Limits

ResourceStarterIndieAgency
Monitors1050150
Status Pages15Unlimited
Min Check Interval3 min30 sec30 sec
Maintenance Windows5Unlimited
Heartbeat Monitors210Unlimited

When you exceed a plan limit, the API returns a 403 error with code PLAN_LIMIT_EXCEEDED.

Ready to integrate?

Create an API key in your dashboard and start building.

Go to Dashboard