openapi: 3.1.0 info: title: Harbinger Motors Discovery API version: wp/v2 description: 'The self-describing layer of the harbingermotors.com WordPress REST API: the root index that enumerates all 362 routes across 14 namespaces with their argument schemas, plus the post-type and status registries. This is the machine-readable contract the rest of this profile was derived from. Verified live on 2026-08-22; anonymous and read-only.' contact: name: Harbinger Motors url: https://harbingermotors.com/contact/ x-derived-from: https://harbingermotors.com/wp-json/ route index + per-route HTTP OPTIONS schema documents x-derived-on: '2026-08-22' x-api-evangelist-note: Third-party profile. Harbinger Motors publishes no developer program, no API documentation and no developer portal; this documents the anonymously readable WordPress REST content API behind harbingermotors.com. Every path, parameter and schema here was read from the server's own published route index and HTTP OPTIONS schema documents on 2026-08-22 — nothing is invented. servers: - url: https://harbingermotors.com/wp-json description: Harbinger Motors WordPress REST API tags: - name: Discovery description: Route index, post types and statuses. paths: /: get: operationId: getApiIndex summary: Get the API index description: 'The WordPress REST API discovery document for harbingermotors.com: site name and description, the registered namespaces, every route with its methods and argument schemas, and the authentication schemes on offer. 362 routes across 14 namespaces at capture.' tags: - Discovery parameters: - name: context in: query schema: default: view - name: _fields in: query description: Comma-separated allowlist of top-level response fields (sparse fieldset). WordPress core parameter, present on every route. schema: type: string - name: _embed in: query description: Inline embeddable linked resources (author, featured media, terms) under _embedded. schema: type: string responses: '200': description: The API index document. content: application/json: schema: $ref: '#/components/schemas/ApiIndex' /wp/v2: get: operationId: getNamespaceIndex summary: Get the wp/v2 namespace index description: The route index scoped to the WordPress core `wp/v2` namespace. tags: - Discovery parameters: - name: _fields in: query description: Comma-separated allowlist of top-level response fields (sparse fieldset). WordPress core parameter, present on every route. schema: type: string - name: _embed in: query description: Inline embeddable linked resources (author, featured media, terms) under _embedded. schema: type: string responses: '200': description: The namespace index document. content: application/json: schema: $ref: '#/components/schemas/ApiIndex' /wp/v2/types: get: operationId: listTypes summary: List post types description: Retrieve every registered post type and its REST base. 12 types at capture, of which `event` is the only site-specific one Harbinger registered. tags: - Discovery parameters: - name: context in: query description: Scope under which the request is made; determines fields present in response. schema: type: string enum: - view - embed - edit default: view - name: _fields in: query description: Comma-separated allowlist of top-level response fields (sparse fieldset). WordPress core parameter, present on every route. schema: type: string - name: _embed in: query description: Inline embeddable linked resources (author, featured media, terms) under _embedded. schema: type: string responses: '200': description: A map of post-type slug to post-type definition. content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/PostType' '400': description: Invalid parameter. WordPress returns `rest_invalid_param` with a per-parameter `data.params` map. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Anonymous request to a capability-gated route or context. Envelope carries a `rest_*_cannot_*` / `rest_forbidden` code. content: application/json: schema: $ref: '#/components/schemas/Error' /wp/v2/types/{type}: get: operationId: getType summary: Get a post type description: Retrieve one post-type definition by slug (for example `event`). tags: - Discovery parameters: - name: type in: path required: true description: Post-type slug. schema: type: string - name: _fields in: query description: Comma-separated allowlist of top-level response fields (sparse fieldset). WordPress core parameter, present on every route. schema: type: string - name: _embed in: query description: Inline embeddable linked resources (author, featured media, terms) under _embedded. schema: type: string responses: '200': description: The post-type definition. content: application/json: schema: $ref: '#/components/schemas/PostType' '401': description: Anonymous request to a capability-gated route or context. Envelope carries a `rest_*_cannot_*` / `rest_forbidden` code. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No route matched (`rest_no_route`) or the requested record does not exist. content: application/json: schema: $ref: '#/components/schemas/Error' /wp/v2/statuses: get: operationId: listStatuses summary: List post statuses description: Retrieve the publication statuses registered on the site and which are publicly queryable. tags: - Discovery parameters: - name: context in: query description: Scope under which the request is made; determines fields present in response. schema: type: string enum: - view - embed - edit default: view - name: _fields in: query description: Comma-separated allowlist of top-level response fields (sparse fieldset). WordPress core parameter, present on every route. schema: type: string - name: _embed in: query description: Inline embeddable linked resources (author, featured media, terms) under _embedded. schema: type: string responses: '200': description: A map of status slug to status definition. content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/PostStatus' '400': description: Invalid parameter. WordPress returns `rest_invalid_param` with a per-parameter `data.params` map. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Anonymous request to a capability-gated route or context. Envelope carries a `rest_*_cannot_*` / `rest_forbidden` code. content: application/json: schema: $ref: '#/components/schemas/Error' components: schemas: ApiIndex: type: object description: WordPress REST API index document. properties: name: type: string description: Site title — "Harbinger Motors". description: type: string description: Site tagline — "Familiar form. Revolutionary foundation". url: type: string format: uri home: type: string format: uri gmt_offset: type: number timezone_string: type: string namespaces: type: array items: type: string description: Registered REST namespaces. authentication: type: array description: Advertised authentication schemes. Empty on this host. routes: type: object description: Map of route pattern to its methods, endpoints and argument schemas. _links: type: object PostType: type: object properties: capabilities: description: All capabilities used by the post type. type: object description: description: A human-readable description of the post type. type: string hierarchical: description: Whether or not the post type should have children. type: boolean viewable: description: Whether or not the post type can be viewed. type: boolean labels: description: Human-readable labels for the post type for various contexts. type: object name: description: The title for the post type. type: string slug: description: An alphanumeric identifier for the post type. type: string supports: description: All features, supported by the post type. type: object has_archive: description: If the value is a string, the value will be used as the archive slug. If the value is false the post type has no archive. type: - string - boolean taxonomies: description: Taxonomies associated with post type. type: array items: type: string rest_base: description: REST base route for the post type. type: string rest_namespace: description: REST route's namespace for the post type. type: string visibility: description: The visibility settings for the post type. type: object properties: show_ui: description: Whether to generate a default UI for managing this post type. type: boolean show_in_nav_menus: description: Whether to make the post type available for selection in navigation menus. type: boolean icon: description: The icon for the post type. type: - string - 'null' template: type: array description: The block template associated with the post type. template_lock: type: - string - boolean enum: - all - insert - contentOnly - false description: The template_lock associated with the post type, or false if none. PostStatus: type: object properties: name: description: The title for the status. type: string private: description: Whether posts with this status should be private. type: boolean protected: description: Whether posts with this status should be protected. type: boolean public: description: Whether posts of this status should be shown in the front end of the site. type: boolean queryable: description: Whether posts with this status should be publicly-queryable. type: boolean show_in_list: description: Whether to include posts in the edit listing for their post type. type: boolean slug: description: An alphanumeric identifier for the status. type: string date_floating: description: Whether posts of this status may have floating published dates. type: boolean Error: type: object description: WordPress REST error envelope. Observed live on this host; it is not RFC 9457 problem+json. properties: code: type: string description: Stable machine-readable error code. Match on this, never on `message`. message: type: string description: Human-readable message. Localized and subject to change. data: type: object properties: status: type: integer description: HTTP status code, repeated in the body. params: type: object description: Per-parameter validation messages, present on rest_invalid_param. details: type: object description: Per-parameter structured detail, present on rest_invalid_param. required: - code - message