openapi: 3.2.0 info: title: Alzheon Content API (WordPress REST) Taxonomy API version: wp/v2 summary: Read-only access to the press releases, news, pages and media published on alzheon.com. description: 'Alzheon does not operate a product or developer API. Its corporate site, alzheon.com, does however serve the standard WordPress REST API anonymously at `https://alzheon.com/wp-json`, which makes the company''s press releases, in-the-news items, science/pipeline pages, media library and taxonomies machine-readable without a key. This document was DERIVED by API Evangelist from the provider''s own live route index (`GET https://alzheon.com/wp-json/`) on 2026-07-31. Every path, method, parameter name, type, default, enumeration and parameter description is copied verbatim from that index; nothing was invented. Only routes that were individually probed and observed to return HTTP 200 to an anonymous request are included — administrative routes such as `/wp/v2/settings` and `/wp/v2/plugins` return 401 and are deliberately omitted, as are all write operations, which require WordPress application-password credentials the company does not issue publicly. This is NOT a first-party API product and Alzheon publishes no developer documentation, SDKs, support channel or terms of use for it. Treat it as an incidental content surface.' contact: name: Alzheon, Inc. url: https://alzheon.com/contact/ x-origin: - url: https://alzheon.com/wp-json/ format: wordpress-rest-route-index version: wp/v2 x-apievangelist-method: derived x-apievangelist-derived-from: https://alzheon.com/wp-json/ (live route index, fetched 2026-07-31) x-apievangelist-note: Incidental CMS content API, not a product API. Derived, not published by Alzheon. servers: - url: https://alzheon.com/wp-json description: alzheon.com WordPress REST API security: [] tags: - name: Taxonomy description: Categories and tags used to classify content. paths: /wp/v2/categories: get: operationId: listCategories summary: List categories description: Return a paginated collection of categories published on alzheon.com. Anonymous read access; the total item and page counts are returned in the `X-WP-Total` and `X-WP-TotalPages` response headers and the next/previous pages in the `Link` header. tags: - Taxonomy parameters: - name: context in: query required: false schema: type: string default: view enum: - view - embed - edit description: Scope under which the request is made; determines fields present in response. - name: exclude in: query required: false schema: type: array default: [] items: type: integer description: Ensure result set excludes specific IDs. - name: hide_empty in: query required: false schema: type: boolean default: false description: Whether to hide terms not assigned to any posts. - name: include in: query required: false schema: type: array default: [] items: type: integer description: Limit result set to specific IDs. - name: order in: query required: false schema: type: string default: asc enum: - asc - desc description: Order sort attribute ascending or descending. - name: orderby in: query required: false schema: type: string default: name enum: - id - include - name - slug - include_slugs - term_group - description - count description: Sort collection by term attribute. - name: page in: query required: false schema: type: integer default: 1 minimum: 1 description: Current page of the collection. - name: parent in: query required: false schema: type: integer description: Limit result set to terms assigned to a specific parent. - name: per_page in: query required: false schema: type: integer default: 10 minimum: 1 maximum: 100 description: Maximum number of items to be returned in result set. - name: post in: query required: false schema: type: integer description: Limit result set to terms assigned to a specific post. - name: search in: query required: false schema: type: string description: Limit results to those matching a string. - name: slug in: query required: false schema: type: array items: type: string description: Limit result set to terms with one or more specific slugs. responses: '200': description: A collection of categories. headers: X-WP-Total: description: Total number of items in the unpaginated collection. schema: type: integer X-WP-TotalPages: description: Total number of pages available at the requested page size. schema: type: integer Link: description: RFC 8288 pagination links (rel="next" / rel="prev"). schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/Object' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /wp/v2/categories/{id}: get: operationId: getCategory summary: Get a category description: Return a single category by its numeric identifier. tags: - Taxonomy parameters: - name: context in: query required: false schema: type: string default: view enum: - view - embed - edit description: Scope under which the request is made; determines fields present in response. - name: id in: path required: true schema: type: integer description: Unique identifier for the term. responses: '200': description: The requested category. content: application/json: schema: $ref: '#/components/schemas/Object' '404': $ref: '#/components/responses/NotFound' '401': $ref: '#/components/responses/Unauthorized' /wp/v2/tags: get: operationId: listTags summary: List tags description: Return a paginated collection of tags published on alzheon.com. Anonymous read access; the total item and page counts are returned in the `X-WP-Total` and `X-WP-TotalPages` response headers and the next/previous pages in the `Link` header. tags: - Taxonomy parameters: - name: context in: query required: false schema: type: string default: view enum: - view - embed - edit description: Scope under which the request is made; determines fields present in response. - name: exclude in: query required: false schema: type: array default: [] items: type: integer description: Ensure result set excludes specific IDs. - name: hide_empty in: query required: false schema: type: boolean default: false description: Whether to hide terms not assigned to any posts. - name: include in: query required: false schema: type: array default: [] items: type: integer description: Limit result set to specific IDs. - name: offset in: query required: false schema: type: integer description: Offset the result set by a specific number of items. - name: order in: query required: false schema: type: string default: asc enum: - asc - desc description: Order sort attribute ascending or descending. - name: orderby in: query required: false schema: type: string default: name enum: - id - include - name - slug - include_slugs - term_group - description - count description: Sort collection by term attribute. - name: page in: query required: false schema: type: integer default: 1 minimum: 1 description: Current page of the collection. - name: per_page in: query required: false schema: type: integer default: 10 minimum: 1 maximum: 100 description: Maximum number of items to be returned in result set. - name: post in: query required: false schema: type: integer description: Limit result set to terms assigned to a specific post. - name: search in: query required: false schema: type: string description: Limit results to those matching a string. - name: slug in: query required: false schema: type: array items: type: string description: Limit result set to terms with one or more specific slugs. responses: '200': description: A collection of tags. headers: X-WP-Total: description: Total number of items in the unpaginated collection. schema: type: integer X-WP-TotalPages: description: Total number of pages available at the requested page size. schema: type: integer Link: description: RFC 8288 pagination links (rel="next" / rel="prev"). schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/Object' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /wp/v2/tags/{id}: get: operationId: getTag summary: Get a tag description: Return a single tag by its numeric identifier. tags: - Taxonomy parameters: - name: context in: query required: false schema: type: string default: view enum: - view - embed - edit description: Scope under which the request is made; determines fields present in response. - name: id in: path required: true schema: type: integer description: Unique identifier for the term. responses: '200': description: The requested tag. content: application/json: schema: $ref: '#/components/schemas/Object' '404': $ref: '#/components/responses/NotFound' '401': $ref: '#/components/responses/Unauthorized' components: schemas: Error: type: object description: The WordPress REST error envelope. This API does NOT use RFC 9457 application/problem+json. required: - code - message - data properties: code: type: string description: Machine-readable error code, e.g. rest_post_invalid_id. message: type: string description: Human-readable error message. data: type: object properties: status: type: integer description: HTTP status code. Object: type: object description: A WordPress REST resource. Shape varies by route; the authoritative per-route schema is served by an OPTIONS request against the route. additionalProperties: true properties: id: type: integer description: Unique identifier for the object. slug: type: string description: An alphanumeric identifier for the object unique to its type. link: type: string format: uri description: URL to the object. responses: BadRequest: description: Invalid parameter. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: No object exists with that identifier. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: The route requires authenticated WordPress credentials. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: applicationPassword: type: http scheme: basic description: 'WordPress application passwords (HTTP Basic: username + application password). Advertised by the site''s route index at https://alzheon.com/wp-admin/authorize-application.php. Required only for write and administrative routes, which are not part of this document; all operations here are readable anonymously.'