Install
openclaw skills install pulsemonMonitor cron jobs and background tasks with PulseMon. Check monitor status, create/update/delete monitors, view incidents, and manage alerts.
openclaw skills install pulsemonMonitor your cron jobs and background tasks through PulseMon.
The user needs a PulseMon API key. They can generate one at https://pulsemon.dev/dashboard/settings under "API Keys".
Store it as the environment variable PULSEMON_API_KEY.
All API requests go to: https://pulsemon.dev/api/v1
Every request must include the header:
Authorization: Bearer {PULSEMON_API_KEY}
GET /api/v1/monitors
Returns an array of monitors with their name, slug, status (up/down/waiting/paused), last ping time, and expected interval.
GET /api/v1/monitors/{id}
Returns full monitor details including recent pings and incidents.
POST /api/v1/monitors
Content-Type: application/json
Body:
{
"name": "Nightly Backup",
"slug": "nightly-backup",
"expectedInterval": 86400,
"gracePeriod": 300,
"tags": ["production"]
}
PATCH /api/v1/monitors/{id}
Content-Type: application/json
Body: any of these fields (at least one required):
DELETE /api/v1/monitors/{id}
POST /api/v1/monitors/{id}/pause
POST /api/v1/monitors/{id}/resume
GET /api/v1/monitors/{id}/pings?limit=20&offset=0
GET /api/v1/monitors/{id}/incidents?limit=20&offset=0
Pings are sent directly to the ping endpoint (no API key needed):
GET https://pulsemon.dev/api/ping/{slug}
Optional query params:
POST https://pulsemon.dev/api/ping/{slug} with JSON body:
{
"status": "success",
"duration": 1234,
"body": "Processed 500 records"
}
All responses are JSON with this shape:
{
"data": { ... },
"error": null
}
On error:
{
"data": null,
"error": { "code": "NOT_FOUND", "message": "Monitor not found" }
}
When the user says a time like "every hour" or "daily", convert to seconds:
https://pulsemon.dev/api/ping/{slug}