Heartbeats / Create

Create a heartbeat. Do not send guid; the server assigns one. Returns the full heartbeat object including the url to call from your job.

Endpoint

Method POST
Url https://downdar.com/api/v1/heartbeats/create

Request

Fields

name req String, max 255 characters.
group_id opt Integer group id, or omit for none.
tag_ids opt Array of integer tag ids.
alert_channel_keys opt Array of alert channel key strings. Omit for no channels. Use email for the built-in email channel.
{ "name": "Nightly backup" }

Response

Top level

ok Always true on success.
heartbeat Full heartbeat object. Fields below apply to heartbeat.
capacity Heartbeat quota for the account. Fields below apply to capacity.
rate_limit Rate limit state for the tier this endpoint consumes. Present on every successful response.

heartbeat

guid Heartbeat id.
name String, max 255 characters.
url URL your job should call on schedule.
group_id Integer group id, or 0 for none.
tag_ids Array of integer tag ids.
alert_channel_keys Array of alert channel key strings.
paused true when monitoring is paused.

capacity

limit Maximum heartbeats allowed on your plan.
used Heartbeats currently in use.
remaining Heartbeats you can still create.

rate_limit

tier Rate tier this endpoint counts against (1-5).
cost Units consumed by this request against the tier window.
timeframe Rolling limit window: second, minute, hour, or day.
limit Maximum units allowed in the timeframe for this tier on your plan.
used Units already used in the current window.
remaining Units left before this tier returns HTTP 429.
{ "ok": true, "heartbeat": { "guid": "550e8400-e29b-41d4-a716-446655440000", "name": "Nightly backup", "url": "https://example.com/heartbeats/550e8400-e29b-41d4-a716-446655440000", "group_id": 0, "tag_ids": [], "alert_channel_keys": [], "paused": false }, "capacity": { "limit": 5, "used": 2, "remaining": 3 }, "rate_limit": { "tier": 1, "cost": 1, "timeframe": "minute", "limit": 60, "used": 12, "remaining": 48 } }