openapi: 3.2.0 info: title: Pathalys Pharma Content API (WordPress REST API) Categories API version: wp/v2 description: Anonymously readable content API for pathalys.com, derived from the WordPress REST route index the site publishes at https://pathalys.com/wp-json/. Pathalys Pharma runs no developer program and publishes no hand-authored API specification; this document is a faithful derivation of the routes, parameters and defaults the site itself advertises, restricted to the read operations verified to return HTTP 200 without credentials on 2026-08-26. Write operations are registered on the same routes but are authenticated administrative endpoints (WordPress cookie/nonce or application passwords), not a public API offering, and are deliberately not modelled here. contact: name: Pathalys Pharma, Inc. url: https://pathalys.com/contact/ x-derived-from: https://pathalys.com/wp-json/ x-derived-on: '2026-08-26' x-api-evangelist-note: Derived by the API Evangelist enrichment pipeline from the provider-published WordPress REST route index; not authored or endorsed by Pathalys Pharma, Inc. servers: - url: https://pathalys.com/wp-json description: Production security: - {} tags: - name: Categories description: Post categories and tags taxonomy paths: /wp/v2/categories: get: operationId: listCategories tags: - Categories summary: List categories description: 'Lists the category taxonomy terms used to classify Pathalys posts: News and Scientific Updates.' security: - {} parameters: - $ref: '#/components/parameters/context' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/exclude' - $ref: '#/components/parameters/include' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/order' - $ref: '#/components/parameters/slug' - $ref: '#/components/parameters/fields' - name: orderby in: query schema: type: string default: name enum: - id - include - name - slug - include_slugs - term_group - description - count description: Sort collection by term attribute. - name: hide_empty in: query description: Whether to hide terms not assigned to any posts. schema: type: boolean default: false - name: post in: query description: Limit result set to terms assigned to a specific post. schema: type: integer responses: '200': description: A page of categories. headers: &id001 X-WP-Total: description: Total number of items in the collection. schema: type: integer X-WP-TotalPages: description: Total number of pages in the collection. 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/Term' '400': description: One or more query parameters failed validation. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: rest_invalid_param message: One or more query parameters failed validation. data: status: 400 /wp/v2/categories/{id}: get: operationId: getCategory tags: - Categories summary: Retrieve a single category description: Retrieves one category term by ID. security: - {} parameters: - $ref: '#/components/parameters/id_path' - $ref: '#/components/parameters/context' - $ref: '#/components/parameters/fields' responses: '200': description: The category. content: application/json: schema: $ref: '#/components/schemas/Term' '404': description: Term does not exist. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: rest_term_invalid message: Term does not exist. data: status: 404 /wp/v2/tags: get: operationId: listTags tags: - Categories summary: List post tags description: 'Lists the post_tag taxonomy. Registered and anonymously readable, but empty on pathalys.com (X-WP-Total: 0) — recorded because the route is advertised, not because it carries data.' security: - {} parameters: - $ref: '#/components/parameters/context' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/exclude' - $ref: '#/components/parameters/include' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/order' - $ref: '#/components/parameters/slug' - $ref: '#/components/parameters/fields' responses: '200': description: A page of tags (empty on this site). headers: *id001 content: application/json: schema: type: array items: $ref: '#/components/schemas/Term' components: parameters: context: name: context in: query description: Scope under which the request is made; determines fields present in the response. Only `view` and `embed` are available anonymously. schema: type: string default: view enum: - view - embed page: name: page in: query description: Current page of the collection. schema: type: integer default: 1 minimum: 1 per_page: name: per_page in: query description: Maximum number of items to be returned in the result set. schema: type: integer default: 10 minimum: 1 maximum: 100 search: name: search in: query description: Limit results to those matching a string. schema: type: string exclude: name: exclude in: query description: Ensure result set excludes specific IDs. schema: type: array items: type: integer include: name: include in: query description: Limit result set to specific IDs. schema: type: array items: type: integer offset: name: offset in: query description: Offset the result set by a specific number of items. schema: type: integer order: name: order in: query description: Order sort attribute ascending or descending. schema: type: string default: desc enum: - asc - desc slug: name: slug in: query description: Limit result set to items with one or more specific slugs. schema: type: array items: type: string fields: name: _fields in: query description: Sparse fieldset — comma-separated list of fields to return. schema: type: string example: id,slug,title,link,date id_path: name: id in: path required: true description: Unique identifier for the resource. schema: type: integer schemas: Term: type: object description: 'A term in the category taxonomy. Pathalys publishes two: News (id 1, 13 posts) and Scientific Updates (id 11, 1 post).' properties: id: type: integer count: type: integer description: Number of published posts for the term. description: type: string link: type: string format: uri name: type: string example: Scientific Updates slug: type: string example: scientific-updates taxonomy: type: string example: category parent: type: integer Error: type: object description: WordPress REST API error envelope (WP_Error serialization). Not RFC 9457 problem+json; the HTTP status is repeated inside `data.status`. properties: code: type: string description: Machine-readable error code. example: rest_post_invalid_id message: type: string description: Human-readable error message. example: Invalid post ID. data: type: object properties: status: type: integer description: HTTP status code, repeated in the body. example: 404 required: - code - message