openapi: 3.2.0 info: title: Addis Energy Search API version: wp/v2 description: Public, unauthenticated cross-content search over addisenergy.com — posts and pages together — returning lightweight id / title / url / type / subtype records. Verified live at 20 searchable objects on 2026-09-07. contact: name: Addis Energy url: https://addisenergy.com/contact/ x-derived-from: https://addisenergy.com/wp-json/ route index (218 routes across 9 namespaces, captured 2026-09-07) x-derived-on: '2026-09-07' x-api-evangelist-note: Third-party profile. Addis Energy publishes no developer program, no developer portal and no SDKs. This documents the anonymously readable WordPress core REST content API behind addisenergy.com. Every path, parameter and error shape here was read from the server's own published route-index document and verified against live anonymous responses on 2026-09-07 — nothing is invented. servers: - url: https://addisenergy.com/wp-json description: Addis Energy WordPress REST API tags: - name: Search description: Cross-content search over Addis Energy posts and pages. paths: /wp/v2/search: get: operationId: search summary: Search site content description: Search across every searchable object on addisenergy.com. Total count is returned in `X-WP-Total`. tags: - Search parameters: - name: context in: query description: Scope under which the request is made; determines fields present in response. schema: type: string enum: - view - embed default: view - name: exclude in: query description: Ensure result set excludes specific IDs. schema: type: array items: type: integer default: [] - name: include in: query description: Limit result set to specific IDs. schema: type: array items: type: integer default: [] - name: page in: query description: Current page of the collection. schema: type: integer default: 1 minimum: 1 - name: per_page in: query description: Maximum number of items to be returned in result set. schema: type: integer default: 10 minimum: 1 maximum: 100 - name: search in: query description: Limit results to those matching a string. schema: type: string - name: subtype in: query description: Limit results to items of one or more object subtypes. schema: type: array items: type: string enum: - post - page - category - post_tag - any default: any - name: type in: query description: Limit results to items of an object type. schema: type: string enum: - post - term - post-format default: post responses: '200': description: A collection of search results. content: application/json: schema: type: array items: $ref: '#/components/schemas/SearchResult' '400': description: Invalid parameter. content: application/json: schema: $ref: '#/components/schemas/WPError' '404': description: No route or resource matched the request. content: application/json: schema: $ref: '#/components/schemas/WPError' components: schemas: WPError: type: object description: The WordPress REST error envelope returned on every 4xx/5xx. Observed live on 2026-09-07. properties: code: type: string description: Machine-readable error slug, e.g. rest_post_invalid_page_number. examples: - rest_no_route message: type: string description: Human-readable message. examples: - No route was found matching the URL and request method. data: type: object description: Error detail; always carries the HTTP status. properties: status: type: integer examples: - 404 required: - code - message - data SearchResult: type: object description: A lightweight cross-content search result. properties: id: type: integer title: type: string url: type: string format: uri type: type: string enum: - post description: The search result object type. subtype: type: string enum: - post - page description: The underlying post type. _links: type: object