openapi: 3.2.0 info: title: Electra.aero Content API () News API version: 1.0.0 summary: Public, unauthenticated read-only JSON API serving the Electra newsroom. description: 'Electra.aero publishes no developer program and no API reference. This document was DERIVED FROM LIVE PROBES of the Statamic Content REST API that electra.aero serves at https://electra.aero/api on 2026-08-12. Every path, parameter, status code and response field below was observed on an anonymous request — nothing here is inferred from the Statamic product documentation and nothing was invented. Only the `news` collection is exposed. Probes of /api/collections/{videos,team,pages, careers,blog}/entries, /api/globals, /api/forms, /api/users, /api/assets/{container}, /api/navs/{nav}/tree and /api/taxonomies/{taxonomy}/terms all returned 404 {"message":"Not found."}, so they are deliberately omitted rather than documented speculatively. Filtering via filter[...] is rejected with 422 {"message":"Forbidden filter: "}. This is an undocumented CMS content surface, not a product API. It is nonetheless real, anonymous, CORS-open (access-control-allow-origin: *) and machine-readable.' contact: name: Electra.aero url: https://electra.aero/contact x-provenance: method: probed generated: '2026-08-12' probed: '2026-08-12' probed_by: API Evangelist enrichment pipeline (local-v1) provider_published_spec: false note: Electra.aero does not publish this specification. API Evangelist authored it from observed responses so the surface is machine-readable; it is a description of observed behavior, not a provider contract, and carries no stability guarantee. servers: - url: https://electra.aero/api description: Production content API (observed 2026-08-12) security: [] tags: - name: news description: Electra newsroom and in-the-news entries. paths: /collections/news/entries: get: operationId: listNewsEntries summary: List news entries description: Returns a paginated list of published Electra news entries. Observed 124 total entries on 2026-08-12. Anonymous request, HTTP 200, content-type application/json. tags: - news security: [] parameters: - name: limit in: query description: Entries per page. Observed honored (limit=1 and limit=2 both returned exactly that many entries and recalculated meta.last_page). required: false schema: type: integer minimum: 1 example: 25 - name: page in: query description: 1-indexed page number. Reflected in meta.current_page and the links object. required: false schema: type: integer minimum: 1 example: 1 - name: fields in: query description: Comma-separated sparse fieldset. Observed - `fields=title,slug` returned entry objects containing only `title` and `slug`. required: false schema: type: string example: title,slug,date,permalink - name: sort in: query description: Comma-separated sort fields; a leading `-` reverses. Observed - `sort=-date` returned the most recent entry first. required: false schema: type: string example: -date responses: '200': description: A page of news entries. content: application/json: schema: $ref: '#/components/schemas/EntryCollection' '422': description: 'Returned when an unpermitted query filter is supplied. Observed on `?filter[featured:is]=true` with body {"message":"Forbidden filter: featured"}.' content: application/json: schema: $ref: '#/components/schemas/Error' example: message: 'Forbidden filter: featured' /collections/news/entries/{id}: get: operationId: getNewsEntry summary: Get a single news entry description: Returns one news entry by its Statamic UUID. Observed HTTP 200 for a known id. tags: - news security: [] parameters: - name: id in: path required: true description: Entry UUID, as returned in `data[].id` from listNewsEntries. schema: type: string format: uuid example: fc720a14-7b91-4222-955b-f6515d87ebff responses: '200': description: The news entry. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/Entry' required: - data '404': description: No entry with that id. Observed body {"message":"Not found."} — a bare message envelope, not RFC 9457 application/problem+json. content: application/json: schema: $ref: '#/components/schemas/Error' example: message: Not found. components: schemas: Error: type: object description: Flat error envelope observed on 404 and 422. Not RFC 9457 — content-type is application/json and the body carries a single `message` string. properties: message: type: string required: - message PaginationLinks: type: object properties: first: type: - string - 'null' format: uri last: type: - string - 'null' format: uri prev: type: - string - 'null' format: uri next: type: - string - 'null' format: uri Handle: type: object properties: title: type: string handle: type: string PaginationMeta: type: object properties: current_page: type: integer from: type: - integer - 'null' to: type: - integer - 'null' last_page: type: integer per_page: type: integer total: type: integer description: Observed 124 on 2026-08-12. path: type: string format: uri links: type: array description: Rendered pager links (url, label, page, active). items: type: object properties: url: type: - string - 'null' format: uri label: type: string page: type: - integer - 'null' active: type: boolean Entry: type: object description: Field set observed verbatim on a news entry. Values may be null where the editor left the field empty (observed on mount, order, origin_id, source_title, updated_by). properties: id: type: string format: uuid api_url: type: string format: uri description: Self link into this API. edit_url: type: string format: uri description: Statamic control-panel URL (requires provider login). permalink: type: string format: uri url: type: string description: Site-relative path. uri: type: string description: Site-relative path. slug: type: string title: type: string summary: type: - string - 'null' body_text: type: array description: Structured body blocks; observed empty for syndicated in-the-news entries. items: type: object date: type: string format: date-time last_modified: type: string format: date-time updated_at: type: string format: date-time updated_by: type: - object - 'null' status: type: string examples: - published published: type: boolean private: type: boolean featured: type: boolean featured_image: type: - object - 'null' description: Asset reference object. source_title: type: - string - 'null' description: Outlet name for syndicated coverage. source_url: type: - string - 'null' format: uri description: Original article URL for syndicated coverage. collection: $ref: '#/components/schemas/Handle' blueprint: $ref: '#/components/schemas/Handle' locale: type: string examples: - default is_entry: type: boolean mount: type: - string - 'null' order: type: - integer - 'null' origin_id: type: - string - 'null' seo: type: object properties: enabled: type: boolean required: - id - title - slug - date - status EntryCollection: type: object description: Laravel-style paginated envelope observed on the list operation. properties: data: type: array items: $ref: '#/components/schemas/Entry' links: $ref: '#/components/schemas/PaginationLinks' meta: $ref: '#/components/schemas/PaginationMeta' required: - data - links - meta