openapi: 3.2.0 info: title: ICON Aircraft Content Taxonomy API version: wp/v2 description: 'Anonymous, read-only access to the editorial and marketing content behind www.iconaircraft.com, served by the WordPress core REST API (WordPress 6.7.1). ICON Aircraft publishes no developer program and no product API; this surface is the machine-readable projection of its corporate website — news posts, marketing and policy pages, the media library, and the category/tag taxonomy — and is captured here for discovery purposes only. Derived by API Evangelist from the live route index at https://www.iconaircraft.com/wp-json/ (HTTP 200, 233 routes, 10 namespaces) and from anonymous GET probes of each collection listed below on 2026-08-22. Only routes that answered 200 without credentials are described. Write methods exist on these routes but require a WordPress application password and are therefore excluded. The /wp/v2/users collection also answers anonymously; it is deliberately NOT described here because it returns identifiable author records.' contact: name: ICON Aircraft url: https://www.iconaircraft.com/company/contact/ license: name: All rights reserved — ICON Aircraft url: https://www.iconaircraft.com/terms-of-use/ servers: - url: https://www.iconaircraft.com/wp-json description: Production WordPress REST API (Pantheon origin, Fastly edge) tags: - name: Taxonomy description: Categories and tags applied to posts. paths: /wp/v2/categories: get: operationId: listCategories summary: List post categories description: Lists the category taxonomy applied to posts. Verified live at 5 categories on 2026-08-22. tags: - Taxonomy parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/hideEmpty' responses: '200': description: A page of categories. headers: X-WP-Total: $ref: '#/components/headers/XWPTotal' X-WP-TotalPages: $ref: '#/components/headers/XWPTotalPages' content: application/json: schema: type: array items: $ref: '#/components/schemas/Term' '400': $ref: '#/components/responses/InvalidParam' /wp/v2/categories/{id}: get: operationId: getCategory summary: Get a single category tags: - Taxonomy parameters: - $ref: '#/components/parameters/id' responses: '200': description: The category term. content: application/json: schema: $ref: '#/components/schemas/Term' '404': $ref: '#/components/responses/NotFound' /wp/v2/tags: get: operationId: listTags summary: List post tags description: Lists the tag taxonomy applied to posts. Verified live at 38 tags on 2026-08-22. tags: - Taxonomy parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/hideEmpty' responses: '200': description: A page of tags. headers: X-WP-Total: $ref: '#/components/headers/XWPTotal' X-WP-TotalPages: $ref: '#/components/headers/XWPTotalPages' content: application/json: schema: type: array items: $ref: '#/components/schemas/Term' '400': $ref: '#/components/responses/InvalidParam' /wp/v2/tags/{id}: get: operationId: getTag summary: Get a single tag tags: - Taxonomy parameters: - $ref: '#/components/parameters/id' responses: '200': description: The tag term. content: application/json: schema: $ref: '#/components/schemas/Term' '404': $ref: '#/components/responses/NotFound' components: responses: NotFound: description: No object exists with that identifier. content: application/json: schema: $ref: '#/components/schemas/Error' InvalidParam: description: One or more query parameters failed validation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: XWPTotal: description: Total number of items in the collection matching the query. schema: type: integer XWPTotalPages: description: Total number of pages available for the query. schema: type: integer parameters: search: name: search in: query description: Limit results to those matching a string. schema: type: string page: name: page in: query description: 1-indexed page of the collection to return. schema: type: integer minimum: 1 default: 1 hideEmpty: name: hide_empty in: query description: Return only terms that are assigned to at least one item. schema: type: boolean default: false id: name: id in: path required: true description: Unique numeric identifier for the object. schema: type: integer perPage: name: per_page in: query description: Items per page. Maximum 100. schema: type: integer minimum: 1 maximum: 100 default: 10 schemas: Error: type: object description: The WordPress REST error envelope. Not RFC 9457 — the media type is application/json and the machine-readable code lives in `code`, not `type`. properties: code: type: string examples: - rest_post_invalid_id - rest_invalid_param - rest_forbidden message: type: string data: type: object properties: status: type: integer additionalProperties: true Term: type: object properties: id: type: integer count: type: integer description: type: string link: type: string format: uri name: type: string slug: type: string taxonomy: type: string parent: type: integer