openapi: 3.1.0 info: title: Utilita Status 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 externalDocs: description: Utilita Status Page API documentation (published by Utilita on its status page) url: https://status.utilita.co.uk/api servers: - url: https://status.utilita.co.uk/api/v2 description: Production — public, anonymous, no authentication required tags: - name: Status description: Overall page status and rolled-up summary. - name: Components description: The individual Utilita services tracked on the status page. - name: Incidents description: Unplanned service incidents and their update timeline. - name: Scheduled Maintenance description: Planned maintenance windows. security: [] paths: /summary.json: get: operationId: getSummary summary: Get status page summary description: >- Returns a rollup of the page: the status indicator, every component and its status, all unresolved incidents, and any upcoming or in-progress scheduled maintenances. One call answers "is anything wrong at Utilita right now". tags: [Status] security: [] responses: '200': description: Status page summary. content: application/json: schema: $ref: '#/components/schemas/Summary' '404': $ref: '#/components/responses/NotFound' x-evidence: url: https://status.utilita.co.uk/api/v2/summary.json http_status: 200 content_type: application/json; charset=utf-8 probed: '2026-07-27' example: examples/utilita-status-summary.json /status.json: get: operationId: getStatus summary: Get overall status indicator description: >- Returns the page object and a single rolled-up status indicator/description (for example `none` / "All Systems Operational"). This is the endpoint the status page itself polls for change. tags: [Status] security: [] responses: '200': description: Overall status indicator. content: application/json: schema: $ref: '#/components/schemas/StatusResponse' '404': $ref: '#/components/responses/NotFound' x-evidence: url: https://status.utilita.co.uk/api/v2/status.json http_status: 200 content_type: application/json; charset=utf-8 probed: '2026-07-27' example: examples/utilita-status-status.json /components.json: get: operationId: getComponents summary: List components description: >- Returns every component tracked on the Utilita status page, including group components (Payments, My Utilita, Websites, Contact Centre) and their children, each with its current status. tags: [Components] security: [] responses: '200': description: All components on the page. content: application/json: schema: $ref: '#/components/schemas/ComponentsResponse' '404': $ref: '#/components/responses/NotFound' x-evidence: url: https://status.utilita.co.uk/api/v2/components.json http_status: 200 content_type: application/json; charset=utf-8 probed: '2026-07-27' example: examples/utilita-status-components.json /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 /scheduled-maintenances.json: get: operationId: getScheduledMaintenances summary: List scheduled maintenances description: Returns the most recent scheduled maintenance windows, past and future, with their update timelines. tags: [Scheduled Maintenance] security: [] responses: '200': description: Scheduled maintenances. content: application/json: schema: $ref: '#/components/schemas/ScheduledMaintenancesResponse' '404': $ref: '#/components/responses/NotFound' x-evidence: url: https://status.utilita.co.uk/api/v2/scheduled-maintenances.json http_status: 200 content_type: application/json; charset=utf-8 probed: '2026-07-27' note: >- Verbatim response not stored as an example — the observed payload was ~467 KB of maintenance history. Shape is identical to the upcoming-maintenances example. /scheduled-maintenances/upcoming.json: get: operationId: getUpcomingScheduledMaintenances summary: List upcoming scheduled maintenances description: Returns only maintenance windows scheduled in the future. tags: [Scheduled Maintenance] security: [] responses: '200': description: Upcoming scheduled maintenances. content: application/json: schema: $ref: '#/components/schemas/ScheduledMaintenancesResponse' '404': $ref: '#/components/responses/NotFound' x-evidence: url: https://status.utilita.co.uk/api/v2/scheduled-maintenances/upcoming.json http_status: 200 content_type: application/json; charset=utf-8 probed: '2026-07-27' example: examples/utilita-status-upcoming-maintenances.json /scheduled-maintenances/active.json: get: operationId: getActiveScheduledMaintenances summary: List active scheduled maintenances description: Returns only maintenance windows that are in progress right now. Empty array when none are running. tags: [Scheduled Maintenance] security: [] responses: '200': description: Active scheduled maintenances. content: application/json: schema: $ref: '#/components/schemas/ScheduledMaintenancesResponse' '404': $ref: '#/components/responses/NotFound' x-evidence: url: https://status.utilita.co.uk/api/v2/scheduled-maintenances/active.json http_status: 200 content_type: application/json; charset=utf-8 probed: '2026-07-27' example: examples/utilita-status-active-maintenances.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: 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] StatusIndicator: type: object description: Rolled-up status of the whole page. properties: indicator: type: string description: Severity indicator observed on this page. enum: [none, minor, major, critical, maintenance] example: none description: type: string example: All Systems Operational required: [indicator, description] 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] 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 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] 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] ScheduledMaintenance: type: object description: A planned maintenance window. properties: id: type: string name: type: string status: type: string enum: [scheduled, in_progress, verifying, completed] impact: type: string enum: [none, minor, major, critical, maintenance] scheduled_for: type: string format: date-time scheduled_until: type: string format: date-time 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, scheduled_for, scheduled_until] StatusResponse: type: object properties: page: $ref: '#/components/schemas/Page' status: $ref: '#/components/schemas/StatusIndicator' required: [page, status] ComponentsResponse: type: object properties: page: $ref: '#/components/schemas/Page' components: type: array items: $ref: '#/components/schemas/Component' required: [page, components] IncidentsResponse: type: object properties: page: $ref: '#/components/schemas/Page' incidents: type: array items: $ref: '#/components/schemas/Incident' required: [page, incidents] ScheduledMaintenancesResponse: type: object properties: page: $ref: '#/components/schemas/Page' scheduled_maintenances: type: array items: $ref: '#/components/schemas/ScheduledMaintenance' required: [page, scheduled_maintenances] Summary: type: object properties: page: $ref: '#/components/schemas/Page' status: $ref: '#/components/schemas/StatusIndicator' components: type: array items: $ref: '#/components/schemas/Component' incidents: type: array items: $ref: '#/components/schemas/Incident' scheduled_maintenances: type: array items: $ref: '#/components/schemas/ScheduledMaintenance' required: [page, status, components, incidents, scheduled_maintenances] 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]