openapi: 3.2.0 info: title: Neomorph oEmbed API version: wp/v2 summary: Anonymously readable WordPress REST content API behind neomorph.com. description: The read-only content surface Neomorph exposes at https://neomorph.com/wp-json. Neomorph, Inc. is a venture-backed, clinical-stage biotechnology company at 5590 Morehouse Drive in San Diego, California, founded in 2020 to design molecular glue degraders that reshape E3 ubiquitin ligases into neomorphic surfaces and eliminate previously undruggable proteins. It runs no developer program and markets no product API. This document is an API Evangelist derivation of the WordPress `wp/v2` and `oembed/1.0` routes the site publishes, restricted to the operations verified to return data anonymously on 2026-08-26. See x-api-evangelist-provenance. contact: name: Neomorph, Inc. url: https://neomorph.com/contact/ x-api-evangelist-provenance: Derived by the API Evangelist enrichment pipeline from the live WordPress REST route index at https://neomorph.com/wp-json/ (432 routes across 23 namespaces) and from the per-route OPTIONS descriptors that deployment returns, verified against live anonymous responses on 2026-08-26. Every parameter and every response property below appears verbatim in that deployment's own route/schema descriptors, and every collection count in a description was read from the X-WP-Total response header on that date. Neomorph 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. Write operations and every authenticated route (/wp/v2/users, /wp/v2/settings, /wp/v2/menu-items, /wp/v2/block-types, /wp/v2/elementor_library, the wp-abilities/v1 namespace and the whole plugin-administration surface) are deliberately excluded - they were probed anonymously and returned 401/403. Nothing here was obtained with credentials. servers: - url: https://neomorph.com/wp-json description: Production content API tags: - name: oEmbed description: oEmbed 1.0 provider endpoint for neomorph.com URLs. Verified anonymously on 2026-08-26. paths: /oembed/1.0/embed: get: tags: - oEmbed operationId: getOembed summary: Get an oEmbed response description: Returns the oEmbed 1.0 document for any published neomorph.com permalink. Conforms to the oEmbed 1.0 specification; discovery links for this endpoint are emitted in every page's HTML head as application/json+oembed and text/xml+oembed. parameters: - name: url in: query required: true description: The URL of the resource. schema: type: string format: uri - name: format in: query description: The oEmbed response format to use. schema: type: string enum: - json - xml default: json - name: maxwidth in: query description: The maximum width of the embed frame in pixels. schema: type: integer default: 600 responses: '200': description: The oEmbed document. content: application/json: schema: $ref: '#/components/schemas/OEmbedResponse' '404': $ref: '#/components/responses/NotFound' components: schemas: OEmbedResponse: type: object title: oembed description: 'An oEmbed 1.0 rich response. Verified live: version 1.0, provider_name neomorph.com.' properties: version: type: string description: The oEmbed version number. Always 1.0. provider_name: type: string description: The name of the provider - neomorph.com. provider_url: type: string format: uri description: https://neomorph.com author_name: type: string description: The author of the resource. author_url: type: string format: uri description: Author archive URL. title: type: string description: Title of the resource. type: type: string description: The oEmbed type - rich, video, photo or link. width: type: integer height: type: integer html: type: string description: The HTML embed markup. Error: type: object title: WP_Error description: The WordPress REST error envelope. It is NOT RFC 9457 application/problem+json; it is served as application/json. properties: code: type: string description: Machine-readable error slug, e.g. rest_post_invalid_id. message: type: string description: Human-readable error message. data: type: object description: Error detail. properties: status: type: integer description: HTTP status code. params: type: object description: Per-parameter validation messages, on 400. details: type: object description: Per-parameter validation detail, on 400. required: - code - message responses: InvalidParam: description: Invalid parameter. Returns `rest_invalid_param` with a per-parameter breakdown in `data.params`. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: 'Authentication required. Returns `rest_forbidden` (or a route-specific slug) with `data.status: 401`.' content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: 'No route or resource matched. Returns `rest_no_route` or a `rest_*_invalid_id` slug with `data.status: 404`.' content: application/json: schema: $ref: '#/components/schemas/Error'