openapi: 3.1.0 info: title: MOMA Therapeutics Taxonomy API version: wp/v2 summary: Anonymously readable WordPress REST content API behind momatx.com. description: The classification vocabulary behind momatx.com content. MOMA Therapeutics is a Cambridge, Massachusetts drug-discovery company building precision medicines against molecular machines — highly dynamic proteins that convert chemical energy into regulatory work such as protein transport and degradation — using its proprietary KNOMATIC platform. It runs no developer program and markets no product API. This document is an API Evangelist derivation of the WordPress REST route index MOMA Therapeutics publishes at https://momatx.com/wp-json/, restricted to the operations verified to return data anonymously on 2026-08-26. contact: name: MOMA Therapeutics url: https://momatx.com/ email: info@momatx.com x-api-evangelist-provenance: Derived by the API Evangelist enrichment pipeline from the live WordPress REST route index published at https://momatx.com/wp-json/ (219 routes across 12 namespaces) and verified against live anonymous responses on 2026-08-26. Every parameter below appears verbatim in that index's `args` for the endpoint, every schema property name was read from a real response body, and every collection count in a description was read from the `X-WP-Total` response header on that date. MOMA Therapeutics publishes no OpenAPI, no developer portal and no API reference for this surface; the humanURL in apis.yml points at the upstream WordPress REST handbook that defines the wp/v2 contract. The deployment is WP Engine (nginx), with Wordfence, Yoast SEO and Advanced Custom Fields registering additional namespaces. Routes that returned 401 anonymously (/wp/v2/users, /wp/v2/settings, /wp/v2/menu-items, /wp/v2/plugins, /wp/v2/themes and the entire wp-abilities/v1 namespace) are deliberately excluded, as are all write operations. Nothing here was obtained with credentials. servers: - url: https://momatx.com/wp-json description: Production WordPress REST content API tags: - name: taxonomy description: 'Term collections for the three registered taxonomies: `category` (4 terms), `post_tag` (registered but empty) and the MOMA-specific `team_types` (3 terms).' paths: /wp/v2/categories: get: tags: - taxonomy operationId: listCategories summary: List news categories description: Lists `category` terms. Four are registered on this deployment, including Blog and Press Release, which segment the news archive. 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: 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: exclude in: query description: Ensure result set excludes specific IDs. schema: type: array items: type: integer - name: include in: query description: Limit result set to specific IDs. schema: type: array items: type: integer - name: order in: query description: Order sort attribute ascending or descending. schema: type: string enum: - asc - desc default: asc - name: orderby in: query description: Sort collection by term attribute. schema: type: string enum: - id - include - name - slug - include_slugs - term_group - description - count default: name - name: hide_empty in: query description: Whether to hide terms not assigned to any posts. schema: type: boolean default: false - name: parent in: query description: Limit result set to terms assigned to a specific parent. schema: type: integer - name: post in: query description: Limit result set to terms assigned to a specific post. schema: type: integer default: null - name: slug in: query description: Limit result set to terms with one or more specific slugs. schema: type: array items: type: string responses: '200': description: A page of results. headers: X-WP-Total: description: Total number of matching items. schema: type: integer examples: - 4 X-WP-TotalPages: description: Total number of pages available at the current `per_page`. 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': $ref: '#/components/responses/BadRequest' /wp/v2/categories/{id}: get: tags: - taxonomy operationId: getCategory summary: Get a news category description: Retrieves a single category term by numeric ID. parameters: - name: id in: path required: true description: Unique identifier for the term. schema: type: integer - 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 responses: '200': description: The requested object. content: application/json: schema: $ref: '#/components/schemas/Term' '404': $ref: '#/components/responses/NotFound' /wp/v2/tags: get: tags: - taxonomy operationId: listTags summary: List post tags description: Lists `post_tag` terms. The taxonomy is registered and anonymously reachable but empty — `X-WP-Total` was 0 on 2026-08-26. 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: 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: exclude in: query description: Ensure result set excludes specific IDs. schema: type: array items: type: integer - name: include in: query description: Limit result set to specific IDs. schema: type: array items: type: integer - name: offset in: query description: Offset the result set by a specific number of items. schema: type: integer - name: order in: query description: Order sort attribute ascending or descending. schema: type: string enum: - asc - desc default: asc - name: orderby in: query description: Sort collection by term attribute. schema: type: string enum: - id - include - name - slug - include_slugs - term_group - description - count default: name - 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 default: null - name: slug in: query description: Limit result set to terms with one or more specific slugs. schema: type: array items: type: string responses: '200': description: A page of results. headers: X-WP-Total: description: Total number of matching items. schema: type: integer examples: - 0 X-WP-TotalPages: description: Total number of pages available at the current `per_page`. 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': $ref: '#/components/responses/BadRequest' /wp/v2/tags/{id}: get: tags: - taxonomy operationId: getTag summary: Get a post tag description: Retrieves a single `post_tag` term by numeric ID. parameters: - name: id in: path required: true description: Unique identifier for the term. schema: type: integer - 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 responses: '200': description: The requested object. content: application/json: schema: $ref: '#/components/schemas/Term' '404': $ref: '#/components/responses/NotFound' /wp/v2/team_types: get: tags: - taxonomy operationId: listTeamTypes summary: List team types description: Lists `team_types` terms — the MOMA-specific taxonomy that classifies `team` records. Three terms are registered, including Founders. 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: 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: exclude in: query description: Ensure result set excludes specific IDs. schema: type: array items: type: integer - name: include in: query description: Limit result set to specific IDs. schema: type: array items: type: integer - name: order in: query description: Order sort attribute ascending or descending. schema: type: string enum: - asc - desc default: asc - name: orderby in: query description: Sort collection by term attribute. schema: type: string enum: - id - include - name - slug - include_slugs - term_group - description - count default: name - name: hide_empty in: query description: Whether to hide terms not assigned to any posts. schema: type: boolean default: false - name: parent in: query description: Limit result set to terms assigned to a specific parent. schema: type: integer - name: post in: query description: Limit result set to terms assigned to a specific post. schema: type: integer default: null - name: slug in: query description: Limit result set to terms with one or more specific slugs. schema: type: array items: type: string responses: '200': description: A page of results. headers: X-WP-Total: description: Total number of matching items. schema: type: integer examples: - 3 X-WP-TotalPages: description: Total number of pages available at the current `per_page`. 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': $ref: '#/components/responses/BadRequest' /wp/v2/team_types/{id}: get: tags: - taxonomy operationId: getTeamType summary: Get a team type description: Retrieves a single `team_types` term by numeric ID. parameters: - name: id in: path required: true description: Unique identifier for the term. schema: type: integer - 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 responses: '200': description: The requested object. content: application/json: schema: $ref: '#/components/schemas/Term' '404': $ref: '#/components/responses/NotFound' components: schemas: Error: type: object description: The WordPress REST error envelope. It is NOT RFC 9457 `application/problem+json`; it is a bespoke JSON object served as `application/json`. required: - code - message - data properties: code: type: string description: Machine-readable error slug, e.g. `rest_post_invalid_id`. examples: - rest_no_route message: type: string description: Human-readable message. data: type: object properties: status: type: integer description: HTTP status code, repeated in the body. params: type: array items: type: string Term: type: object description: A taxonomy term (`category`, `post_tag` or `team_types`). properties: id: type: integer count: type: integer description: Number of published objects assigned to the term. description: type: string link: type: string format: uri name: type: string slug: type: string taxonomy: type: string parent: type: integer meta: type: object additionalProperties: true acf: type: - object - array additionalProperties: true yoast_head: type: string description: Rendered Yoast SEO markup for the object. yoast_head_json: type: object description: Structured Yoast SEO metadata. additionalProperties: true _links: type: object description: HAL-style `_links` relations WordPress emits for the object. additionalProperties: true responses: BadRequest: description: Invalid parameter. WordPress returns `rest_invalid_param` / `rest_missing_callback_param`. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: No such object or no matching route (`rest_post_invalid_id`, `rest_no_route`). content: application/json: schema: $ref: '#/components/schemas/Error'