Get incident
GET
/v1/api/sites/{site_id}/incidents/{incident_id}Read one monitoring incident of a site; a crawl slowdown carries its cause and recovery.
- Scope
alerts:read- Token
- API key or OAuth access token
- Role
- Any workspace member
- MCP tool
get_incident- What scopes, tokens and roles mean →
Request
cURL
curl "https://api.crawle.io/v1/api/sites/11111111-1111-1111-1111-111111111111/incidents/1" \ -H "Authorization: Bearer $CRAWLE_API_KEY"
JavaScript
const response = await fetch("https://api.crawle.io/v1/api/sites/11111111-1111-1111-1111-111111111111/incidents/1", {
headers: {
Authorization: `Bearer ${process.env.CRAWLE_API_KEY}`,
},
});
const data = await response.json();Python
import os
import requests
response = requests.request(
"GET",
"https://api.crawle.io/v1/api/sites/11111111-1111-1111-1111-111111111111/incidents/1",
headers={
"Authorization": f"Bearer {os.environ['CRAWLE_API_KEY']}",
},
)
data = response.json()$CRAWLE_API_KEY- is an API key from Settings › API keys.
Response 200JSON
{
"acknowledged_at": "example",
"acknowledged_by": "example",
"affected_count": 1,
"closure_kind": "merged_into_group",
"created_at": "example",
"details": {},
"eligibility_revision": 1,
"escalation_count": 1,
"extra_data": {
"closure_kind": "consumed"
},
"first_detected_at": "example",
"id": 1,
"last_checked_at": "example",
"membership_key": "example",
"membership_revision": "example",
"membership_state": "confirmed",
"redirected_count": 1,
"resolved_at": "example",
"resolved_count": 1,
"restored_count": 1,
"severity": "critical",
"status": "active",
"summary": "example",
"title": "Example",
"trigger_type": "example",
"website_id": 1
}Example generated from the API contract.
Parameters
site_idpath · string (uuid)requiredincident_idpath · integerrequired- at least 1
Response 200
affected_countintegerrequiredidintegerrequiredseverityenumrequired- Incident severity.one of "critical", "warning", "info"
statusenumrequired- Lifecycle status.one of "active", "acknowledged", "resolved"
summarystringrequiredtitlestringrequiredtrigger_typestringrequired- The kind of incident, for example pages_erroring, title_changed, robots_txt_changed or crawl_slowdown. New kinds appear over time; read it as an open string.
website_idintegerrequiredacknowledged_atstring or nullacknowledged_bystring or nullclosure_kindenum or null- How a resolved incident was closed when that was not a plain recovery. merged_into_group: a broken-link incident folded into a group. alert_exclusion: closed by an alert exclusion. null: a normal recovery, or an incident that is not resolved. The field is absent when the site's crawler predates it. It does not mirror extra_data.closure_kind, which can say more (consumed, unverified_legacy, partially_superseded).one of "merged_into_group", "alert_exclusion"
created_atstring or nulldetailsobject or nulleligibility_revisioninteger or nullescalation_countinteger or nullextra_dataPublicIncidentExtraData or array of any or null- Trigger evidence as the crawler stored it: an object for most triggers, and a list or null for some. For a closed incident it can carry closure_kind.
first_detected_atstring or nulllast_checked_atstring or nullmembership_keystring or nullmembership_revisionstring or nullmembership_stateenum or null- confirmed: the count and the page come from one stored snapshot. partial: the count is known but the page could not be read. unavailable: no page list exists for this incident (site-level triggers, broken links; the answer is HTTP 200, not an error), and total is null.one of "confirmed", "partial", "unavailable"
redirected_countinteger or nullresolved_atstring or nullresolved_countinteger or nullrestored_countinteger or null
Errors
401
- When
- Missing, invalid, or expired token.
403
- When
- The token has none of the accepted scopes (
alerts:read).
422
- When
- The request did not match the schema.
detaillists each problem.
502
- When
- The site's crawler answered outside the contract (
crawler_response_invalid).
429
- When
- Rate limited. Wait for
Retry-Afterseconds.
Generated from the API contract at 7e7039b0b, synced October 30, 2026.