Belharra Therapeutics · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Belharra Therapeutics Content API

12 actions 12 updates update extends openapi/belharra-therapeutics-content-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Belharra Therapeutics's API. It is a proposal applied on top of the contract, not a document Belharra Therapeutics publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-profilex-apievangelist-sourcex-apievangelist-harvestedx-apievangelist-derivedx-apievangelist-provider-publishes-openapix-apievangelist-scopex-apievangelist-excludedx-apievangelist-agent-surface

Targets 9

$.info
$.servers[0]
$.tags
$.paths..responses['200'].headers
$.paths..responses['400']
$.components.schemas
$.components.schemas.CustomPost
$.components.schemas.Error
$.components.parameters

OpenAPI Overlay

belharra-therapeutics-content-overlay.yaml Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Belharra Therapeutics Content API
  version: 1.0.0
extends: openapi/belharra-therapeutics-content-openapi.yml
x-api-evangelist:
  generated: '2026-08-06'
  method: generated
  source: >-
    Records the enhancements the API Evangelist enrichment pipeline applied on top of the WordPress
    REST route index Belharra Therapeutics publishes at https://belharratx.com/wp-json/. Belharra
    publishes no OpenAPI, so the base document is itself a derivation; this overlay captures what we
    added beyond the mechanical route-to-path mapping, so a later round can tell provider fact from
    API Evangelist judgement.
actions:
- target: $.info
  description: Stamp the independent-profile provenance on the document root.
  update:
    x-apievangelist-profile: https://apievangelist.com/
    x-apievangelist-source: https://belharratx.com/wp-json/
    x-apievangelist-harvested: '2026-08-06'
    x-apievangelist-derived: true
    x-apievangelist-provider-publishes-openapi: false

- target: $.info
  description: >-
    Record that the surface was restricted to operations verified to return data without
    credentials, and enumerate what was deliberately dropped.
  update:
    x-apievangelist-scope: anonymous-read-only
    x-apievangelist-excluded:
      write_operations: >-
        Every POST/PUT/PATCH/DELETE route in the 198-route index. None was exercised.
      auth_gated_401:
      - /wp/v2/settings
      - /wp/v2/menus
      - /wp/v2/menu-locations
      - /wp/v2/themes
      - /wp/v2/plugins
      - /wp/v2/block-types
      - /wp/v2/font-collections
      - /wp/v2/icons
      - /wp/v2/sidebars
      - /wp/v2/widget-types
      - /wp/v2/templates
      - /wp/v2/template-parts
      - /wp/v2/global-styles
      - /wp/v2/block-patterns/patterns
      - /wp/v2/block-patterns/categories
      - /wp/v2/pattern-directory/patterns
      - /wp-abilities/v1/*
      - /wp-site-health/v1/*
      - /podcastplayer/v1/*
      refused_403:
      - path: /wp/v2/comments
        code: rest_comment_disabled
      - path: /contact-form-7/v1/contact-forms
        code: wpcf7_forbidden
      admin_plugin_namespaces:
      - redirection/v1
      - duplicate-post/v1
      - wpe/cache-plugin/v1
      - wpe_sign_on_plugin/v1

- target: $.info
  description: >-
    Record the agent-surface finding explicitly, so no later round mistakes the registered
    Abilities API for a published agent endpoint.
  update:
    x-apievangelist-agent-surface:
      wp_abilities_registered: true
      wp_abilities_anonymous_status: 401
      wp_abilities_anonymous_code: rest_forbidden
      mcp_claimed: false
      note: >-
        The WordPress Abilities API (wp-abilities/v1) is registered but auth-gated. It is a core
        administrative capability registry bound to an authenticated WordPress user, not an agent
        endpoint Belharra publishes. No MCPServer pointer is emitted and no tool list is derived.

- target: $.info
  description: >-
    Record the soft-404 finding on the parked alias domain so a later round does not credit its
    blanket 200s.
  update:
    x-apievangelist-soft-404:
      host: belharratherapeutics.com
      verdict: parked-lander-catch-all
      control_path: /this-path-does-not-exist-xyz123
      control_body_bytes: 114
      note: >-
        Answers 200 on /.well-known/agent-card.json, /.well-known/agent.json, /openapi.json and
        /.well-known/security.txt with a body byte-identical to the nonsense control path. Nothing
        from this host is credited.

- target: $.servers[0]
  description: Record the deployment platform observed in response headers.
  update:
    x-apievangelist-platform:
      cms: WordPress
      hosting: WP Engine
      cdn: Cloudflare
      response_headers: [x-powered-by, x-cacheable, x-cache, x-cache-group, cf-cache-status, x-robots-tag]
      robots: 'x-robots-tag: noindex on every /wp-json response'

- target: $.tags
  description: >-
    Tag names, descriptions and the whole tag taxonomy are API Evangelist additions — the route
    index carries no grouping of any kind. The custom-types tag in particular groups Belharra's
    three site-specific post types, which WordPress registers alongside core types with no
    distinction.
  update: {}

- target: "$.paths..responses['200'].headers"
  description: >-
    X-WP-Total, X-WP-TotalPages and the RFC 8288 Link header are documented here from observed
    response headers. They are absent from the route index, which describes only request args.
  update: {}

- target: "$.paths..responses['400']"
  description: >-
    The 400 and 404 responses, and the worked error examples attached to them, were captured by
    deliberately issuing failing requests (per_page=999, posts/999999, oembed with no url) and
    recording the real bodies. The route index declares no responses at all.
  update: {}

- target: $.components.schemas
  description: >-
    Every schema is an API Evangelist reconstruction from live anonymous response bodies, not a
    provider-published model. Field sets were read from actual `context=view` responses per
    collection. The `acf` property is typed as an open object on purpose: the ACF field definitions
    are 401-gated, so any concrete shape would be invention.
  update: {}

- target: $.components.schemas.CustomPost
  description: >-
    A single schema is shared by press-release, company-news and multimedia-file because live
    responses from all three returned an identical field set. This is an API Evangelist
    consolidation; WordPress registers them as three independent types.
  update:
    x-apievangelist-consolidated-from: [press-release, company-news, multimedia-file]
    x-apievangelist-verified: >-
      Field sets compared across live anonymous context=view responses from all three collections
      on 2026-08-06 and found identical.

- target: $.components.schemas.Error
  description: >-
    Explicitly typed as the WordPress envelope, not RFC 9457. Called out because the absence of
    problem+json is a scored fact, not an omission in this document.
  update:
    x-apievangelist-rfc9457: false

- target: $.components.parameters
  description: >-
    Every parameter is copied verbatim from the `args` block the route index publishes for that
    endpoint. Descriptions and enum values are upstream WordPress; only the OpenAPI packaging and
    the per-collection examples are ours.
  update: {}