Skip to content
bynhDocs

Check a monitor now

POST/workspaces/{workspace}/status/monitors/{monitor}/check

Runs a real check straight away and records it (unless the monitor is paused). Returns the updated monitor and what the check found.

Authentication

Send an API token as a bearer token. This endpoint needs a read and write token, made by an editor, admin or owner. Create one in My account → API tokens; see scopes and roles.

Authorization: Bearer 42|bynh_pat_•••••••Header

Path parameters

  • workspacestringRequired

    Your workspace slug, e.g. dokan.

  • monitorintegerRequired

    Monitor id.

Response

200 OK

Monitor detail plus meta {ok, summary (localized), status_code, response_ms}.

  • idintegerMonitor id.
  • namestringName.
  • typeenumCheck type. One of http, keyword, tcp, heartbeat.
  • type_labelstringLocalized (HTTPS, Keyword, Port, Heartbeat).
  • targetstringURL without scheme, host:port, or “every 5 minutes” for heartbeats (localized).
  • statusenumCurrent state. One of pending, up, slow, down, paused.
  • status_labelstringLocalized.
  • status_changed_atstring|nullISO 8601.
  • uptime_90dnumber|nullAverage of daily uptime percentages over checked days.
  • response_msinteger|nullLast response time.
  • slow_after_msinteger|nullSlow threshold.
  • interval_secondsintegerCheck interval.
  • last_checked_atstring|nullISO 8601.
  • last_errorstring|nullLast failure summary.
  • tagsarray<string>Lower-case tags.
  • component{id, name, group_id}|nullStatus page component it drives.
  • barsarray90 entries, oldest first: {day: YYYY-MM-DD, uptime: percent 0–100 with 3 decimals or null if not checked that day, incident_minutes: integer}.
  • paused_atstring|nullISO 8601.
  • consecutive_failuresintegerFailures in a row.
  • last_status_codeinteger|nullLast HTTP status.
  • last_heartbeat_atstring|nullHeartbeats only.
  • created_atstringISO 8601.
  • ssl{expires_at, days_left, issuer}|nullTLS certificate seen on the last check.
  • statsobjectincidents_90d, downtime_minutes_90d, response_median_ms and response_p95_ms (last 24 hours).
  • configobjecturl, host, port, method, expected_statuses (default ["2xx","3xx"]), keyword, keyword_absent, request_headers [{name, value}], request_body, body_is_json, auth_type, auth_username, has_secret, secret_hint (last 4 characters, editors only), follow_redirects, verify_ssl, ssl_reminders, timeout_seconds, failure_threshold, alert_email, incident_mode, meta [{key, value}], show_response_time, heartbeat_path. The secret itself is never returned.
  • component_detail{id, name, group, group_id}|nullIts status page component.
  • recent_checks[]objectLast 20 checks: id, checked_at, ok, slow, in_maintenance, status_code, response_ms, error.
  • incidents[]IncidentLast 10 incidents on this monitor or its component (without updates).
  • maintenance[]MaintenanceUp to 5 open windows on its component.
  • meta.okbooleanCheck passed.
  • meta.summarystringe.g. “Answered in 182 ms”.
  • meta.status_codeinteger|nullHTTP status.
  • meta.response_msinteger|nullResponse time.

Rate limits

This endpoint counts toward your general limit of 120 requests a minute and its own limit of 10 a minute. Its own limit answers 429 without Retry-After; wait and try again.

Errors

401The token is missing, wrong, revoked or expired.
403The token is read-only (message: “This token is read-only. Create a read and write token to make changes.”). Or: The token’s owner is a viewer (“Viewers can read everything but can’t change it.”), or the workspace’s editing is paused (a billing message, e.g. “Your trial has ended, so editing is paused. …”).
404The token belongs to another workspace, or its owner is no longer a member.
429More than 10 checks a minute (“Too many attempts. Wait a few minutes, then try again.”).

Every error is JSON with a message. See Errors.

Next →Get response times
curl -X POST "https://api.bynh.io/api/v1/workspaces/dokan/status/monitors/1/check" \
  -H "Authorization: Bearer $BYNH_TOKEN" \
  -H "Accept: application/json"

Response200 OK

application/json
{
  "data": {
    "id": 4,
    "name": "Checkout API",
    "type": "http",
    "type_label": "HTTPS",
    "target": "api.dokan.sa/health",
    "status": "up",
    "status_label": "Up",
    "status_changed_at": "2026-09-28T02:14:00+00:00",
    "uptime_90d": 99.982,
    "response_ms": 182,
    "slow_after_ms": 1500,
    "interval_seconds": 60,
    "last_checked_at": "2026-10-01T07:59:01+00:00",
    "last_error": null,
    "tags": [
      "payments"
    ],
    "component": {
      "id": 2,
      "name": "Checkout",
      "group_id": 1
    },
    "bars": [
      {
        "day": "2026-07-04",
        "uptime": 100,
        "incident_minutes": 0
      },
      {
        "day": "2026-10-01",
        "uptime": 99.931,
        "incident_minutes": 1
      }
    ],
    "paused_at": null,
    "consecutive_failures": 0,
    "last_status_code": 200,
    "last_heartbeat_at": null,
    "created_at": "2026-02-11T09:30:00+00:00",
    "ssl": {
      "expires_at": "2026-12-20T23:59:59+00:00",
      "days_left": 80,
      "issuer": "Amazon RSA 2048 M02"
    },
    "stats": {
      "incidents_90d": 1,
      "downtime_minutes_90d": 6,
      "response_median_ms": 176,
      "response_p95_ms": 342
    },
    "config": {
      "url": "https://api.dokan.sa/health",
      "host": null,
      "port": null,
      "method": "GET",
      "expected_statuses": [
        "2xx"
      ],
      "keyword": null,
      "keyword_absent": false,
      "request_headers": [],
      "request_body": null,
      "body_is_json": false,
      "auth_type": "none",
      "auth_username": null,
      "has_secret": false,
      "secret_hint": null,
      "follow_redirects": true,
      "verify_ssl": true,
      "ssl_reminders": true,
      "timeout_seconds": 10,
      "failure_threshold": 2,
      "alert_email": true,
      "incident_mode": "draft",
      "meta": [],
      "show_response_time": true,
      "heartbeat_path": null
    },
    "component_detail": {
      "id": 2,
      "name": "Checkout",
      "group": "Storefront",
      "group_id": 1
    },
    "recent_checks": [
      {
        "id": 889120,
        "checked_at": "2026-10-01T07:59:01+00:00",
        "ok": true,
        "slow": false,
        "in_maintenance": false,
        "status_code": 200,
        "response_ms": 182,
        "error": null
      }
    ],
    "incidents": [],
    "maintenance": []
  },
  "meta": {
    "ok": true,
    "summary": "Answered in 182 ms",
    "status_code": 200,
    "response_ms": 182
  }
}

Examples use Dokan, a sample workspace. Responses are shortened where lists are long.