Doyouok API Reference

Report every run of a scheduled job, scenario or workflow to Doyouok. Doyouok alerts you by email, Telegram, Slack or Discord when a run fails or a run is missed.

How it works

  1. Call POST /api/v1/register with your API token. Doyouok finds or creates the check for your job and returns its pingUrl.
  2. After each run, call {pingUrl}/success or {pingUrl}/fail. Pings need no API token: the ping URL itself is the secret, so keep it private.
  3. If no ping arrives within the check's interval, or a run reports a failure, Doyouok alerts you.

Authentication

The account owner creates API tokens on Profile > API tokens (up to 10 per account). A token starts with dyo_ and is shown only once. Send it in the Authorization header of every /api/v1 request:

Authorization: Bearer dyo_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Base URL: https://doyouok.com/api/v1. Requests and responses are JSON. A revoked token stops working immediately.

GET /api/v1/me

Tests a token, for example when an integration saves a connection. Returns the account's plan and the account owner's email.

curl https://doyouok.com/api/v1/me -H "Authorization: Bearer dyo_..."

200 OK
{ "plan": "Free", "email": "[email protected]" }

GET /api/v1/checks

Lists the checks that can receive reports, sorted by name: checks created on doyouok.com, checks whose source is the optional source query parameter, and checks whose source appears in the token's name. For example, GET /api/v1/checks?source=make, or a token named make.com, also lists checks with source make.

200 OK
[
  {
    "id": "6f1c2a7e-0b7d-4c55-9a43-2d8f1e0c9b11",
    "name": "Nightly sync",
    "intervalMinutes": 1440,
    "status": "Up",
    "isEnabled": true,
    "lastPingAt": "2026-10-22T02:00:13Z"
  }
]

status is New (no ping yet), Up or Down. lastPingAt is UTC, or null before the first ping.

POST /api/v1/register

Returns the ping URL for a check. Send either checkId to use an existing check, or source + externalId to let your integration own a check. The first call creates that check; later calls update its name and interval and return the same ping URL.

FieldTypeDescription
checkIduuidAn existing check from GET /api/v1/checks. When set, the fields below are ignored.
sourcestring, max 50Your integration's name, for example make.
externalIdstring, max 200A stable id for the job within your source, for example a scenario id.
namestring, max 200The check's name. Required when the check is created.
intervalMinutesintegerHow often the job runs, from 1 to 527040 (366 days). Default: 1440 (daily).
clientNamestringOptional. The client the check belongs to, on plans that group checks by client.
curl -X POST https://doyouok.com/api/v1/register \
  -H "Authorization: Bearer dyo_..." \
  -H "Content-Type: application/json" \
  -d '{"source":"make","externalId":"4211873","name":"Nightly sync","intervalMinutes":1440}'

200 OK
{
  "checkId": "6f1c2a7e-0b7d-4c55-9a43-2d8f1e0c9b11",
  "name": "Nightly sync",
  "pingUrl": "https://ping.doyouok.com/ping/0d6c3b5e-8a8e-4b0e-a7f6-5f2c9d4e1a20",
  "created": true
}

created is true when this call created the check. A new ping URL starts working within about 10 seconds, so wait 10–15 seconds before its first ping, or retry a 404 ping after a short delay.

Ping endpoints

Report each run on the pingUrl from register. Pings accept GET or POST and need no token.

EndpointMeaning
{pingUrl} or {pingUrl}/successThe run succeeded.
{pingUrl}/failThe run failed. A POST body (plain text) is saved as the failure reason.
{pingUrl}/startThe run started. Only used by checks that measure how long a task runs; checks created by register ignore it.
curl -X POST https://ping.doyouok.com/ping/0d6c3b5e-.../fail -d "0 rows imported"

200 OK
OK

An unknown ping URL returns 404 Invalid API key. A disabled check still returns 200.

Errors and limits

/api/v1 errors return JSON such as { "error": "Invalid API token." }.

StatusWhen
400Invalid input, for example a missing externalId, a missing name when creating a check, an out-of-range intervalMinutes, or a reserved source.
401Missing, invalid or revoked API token.
403Creating the check would go over your plan's check limit.
404The checkId was not found in your account.
429Over 120 requests per minute for one token. Wait for the time in the Retry-After header.

Plans: Free includes 5 checks. Starter includes 50 checks for $5/month.