openapi: 3.2.0 info: title: Neomorph o Embed 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. 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: o Embed description: oEmbed 1.0 provider endpoint for neomorph.com URLs. Verified anonymously on 2026-08-26. paths: /oembed/1.0/embed: get: tags: - o Embed 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: 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'