BioAegis Therapeutics Posts API

Post collection — 153 published items at harvest time, spanning News press releases (94), Publications (34), Events (9), Clinical advisory board profiles (6), Leadership profiles (5), Board profiles (4), Feature entries (2) and COVID19 (1).

OpenAPI Specification

bioaegis-therapeutics-posts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: BioAegis Therapeutics Content Posts API
  version: wp/v2
  summary: Anonymously readable WordPress REST content API behind www.bioaegistherapeutics.com.
  description: The read-only content surface BioAegis Therapeutics exposes at https://www.bioaegistherapeutics.com/wp-json. BioAegis Therapeutics is a privately held, clinical-stage biopharmaceutical company developing recombinant human plasma gelsolin (rhu-pGSN) for acute respiratory distress syndrome (BTI-203, Phase 2) and inflammasome-driven decompression sickness; it runs no developer program and markets no product API. This document is an API Evangelist derivation of the WordPress `wp/v2`, `oembed/1.0` and `yoast/v1` route index the site publishes at /wp-json/, restricted to the operations that were verified to return data anonymously on 2026-08-07. Write operations, `/wp/v2/users`, `/wp/v2/settings`, `/wp/v2/menus`, `/wp/v2/menu-locations`, `/wp/v2/sidebars`, `/wp/v2/widget-types`, `/wp/v2/themes`, `/wp/v2/plugins`, `/wp/v2/templates`, `/wp/v2/template-parts`, `/wp/v2/global-styles`, `/wp/v2/block-types`, `/wp/v2/block-patterns`, `/wp/v2/pattern-directory`, `/wp/v2/font-collections`, every `revisions` and `autosaves` sub-resource, the `oembed/1.0/proxy` endpoint, the `wp-abilities/v1` namespace, the `wp-site-health/v1` namespace, the `wp-block-editor/v1` namespace, the `redirection/v1` namespace, the `elementor*` namespaces, the `astra/v1` namespace, the `monsterinsights/v1` namespace, the `nps-survey/v1` namespace, the `duplicate-post/v1` namespace and the authenticated half of `yoast/v1` all require authentication (or return 404/500/502 anonymously) and are deliberately excluded — see x-api-evangelist-provenance.
  contact:
    name: BioAegis Therapeutics
    url: https://www.bioaegistherapeutics.com/contact-us/
  x-api-evangelist-provenance: Derived by the API Evangelist enrichment pipeline from the live WordPress REST route index at https://www.bioaegistherapeutics.com/wp-json/ (308 routes across the namespaces oembed/1.0, redirection/v1, yoast/v1, elementor-one/v1, duplicate-post/v1, elementor/v1, elementor-pro/v1, monsterinsights/v1, astra/v1, elementor/v1/documents, elementor-ai/v1, elementor/v1/feedback, nps-survey/v1, wp/v2, wp-site-health/v1, wp-block-editor/v1 and wp-abilities/v1) and verified against live anonymous responses on 2026-08-07. Every parameter below appears verbatim in the route index `args` for that endpoint, and every operation modelled here returned 200 without credentials. The site is fronted by a Sucuri CloudProxy WAF, which answers /wp/v2/users and /wp/v2/users/me with a 403 HTML interstitial instead of a JSON error — the only place on this surface where the error envelope is not JSON. BioAegis Therapeutics publishes no OpenAPI, no developer documentation 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. Nothing here was obtained with credentials.
  license:
    name: Site content is © BioAegis Therapeutics, Inc. — see Terms of Use
    url: https://www.bioaegistherapeutics.com/terms-of-use/
servers:
- url: https://www.bioaegistherapeutics.com/wp-json
  description: Production content API
tags:
- name: posts
  description: Post collection — 153 published items at harvest time, spanning News press releases (94), Publications (34), Events (9), Clinical advisory board profiles (6), Leadership profiles (5), Board profiles (4), Feature entries (2) and COVID19 (1).
paths:
  /wp/v2/posts:
    get:
      tags:
      - posts
      operationId: listPosts
      summary: List posts
      description: Lists published posts, newest first. 153 items at harvest time. `content.rendered` and `excerpt.rendered` are populated, so this operation returns full press-release prose. Page size is capped at 100; total count and page count come back in `X-WP-Total` and `X-WP-TotalPages`, and `Link` carries RFC 8288 `prev`/`next` relations.
      parameters:
      - $ref: '#/components/parameters/Context'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/After'
      - $ref: '#/components/parameters/Before'
      - $ref: '#/components/parameters/Exclude'
      - $ref: '#/components/parameters/Include'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Order'
      - $ref: '#/components/parameters/Fields'
      - name: slug
        in: query
        description: Limit the result set to posts with one or more specific slugs.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: false
      - name: categories
        in: query
        description: Limit the result set to posts assigned to specific category IDs.
        schema:
          type: array
          items:
            type: integer
          examples:
          - - 11
        style: form
        explode: false
      - name: categories_exclude
        in: query
        description: Exclude posts assigned to specific category IDs.
        schema:
          type: array
          items:
            type: integer
        style: form
        explode: false
      - 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: sticky
        in: query
        description: Limit the result set to sticky posts.
        schema:
          type: boolean
      responses:
        '200':
          description: A page of posts
          headers:
            X-WP-Total:
              $ref: '#/components/headers/XWPTotal'
            X-WP-TotalPages:
              $ref: '#/components/headers/XWPTotalPages'
            Link:
              $ref: '#/components/headers/LinkPagination'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Post'
        '400':
          $ref: '#/components/responses/InvalidParam'
  /wp/v2/posts/{id}:
    get:
      tags:
      - posts
      operationId: getPost
      summary: Get a post
      description: Retrieves a single published post by its numeric ID.
      parameters:
      - name: id
        in: path
        required: true
        description: Unique identifier for the post.
        schema:
          type: integer
          examples:
          - 5904
      - $ref: '#/components/parameters/Context'
      - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          description: The post
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Post'
        '404':
          $ref: '#/components/responses/InvalidPostId'
components:
  schemas:
    Post:
      type: object
      description: A published post. On this deployment `author` is an integer that cannot be resolved — /wp/v2/users is blocked at the edge by the Sucuri WAF — and `tags` is always an empty array.
      properties:
        id:
          type: integer
          examples:
          - 5904
        date:
          type: string
          format: date-time
        date_gmt:
          type: string
          format: date-time
        guid:
          $ref: '#/components/schemas/RenderedText'
        modified:
          type: string
          format: date-time
        modified_gmt:
          type: string
          format: date-time
        slug:
          type: string
        status:
          type: string
          examples:
          - publish
        type:
          type: string
          examples:
          - post
        link:
          type: string
          format: uri
        title:
          $ref: '#/components/schemas/RenderedText'
        content:
          $ref: '#/components/schemas/RenderedText'
        excerpt:
          $ref: '#/components/schemas/RenderedText'
        author:
          type: integer
          description: Author user ID. Not resolvable anonymously on this deployment.
        featured_media:
          type: integer
          description: Attachment ID of the featured image; 0 when none. Resolvable via /wp/v2/media/{id}.
        comment_status:
          type: string
        ping_status:
          type: string
        sticky:
          type: boolean
        template:
          type: string
        format:
          type: string
        meta:
          type: object
        categories:
          type: array
          description: Category term IDs. Resolvable via /wp/v2/categories/{id}.
          items:
            type: integer
        tags:
          type: array
          description: Post tag term IDs. Always empty on this deployment.
          items:
            type: integer
        class_list:
          type: array
          items:
            type: string
        yoast_head:
          type: string
          description: Pre-rendered SEO head HTML injected by the Yoast SEO plugin.
        yoast_head_json:
          type: object
          description: Parsed SEO head, including the schema.org JSON-LD graph under `schema`.
        _links:
          type: object
          description: HAL-style link relations — self, collection, about, author, replies, version-history, wp:attachment, wp:term, curies.
    RenderedText:
      type: object
      description: A rendered-HTML text field.
      properties:
        rendered:
          type: string
        protected:
          type: boolean
    RestError:
      type: object
      description: The WordPress REST error envelope. This is NOT RFC 9457 problem+json — it is served as `application/json` with a `code`/`message`/`data.status` shape, and the HTTP status is duplicated inside `data.status`.
      required:
      - code
      - message
      - data
      properties:
        code:
          type: string
          description: Machine-readable error code.
          examples:
          - rest_post_invalid_id
        message:
          type: string
          description: Human-readable message.
        data:
          type: object
          properties:
            status:
              type: integer
              description: HTTP status code, repeated in the body.
            params:
              type: object
              description: Per-parameter validation messages, present on rest_invalid_param.
              additionalProperties:
                type: string
            details:
              type: object
              description: Per-parameter structured validation detail, present on rest_invalid_param.
  headers:
    XWPTotal:
      description: Total number of items in the collection.
      schema:
        type: integer
        examples:
        - 153
    LinkPagination:
      description: RFC 8288 Link header carrying `prev` and `next` relations for the collection.
      schema:
        type: string
    XWPTotalPages:
      description: Total number of pages available at the requested page size.
      schema:
        type: integer
        examples:
        - 153
  parameters:
    Search:
      name: search
      in: query
      description: Limit results to those matching a string.
      schema:
        type: string
    Fields:
      name: _fields
      in: query
      description: Comma-separated list of fields to limit the response to. The most effective way to keep page-body responses small on this site, where `content.rendered` can exceed 100KB.
      schema:
        type: string
        examples:
        - id,slug,title,link,date,modified
      style: form
      explode: false
    Include:
      name: include
      in: query
      description: Limit result set to specific IDs.
      schema:
        type: array
        items:
          type: integer
      style: form
      explode: false
    Before:
      name: before
      in: query
      description: Limit response to items published before a given ISO 8601 compliant date.
      schema:
        type: string
        format: date-time
    Order:
      name: order
      in: query
      description: Order sort attribute ascending or descending.
      schema:
        type: string
        enum:
        - asc
        - desc
        default: desc
    Exclude:
      name: exclude
      in: query
      description: Ensure result set excludes specific IDs.
      schema:
        type: array
        items:
          type: integer
      style: form
      explode: false
    Offset:
      name: offset
      in: query
      description: Offset the result set by a specific number of items.
      schema:
        type: integer
    PerPage:
      name: per_page
      in: query
      description: Maximum number of items to be returned in the result set.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
    Context:
      name: context
      in: query
      description: Scope under which the request is made; determines fields present in the response. Anonymous callers may only use `view` and `embed`.
      schema:
        type: string
        enum:
        - view
        - embed
        - edit
        default: view
    Page:
      name: page
      in: query
      description: Current page of the collection (1-based).
      schema:
        type: integer
        minimum: 1
        default: 1
    After:
      name: after
      in: query
      description: Limit response to items published after a given ISO 8601 compliant date.
      schema:
        type: string
        format: date-time
  responses:
    InvalidParam:
      description: A query parameter failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RestError'
          examples:
            perPageOutOfBounds:
              value:
                code: rest_invalid_param
                message: 'Invalid parameter(s): per_page'
                data:
                  status: 400
                  params:
                    per_page: per_page must be between 1 (inclusive) and 100 (inclusive)
    InvalidPostId:
      description: No published object exists with that ID.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RestError'
          examples:
            invalidPostId:
              value:
                code: rest_post_invalid_id
                message: Invalid post ID.
                data:
                  status: 404