Overview
Resolve an incident on your status page. This is a convenience endpoint that transitions an incident to resolved status and automatically sets the resolution timestamp. Use this for straightforward resolutions or use the update endpoint for more control over the transition process.
Authentication
All requests must include authentication via API Key:
API Key : X-API-Key: YOUR_API_KEY
Request
curl -X POST https://api.uptimeio.com/api/projects/440e8400-e29b-41d4-a716-446655440001/status-pages/550e8400-e29b-41d4-a716-446655440000/incidents/990e8400-e29b-41d4-a716-446655440050/resolve \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"message": "Service fully restored. All systems operational."
}'
Path Parameters
Parameter Type Description projectIdUUID The ID of the project statusPageIdUUID The ID of the status page idUUID The ID of the incident
Request Body
Field Type Required Description messagestring No Final resolution message (1-5000 characters)
The message field is optional. If not provided, a default resolution message will be used.
Response
Returns the resolved incident with a final update.
{
"success" : true ,
"data" : {
"incident" : {
"id" : "990e8400-e29b-41d4-a716-446655440050" ,
"status_page_id" : "550e8400-e29b-41d4-a716-446655440000" ,
"title" : "API Service Degradation" ,
"message" : "We are experiencing elevated response times on our API servers" ,
"severity" : "major" ,
"status" : "resolved" ,
"affected_monitor_ids" : [
"770e8400-e29b-41d4-a716-446655440010" ,
"770e8400-e29b-41d4-a716-446655440011"
],
"created_at" : "2024-12-26T11:00:00Z" ,
"updated_at" : "2024-12-26T13:30:00Z" ,
"resolved_at" : "2024-12-26T13:30:00Z"
},
"resolution_update" : {
"id" : "aa0e8400-e29b-41d4-a716-446655440100" ,
"incident_id" : "990e8400-e29b-41d4-a716-446655440050" ,
"message" : "Service fully restored. All systems operational." ,
"status" : "resolved" ,
"created_at" : "2024-12-26T13:30:00Z" ,
"created_by" : "user"
}
}
}
Response Fields
Incident Object :
Field Type Description idUUID Unique incident identifier status_page_idUUID Status page ID titlestring Incident title messagestring Incident description severitystring Severity level statusstring Status (now “resolved”) affected_monitor_idsUUID[] List of affected monitors created_attimestamp Creation timestamp updated_attimestamp Updated timestamp resolved_attimestamp Resolution timestamp
Resolution Update Object :
Field Type Description idUUID Update ID incident_idUUID Parent incident ID messagestring Resolution message statusstring Status (“resolved”) created_attimestamp Resolution timestamp created_bystring User ID or “system”
Status Codes
Status Description 200Incident resolved successfully 400Validation error (invalid message or incident already resolved) 401Unauthorized (missing or invalid token) 403Forbidden (no permission to resolve incident) 404Incident or status page not found
Examples
Resolve with Custom Message
curl -X POST https://api.uptimeio.com/api/projects/440e8400-e29b-41d4-a716-446655440001/status-pages/550e8400-e29b-41d4-a716-446655440000/incidents/990e8400-e29b-41d4-a716-446655440050/resolve \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"message": "The service has been fully restored and all systems are operating normally. We apologize for the inconvenience."
}'
Resolve Without Message
curl -X POST https://api.uptimeio.com/api/projects/440e8400-e29b-41d4-a716-446655440001/status-pages/550e8400-e29b-41d4-a716-446655440000/incidents/990e8400-e29b-41d4-a716-446655440050/resolve \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Comparison with Update Endpoint
You can achieve the same result using the update endpoint if you prefer more granular control:
Resolve Endpoint (Recommended)
Update Endpoint (More Control)
curl -X POST https://api.uptimeio.com/api/projects/{projectId}/status-pages/{statusPageId}/incidents/{id}/resolve \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"message": "Resolved"}'
Use the resolve endpoint for quick, straightforward resolutions. Use the update endpoint if you want to go through other status transitions first (e.g., investigating -> identified -> monitoring -> resolved).
Error Codes
Message Too Long
{
"success" : false ,
"error" : {
"code" : "VALIDATION_ERROR" ,
"message" : "Validation failed: message: String must contain at most 5000 character(s)"
}
}
Incident Already Resolved
{
"success" : false ,
"error" : {
"code" : "VALIDATION_ERROR" ,
"message" : "Incident is already resolved"
}
}
Incident Not Found
{
"success" : false ,
"error" : {
"code" : "NOT_FOUND" ,
"message" : "Incident not found"
}
}
Forbidden
{
"success" : false ,
"error" : {
"code" : "FORBIDDEN" ,
"message" : "You do not have permission to resolve this incident"
}
}