Simple Ping

API

Checker endpoints

How an AI agent connects
  1. Login with a saved passkey or email code, or create an account.
  2. Open Settings and expand API.
  3. Create a key for the agent and copy it when it is shown.
  4. Configure the agent to send the key with every request:
Authorization: Bearer YOUR_API_KEY
Base URL https://simple-ping.com/api/v1
GET /checkers

List all checkers and their current status and alert settings.

Heartbeat checkers include their interval, last callback time, and generated heartbeat_url.

GET /checkers/{checker_id}

Retrieve one checker by its numeric ID.

Heartbeat checkers include their interval, last callback time, and generated heartbeat_url.

{
  "id": 123,
  "type": "heartbeat",
  "heartbeat_url": "https://simple-ping.com/heartbeat/YOUR-UUID",
  "heartbeat": {
    "period_seconds": 3600,
    "last_seen": null
  }
}
POST /checkers

Create a webpage, port, or heartbeat checker. Permission confirmation is required. Webpage and port targets must resolve only to public internet addresses.

Webpage checker

{
  "name": "Company website",
  "group": "Production",
  "type": "webpage",
  "target": "https://simple-ping.com",
  "search_string": "",
  "send_email": true,
  "repeat_alerts": false,
  "down_threshold": 2,
  "permission_confirmed": true
}

Port checker

For a port checker, use a hostname or public IP address with a port.

{
  "name": "Mail server",
  "group": "Infrastructure",
  "type": "port",
  "target": "simple-ping.com",
  "port": 443,
  "permission_confirmed": true
}

Heartbeat checker

For a heartbeat checker, omit the target and provide period_seconds in whole-minute increments. Its generated heartbeat_url is included in the created checker.

{
  "name": "Server heartbeat",
  "group": "Infrastructure",
  "type": "heartbeat",
  "period_seconds": 3600,
  "send_email": true,
  "repeat_alerts": false,
  "down_threshold": 1,
  "permission_confirmed": true
}

Interval: 60 to 2592000 seconds. The generated HTTPS URL containing a UUID accepts GET or POST without an Authorization header or request body. The first report arms monitoring. Up to 20 reports per minute per checker.

PATCH /checkers/{checker_id}

Update any checker fields or alert settings. Only supplied fields are changed.

{
  "name": "Primary website",
  "group": "Production",
  "down_threshold": 3,
  "repeat_alerts": true
}

Use period_seconds to change a heartbeat interval. Changing another checker type to heartbeat includes its generated heartbeat_url.

{
  "period_seconds": 1800,
  "down_threshold": 2
}
DELETE /checkers/{checker_id}

Delete the checker and all of its downtime history.

POST /checkers/{checker_id}/check

Check the target state immediately without changing stored alert history.

For a heartbeat checker, this reports the state calculated from its latest callback and does not send a heartbeat.

POST/checkers/{checker_id}/regenerate-heartbeat-url

Generate a new heartbeat URL for this checker. The old URL immediately stops working. The response and subsequent ordinary checker reads include the new heartbeat_url.

Outgoing webhooks

DOWN and recovery events are sent to the destinations selected for each checker.

Signature verification

The signing secret is shown once when the webhook is created. Calculate the HMAC from the unmodified JSON request body.

sha256=HMAC_SHA256(secret, timestamp + "." + raw_body)
POST Your HTTPS URL

Validate X-Simple-Ping-Signature with a timing-safe comparison and reject stale timestamps.

X-Simple-Ping-Event: EVENT_UUID
X-Simple-Ping-Timestamp: 1790308800
X-Simple-Ping-Signature: sha256=HEX_DIGEST
{
  "schema_version": 1,
  "event_id": "EVENT_UUID",
  "event": "down",
  "state": "down",
  "language": "en",
  "occurred_at": "2026-09-25T00:00:00-04:00",
  "checker": {
    "check_id": 123,
    "checker_type": "webpage",
    "name": "Company website",
    "servername": "https://simple-ping.com"
  },
  "protocol": "HTTP/2",
  "response_code": "503",
  "reason": "The server returned HTTP 503.",
  "dashboard_url": "https://simple-ping.com/"
}
Back to home

Start monitoring your services today

Three-month free trial, no credit card required.