Nacuity Pharmaceuticals · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Nacuity Pharmaceuticals Content API

13 actions 13 updates update extends ./../openapi/nacuity-pharmaceuticals-content-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Nacuity Pharmaceuticals's API. It is a proposal applied on top of the contract, not a document Nacuity Pharmaceuticals publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-overlay-note

Targets 13

$.info
$.servers
$.tags
$.paths.*.get
$.paths['/wp/v2/pages/{id}'].get
$.paths['/wp/v2/posts'].get
$.paths['/wp/v2/portfolio'].get
$.paths['/yoast/v1/get_head'].get
$.components.schemas
$.components.schemas.Page.properties.yoast_head_json
$.components.schemas.Error
$.components.headers
$.paths

OpenAPI Overlay

nacuity-pharmaceuticals-content-overlay.yaml Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Nacuity Pharmaceuticals Content API
  version: '1.0.0'
  x-description: >-
    An OpenAPI Overlay 1.0.0 document recording the enhancements API Evangelist applied on top of
    the bare WordPress route index published at https://www.nacuity.com/wp-json/. The route index is
    a machine-readable list of paths, methods and argument names — it carries no summaries, no
    descriptions, no response schemas, no examples, no tags and no operationIds. Everything this
    overlay adds is either an observation from a live anonymous probe on 2026-08-04 or editorial
    context; no capability is asserted that the API does not have.
x-generated: '2026-08-04'
x-method: generated
x-source: openapi/nacuity-pharmaceuticals-content-openapi.yml
extends: ./../openapi/nacuity-pharmaceuticals-content-openapi.yml
actions:
- target: $.info
  description: >-
    Name the surface, state plainly that Nacuity Pharmaceuticals runs no developer program, and
    carry the provenance of the derivation. The route index supplies only a site name and
    description.
  update:
    x-overlay-note: Provenance and framing added by API Evangelist; not published by the provider.
- target: $.servers
  description: Declare the production server. The route index has no servers construct.
  update:
    x-overlay-note: Server URL taken from the `url` field of the /wp-json/ index document.
- target: $.tags
  description: >-
    Group 22 operations into nine functional tags — pages, posts, media, portfolio, taxonomy,
    search, discovery, oembed, seo — and annotate each with the count actually observed, so a reader
    learns immediately that posts, portfolio and tags are empty.
  update:
    x-overlay-note: Tags and their observed counts added by API Evangelist.
- target: $.paths.*.get
  description: >-
    Add operationId, summary and description to every operation. WordPress publishes none of these;
    an agent binding tools to this API has nothing to name them with otherwise.
  update:
    x-overlay-note: operationId/summary/description authored by API Evangelist.
- target: $.paths['/wp/v2/pages/{id}'].get
  description: >-
    Record the single most consequential finding of the probe — content.rendered and
    excerpt.rendered are empty strings on all 29 published pages, because the bodies live in
    page-builder post meta. A consumer must fetch the HTML `link` for text. Nothing in the route
    index reveals this; it is only visible from a live response.
  update:
    x-overlay-note: Empty-content finding, verified on pages 23, 80 and 630 on 2026-08-04.
- target: $.paths['/wp/v2/posts'].get
  description: Record that the posts collection is registered but empty (X-WP-Total 0) — press releases are pages under parent 99.
  update:
    x-overlay-note: Emptiness verified via X-WP-Total on 2026-08-04.
- target: $.paths['/wp/v2/portfolio'].get
  description: Record that the theme-registered `portfolio` custom post type is empty (X-WP-Total 0).
  update:
    x-overlay-note: Emptiness verified via X-WP-Total on 2026-08-04.
- target: $.paths['/yoast/v1/get_head'].get
  description: >-
    Include the one anonymously readable operation in the yoast/v1 namespace and mark the other 40
    as gated, so a reader does not treat the namespace as open.
  update:
    x-overlay-note: Anonymous readability verified per-endpoint on 2026-08-04.
- target: $.components.schemas
  description: >-
    Author twelve response schemas — ApiIndex, Page, Post, MediaItem, Term, SearchResult, PostType,
    Taxonomy, Oembed, YoastHead, RenderedText, Error — from observed response bodies. The route
    index describes request arguments only and says nothing about what comes back.
  update:
    x-overlay-note: Response schemas derived from live response bodies, not from a provider document.
- target: $.components.schemas.Page.properties.yoast_head_json
  description: >-
    Document the Yoast block as the only per-page descriptive text the API returns, including the
    schema.org @graph. This is what makes the surface useful despite the empty content fields.
  update:
    x-overlay-note: See json-ld/nacuity-pharmaceuticals-organization.jsonld for the graph, saved verbatim.
- target: $.components.schemas.Error
  description: >-
    Document the WordPress {code, message, data} envelope and state explicitly that it is NOT
    RFC 9457 problem+json, so a client does not build against the wrong error contract.
  update:
    x-overlay-note: Envelope and every error slug captured verbatim from live 400/401/403/404 responses.
- target: $.components.headers
  description: Declare X-WP-Total, X-WP-TotalPages and the RFC 8288 Link header as documented response headers.
  update:
    x-overlay-note: Pagination totals are header-only; the response body is a bare array.
- target: $.paths
  description: >-
    RESTRICT the surface. The live route index registers 211 routes across nine namespaces, most of
    them write operations or administrative endpoints that refuse anonymous callers. This document
    models only the 22 GET operations verified to return 200 without credentials. Everything
    excluded is itemised in authentication/nacuity-pharmaceuticals-authentication.yml with the
    status and error slug it actually returned.
  update:
    x-overlay-note: 22 of 211 routes modelled — a deliberate restriction, not an omission.