openapi: 3.1.0 info: title: MOMA Therapeutics Content Posts API version: wp/v2 summary: Anonymously readable WordPress REST content API behind momatx.com. description: The news and publications surface of MOMA Therapeutics. 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: posts description: News archive — press releases, media coverage, publications and scientific presentations (32 published at harvest time). paths: /wp/v2/posts: get: tags: - posts operationId: listPosts summary: List news posts description: Lists published news posts. On this deployment the collection is the MOMA Therapeutics news archive — 32 items at harvest time, spanning company announcements, Roche and Bayer collaboration releases, leadership appointments and scientific presentations. Paginated; `X-WP-Total` and `X-WP-TotalPages` are exposed via `Access-Control-Expose-Headers`. 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: after in: query description: Limit response to posts published after a given ISO8601 compliant date. schema: type: string format: date-time - name: modified_after in: query description: Limit response to posts modified after a given ISO8601 compliant date. schema: type: string format: date-time - name: author in: query description: Limit result set to posts assigned to specific authors. schema: type: array items: type: integer - name: author_exclude in: query description: Ensure result set excludes posts assigned to specific authors. schema: type: array items: type: integer - name: before in: query description: Limit response to posts published before a given ISO8601 compliant date. schema: type: string format: date-time - name: modified_before in: query description: Limit response to posts modified before a given ISO8601 compliant date. schema: type: string format: date-time - 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: search_semantics in: query description: How to interpret the search input. schema: type: string enum: - exact - 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: desc - name: orderby in: query description: Sort collection by post attribute. schema: type: string enum: - author - date - id - include - modified - parent - relevance - slug - include_slugs - title default: date - name: search_columns in: query description: Array of column names to be searched. schema: type: array items: enum: - post_title - post_content - post_excerpt type: string - name: slug in: query description: Limit result set to posts with one or more specific slugs. schema: type: array items: type: string - name: status in: query description: Limit result set to posts assigned one or more statuses. schema: type: array items: enum: - publish - future - draft - pending - private - trash - auto-draft - inherit - request-pending - request-confirmed - request-failed - request-completed - acf-disabled - any type: string default: publish - name: tax_relation in: query description: Limit result set based on relationship between multiple taxonomies. schema: type: string enum: - AND - OR - name: categories in: query description: Limit result set to items with specific terms assigned in the categories taxonomy. schema: type: object - name: categories_exclude in: query description: Limit result set to items except those with specific terms assigned in the categories taxonomy. schema: type: object - name: tags in: query description: Limit result set to items with specific terms assigned in the tags taxonomy. schema: type: object - name: tags_exclude in: query description: Limit result set to items except those with specific terms assigned in the tags taxonomy. schema: type: object - name: sticky in: query description: Limit result set to items that are sticky. schema: type: boolean - name: ignore_sticky in: query description: Whether to ignore sticky posts or not. schema: type: boolean default: true - name: format in: query description: Limit result set to items assigned one or more given formats. schema: type: array items: enum: - standard - aside - chat - gallery - link - image - quote - status - video - audio type: string responses: '200': description: A page of results. headers: X-WP-Total: description: Total number of matching items. schema: type: integer examples: - 32 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/Post' '400': $ref: '#/components/responses/BadRequest' /wp/v2/posts/{id}: get: tags: - posts operationId: getPost summary: Get a news post description: Retrieves a single news post by its numeric ID. The `acf` block carries `post_source`, `post_external_link` and `post_link_to_pdf` — the fields MOMA uses to point at externally hosted coverage and PDF publications. parameters: - name: id in: path required: true description: Unique identifier for the post. 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 - name: excerpt_length in: query description: Override the default excerpt length. schema: type: integer - name: password in: query description: The password for the post if it is password protected. schema: type: string responses: '200': description: The requested object. content: application/json: schema: $ref: '#/components/schemas/Post' '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 Post: type: object description: A news item in the MOMA Therapeutics news archive (press releases, media coverage, publications and presentations). properties: id: type: integer date: type: string format: date-time description: Publication date in site local time. date_gmt: type: string format: date-time guid: &id001 type: object properties: rendered: type: string modified: type: string format: date-time modified_gmt: type: string format: date-time slug: type: string status: type: string enum: - publish type: type: string link: type: string format: uri title: *id001 content: &id002 type: object properties: rendered: type: string protected: type: boolean excerpt: *id002 author: type: integer featured_media: type: integer template: type: string class_list: type: array items: type: string _links: type: object description: HAL-style `_links` relations WordPress emits for the object. additionalProperties: true comment_status: type: string ping_status: type: string format: type: string sticky: type: boolean meta: type: object additionalProperties: true categories: type: array items: type: integer tags: type: array items: type: integer acf: type: object description: Advanced Custom Fields payload for a news item. properties: post_external_link: type: - string - boolean description: External URL for coverage hosted off momatx.com. post_link_to_pdf: type: - string - boolean description: Link to a PDF (poster, publication, presentation). post_source: type: - string - boolean description: Attributed source/outlet for the item. better_featured_image: type: - object - 'null' description: Expanded featured-image object injected by the Better REST API Featured Images plugin (id, alt_text, media_details, source_url). 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 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'