openapi: 3.2.0 info: title: Utilita Status Incidents API version: '2' summary: Public, anonymous read API for Utilita Energy service status, components, incidents and scheduled maintenance. description: 'Utilita Energy publishes a public status page at https://status.utilita.co.uk/ running on Atlassian Statuspage, and that page exposes the standard Statuspage v2 read API on the Utilita domain. It is the only public, anonymous, machine-readable API surface API Evangelist has been able to verify for Utilita: it returns the live operational state of Utilita''s own components — SMETS1 / SMETS1 (DCC Enrolled) / SMETS2 smart meters, Guest Payments, PayPoint and PayZone in-store payments, the PayPoint IVR top-up line, Open Banking, My Utilita (app and web portal), Power-up functionality, utilita.co.uk, join.utilita.co.uk, the Contact Centre, telephone lines, the chatbot, smart meter installations and the smart metering network. PROVENANCE — this document was GENERATED by API Evangelist from live anonymous probes of the eight endpoints Utilita''s own API documentation page (https://status.utilita.co.uk/api) lists. Utilita does not publish an OpenAPI document. Every path, response shape and example below was observed on 2026-07-27; each operation carries an `x-evidence` block recording the URL probed, the HTTP status returned and the date. No operation, parameter or field has been invented — the API is read-only and has no documented request parameters.' contact: name: Utilita Help url: https://utilita.co.uk/help license: name: Not published url: https://www.atlassian.com/legal/product-specific-terms#statuspage-specific-terms x-platform: Atlassian Statuspage x-status-page-id: lgm23svnh0xr x-generated-by: API Evangelist enrichment pipeline (live endpoint observation) x-generated-on: '2026-07-27' x-documentation: https://status.utilita.co.uk/api servers: - url: https://status.utilita.co.uk/api/v2 description: Production — public, anonymous, no authentication required security: [] tags: - name: Incidents description: Unplanned service incidents and their update timeline. paths: /incidents.json: get: operationId: getIncidents summary: List recent incidents description: Returns the most recent incidents on the page (resolved and unresolved), each with its full `incident_updates` timeline and the components it affected. tags: - Incidents security: [] responses: '200': description: Recent incidents. content: application/json: schema: $ref: '#/components/schemas/IncidentsResponse' '404': $ref: '#/components/responses/NotFound' x-evidence: url: https://status.utilita.co.uk/api/v2/incidents.json http_status: 200 content_type: application/json; charset=utf-8 probed: '2026-07-27' observed_incident_count: 50 note: Verbatim response not stored as an example — the observed payload was ~208 KB of incident history. Shape is identical to the unresolved-incidents example. /incidents/unresolved.json: get: operationId: getUnresolvedIncidents summary: List unresolved incidents description: Returns only the incidents that are not yet resolved. Empty array when all systems are operational. tags: - Incidents security: [] responses: '200': description: Unresolved incidents. content: application/json: schema: $ref: '#/components/schemas/IncidentsResponse' '404': $ref: '#/components/responses/NotFound' x-evidence: url: https://status.utilita.co.uk/api/v2/incidents/unresolved.json http_status: 200 content_type: application/json; charset=utf-8 probed: '2026-07-27' example: examples/utilita-status-unresolved-incidents.json components: responses: NotFound: description: The requested resource could not be found. content: application/json: schema: $ref: '#/components/schemas/Error' example: errors: - The requested resource could not be found. schemas: Component: type: object description: A single Utilita service tracked on the status page. properties: id: type: string example: y54fk6gsgfjr name: type: string example: SMETS1 Smart Meters description: type: - string - 'null' status: type: string enum: - operational - degraded_performance - partial_outage - major_outage - under_maintenance example: operational created_at: type: string format: date-time updated_at: type: string format: date-time position: type: integer page_id: type: string group: type: boolean description: True when this component is a group containing other components. group_id: type: - string - 'null' description: Identifier of the parent group component, when this component belongs to one. only_show_if_degraded: type: boolean showcase: type: boolean start_date: type: - string - 'null' format: date required: - id - name - status IncidentUpdate: type: object description: One entry in an incident's update timeline. properties: id: type: string status: type: string enum: - investigating - identified - monitoring - resolved - postmortem - scheduled - in_progress - verifying - completed body: type: string incident_id: type: string created_at: type: string format: date-time updated_at: type: string format: date-time display_at: type: string format: date-time affected_components: type: - array - 'null' items: $ref: '#/components/schemas/AffectedComponent' deliver_notifications: type: boolean custom_tweet: type: - string - 'null' tweet_id: type: - string - 'null' required: - id - status - body - incident_id Error: type: object description: Error envelope observed on this API. Not RFC 9457 problem+json — a plain JSON object with an `errors` array of human-readable strings, served as application/json. properties: errors: type: array items: type: string required: - errors Page: type: object description: Identity of the Utilita status page the response came from. properties: id: type: string description: Statuspage page identifier. example: lgm23svnh0xr name: type: string example: Utilita Status Page url: type: string format: uri example: https://status.utilita.co.uk time_zone: type: string example: Europe/London updated_at: type: string format: date-time required: - id - name - url - updated_at Incident: type: object description: An unplanned service incident. properties: id: type: string example: z7l2g8m2n80d name: type: string example: Card Payments Authorisation Issue status: type: string enum: - investigating - identified - monitoring - resolved - postmortem impact: type: string enum: - none - minor - major - critical created_at: type: string format: date-time updated_at: type: string format: date-time monitoring_at: type: - string - 'null' format: date-time resolved_at: type: - string - 'null' format: date-time started_at: type: string format: date-time shortlink: type: string format: uri page_id: type: string incident_updates: type: array items: $ref: '#/components/schemas/IncidentUpdate' components: type: array items: $ref: '#/components/schemas/Component' required: - id - name - status - impact AffectedComponent: type: object description: A component touched by an incident update, with its status transition. properties: code: type: string description: Component id. name: type: string old_status: type: string new_status: type: string IncidentsResponse: type: object properties: page: $ref: '#/components/schemas/Page' incidents: type: array items: $ref: '#/components/schemas/Incident' required: - page - incidents externalDocs: description: Utilita Status Page API documentation (published by Utilita on its status page) url: https://status.utilita.co.uk/api