Update a monitor
/workspaces/{workspace}/status/monitors/{monitor}Changes only the fields you send. Changing the address, type or interval schedules a fresh check straight away.
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_•••••••HeaderPath parameters
workspacestringRequiredYour workspace slug, e.g. dokan.
monitorintegerRequiredMonitor id.
Request body
application/jsonnamestringmax 80“Give the monitor a name, like “Checkout API”.”
typeenumCheck type. One of
http,keyword,tcp,heartbeat.urlstring, nullableRequiredmax 2048Must match ^https?://\S+$. Private and internal addresses are refused at save time.
hoststring, nullableRequiredmax 253Host name or IP, no scheme or path.
portinteger, nullableRequired1–65535.
methodenumdefault GETHTTP method. One of
HEAD,GET,POST,PUT,PATCH,DELETE,OPTIONS.expected_statusesstring1–20 codes (200) or classes (2xx). Default ["2xx","3xx"].
keywordstring, nullableRequiredmax 200Word or phrase to look for.
keyword_absentbooleandefault falseUp when the keyword is absent.
request_headersstringUp to 20. name matches ^[A-Za-z0-9-]{1,64}$ and can’t be host, content-length, transfer-encoding, connection, upgrade, te, trailer, proxy-authorization or keep-alive; value max 1000.
request_bodystring, nullablemax 10000Must be valid JSON when body_is_json is true.
body_is_jsonbooleandefault falseSend the body as JSON.
auth_typeenumdefault nonenone clears the stored username and secret. One of
none,bearer,basic.auth_usernamestring, nullablemax 120Basic auth user.
auth_secretstring, nullablemax 2000Token or password. Write-only; an empty value keeps the stored one.
follow_redirectsbooleandefault trueverify_sslbooleandefault truessl_remindersbooleandefault trueEmail before the TLS certificate expires.
timeout_secondsintegerdefault 101–60.
interval_secondsenumdefault 60Check interval. One of
60,300,900,1800,3600,43200,86400.failure_thresholdintegerdefault 21–10 failed checks before it’s down.
slow_after_msinteger, nullable100–60000.
alert_emailbooleandefault trueEmail the team when it goes down or recovers.
incident_modeenumdefault draftWhen it goes down, open a draft incident or post one straight away. One of
draft,publish.tagsstringUp to 10, each max 32; stored lower-case and de-duplicated.
metastringUp to 20; key max 40, value max 200.
show_response_timebooleandefault falseShow response time on the public status page.
pageobjectStatus page placement: show (boolean, required with page), name (max 80; defaults to the monitor name), component_id (existing component), group_id (existing group). show: false takes it off the page and removes an unused component.
Response
200 OKMonitor detail.
idintegerMonitor id.namestringName.typeenumCheck type. One ofhttp,keyword,tcp,heartbeat.type_labelstringLocalized (HTTPS, Keyword, Port, Heartbeat).targetstringURL without scheme, host:port, or “every 5 minutes” for heartbeats (localized).statusenumCurrent state. One ofpending,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.
Rate limits
This endpoint counts toward your general limit of 120 requests a minute. When you go over, wait for the number of seconds in Retry-After.
Errors
Every error is JSON with a message. See Errors.