openapi: 3.1.0 info: title: Metalenz Search API version: wp/v2 description: 'Public, unauthenticated cross-content search over metalenz.com — press releases and static pages together — returning lightweight id / title / url / type / subtype records (34 searchable objects matched the probe term used at capture). Read-only by construction: the route publishes GET only.' contact: name: Metalenz url: https://metalenz.com/contact-us/ x-derived-from: https://metalenz.com/wp-json/ route index + per-route HTTP OPTIONS schema documents x-derived-on: '2026-08-25' x-api-evangelist-note: Third-party profile. Metalenz is a fabless metasurface-optics (meta-optics) semiconductor company and publishes no developer program, no developer portal and no API documentation; this documents the anonymously readable WordPress REST content API behind metalenz.com. Every path, parameter, enum and property here was read from the server's own published route index and OPTIONS schema documents on 2026-08-25 — nothing is invented. servers: - url: https://metalenz.com/wp-json description: Metalenz WordPress REST API tags: - name: Search description: Federated search across every publicly queryable content type. paths: /wp/v2/search: get: operationId: search summary: Search site content tags: - Search description: Search across the publicly queryable content types on metalenz.com and receive lightweight result stubs which link back to the full object via the `_links.self` embeddable reference. parameters: - name: context in: query schema: type: string enum: - view - embed default: view description: Scope under which the request is made; determines fields present in response. - name: exclude in: query schema: type: array items: type: integer default: [] description: Ensure result set excludes specific IDs. - name: include in: query schema: type: array items: type: integer default: [] description: Limit result set to specific IDs. - name: page in: query schema: type: integer minimum: 1 default: 1 description: Current page of the collection. - name: per_page in: query schema: type: integer minimum: 1 maximum: 100 default: 10 description: Maximum number of items to be returned in result set. - name: search in: query schema: type: string description: Limit results to those matching a string. - name: subtype in: query schema: type: array items: enum: - post - page - category - post_tag - any type: string default: any description: Limit results to items of one or more object subtypes. - name: type in: query schema: type: string enum: - post - term - post-format default: post description: Limit results to items of an object type. responses: '200': description: Search site content headers: X-WP-Total: description: Total number of records matching the query. schema: type: integer X-WP-TotalPages: description: Total number of pages available at the current per_page. schema: type: integer Link: description: RFC 8288 pagination links (rel="next" / rel="prev"). schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/SearchResult' '400': description: Invalid parameter(s) — rest_invalid_param. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Authentication required or insufficient permission — rest_forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' components: schemas: Error: type: object description: The WordPress REST API error envelope returned on every 4xx/5xx. properties: code: type: string description: Machine-readable error code, e.g. rest_post_invalid_id. message: type: string description: Human-readable error message. data: type: object properties: status: type: integer description: The HTTP status code. params: type: object description: Per-parameter validation messages (rest_invalid_param only). details: type: object description: Per-parameter validation detail (rest_invalid_param only). required: - code - message SearchResult: title: search-result type: object properties: id: description: Unique identifier for the object. type: - integer - string readOnly: true title: description: The title for the object. type: string readOnly: true url: description: URL to the object. type: string format: uri readOnly: true type: description: Object type. type: string enum: - post - term - post-format readOnly: true subtype: description: Object subtype. type: string enum: - post - page - category - post_tag readOnly: true