Metalenz Press Releases API

Public, unauthenticated read access to the Metalenz newsroom via the WordPress core REST API. The `post` content type on metalenz.com is registered with the label "Press Releases" and carries the company's press releases, product launches, funding announcements and award notices back to the February 2021 launch out of stealth. Verified live at 26 published items.

Business capability
Media Relations Management BC-850.40

Operations 2

GET /wp/v2/posts List press releases #
GET /wp/v2/posts/{id} Get press release #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/metalenz-press-releases-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

metalenz-press-releases-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Metalenz Press Releases API
  version: wp/v2
  description: 'Public, unauthenticated read access to the Metalenz newsroom archive via the WordPress core REST API. The `post` content type on metalenz.com is registered with the label "Press Releases" and carries the company''s press releases, product announcements and media-coverage notices (26 published items at capture). Anonymous access is read-only: the collection answers `Allow: GET` without credentials. Write methods exist on the same routes but require WordPress application-password authentication and are not part of the public surface.'
  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: Press Releases
  description: Metalenz press releases, product announcements and newsroom items.
paths:
  /wp/v2/posts:
    get:
      operationId: listPressReleases
      summary: List press releases
      tags:
      - Press Releases
      description: Retrieve a paginated collection of published Metalenz press releases (26 at capture).
      parameters:
      - name: after
        in: query
        schema:
          type: string
          format: date-time
        description: Limit response to posts published after a given ISO8601 compliant date.
      - name: author
        in: query
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to posts assigned to specific authors.
      - name: author_exclude
        in: query
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes posts assigned to specific authors.
      - name: before
        in: query
        schema:
          type: string
          format: date-time
        description: Limit response to posts published before a given ISO8601 compliant date.
      - name: categories
        in: query
        schema:
          type:
          - object
          - array
        description: Limit result set to items with specific terms assigned in the categories taxonomy.
      - name: categories_exclude
        in: query
        schema:
          type:
          - object
          - array
        description: Limit result set to items except those with specific terms assigned in the categories taxonomy.
      - name: context
        in: query
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          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: format
        in: query
        schema:
          type: array
          items:
            enum:
            - standard
            - aside
            - chat
            - gallery
            - link
            - image
            - quote
            - status
            - video
            - audio
            type: string
        description: Limit result set to items assigned one or more given formats.
      - name: ignore_sticky
        in: query
        schema:
          type: boolean
          default: true
        description: Whether to ignore sticky posts or not.
      - name: include
        in: query
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to specific IDs.
      - name: modified_after
        in: query
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified after a given ISO8601 compliant date.
      - name: modified_before
        in: query
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified before a given ISO8601 compliant date.
      - name: offset
        in: query
        schema:
          type: integer
        description: Offset the result set by a specific number of items.
      - name: order
        in: query
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
        description: Order sort attribute ascending or descending.
      - name: orderby
        in: query
        schema:
          type: string
          enum:
          - author
          - date
          - id
          - include
          - modified
          - parent
          - relevance
          - slug
          - include_slugs
          - title
          default: date
        description: Sort collection by post attribute.
      - 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: search_columns
        in: query
        schema:
          type: array
          items:
            enum:
            - post_title
            - post_content
            - post_excerpt
            type: string
          default: []
        description: Array of column names to be searched.
      - name: search_semantics
        in: query
        schema:
          type: string
          enum:
          - exact
        description: How to interpret the search input.
      - name: slug
        in: query
        schema:
          type: array
          items:
            type: string
        description: Limit result set to posts with one or more specific slugs.
      - name: status
        in: query
        schema:
          type: array
          items:
            enum:
            - publish
            - future
            - draft
            - pending
            - private
            - trash
            - auto-draft
            - inherit
            - request-pending
            - request-confirmed
            - request-failed
            - request-completed
            - acf-disabled
            - dp-rewrite-republish
            - any
            type: string
          default: publish
        description: Limit result set to posts assigned one or more statuses.
      - name: sticky
        in: query
        schema:
          type: boolean
        description: Limit result set to items that are sticky.
      - name: tags
        in: query
        schema:
          type:
          - object
          - array
        description: Limit result set to items with specific terms assigned in the tags taxonomy.
      - name: tags_exclude
        in: query
        schema:
          type:
          - object
          - array
        description: Limit result set to items except those with specific terms assigned in the tags taxonomy.
      - name: tax_relation
        in: query
        schema:
          type: string
          enum:
          - AND
          - OR
        description: Limit result set based on relationship between multiple taxonomies.
      responses:
        '200':
          description: List press releases
          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/Post'
        '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'
  /wp/v2/posts/{id}:
    get:
      operationId: getPressRelease
      summary: Get press release
      tags:
      - Press Releases
      description: Retrieve a single Metalenz press release by its numeric WordPress ID.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Unique identifier for the post.
      - name: context
        in: query
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: excerpt_length
        in: query
        schema:
          type: integer
        description: Override the default excerpt length.
      - name: password
        in: query
        schema:
          type: string
        description: The password for the post if it is password protected.
      responses:
        '200':
          description: Get press release
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Post'
        '400':
          description: Invalid parameter(s) — rest_invalid_param.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No post exists with that ID — rest_post_invalid_id.
          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
    Post:
      title: post
      type: object
      properties:
        date:
          description: The date the post was published, in the site's timezone.
          type:
          - string
          - 'null'
          format: date-time
        date_gmt:
          description: The date the post was published, as GMT.
          type:
          - string
          - 'null'
          format: date-time
        guid:
          description: The globally unique identifier for the post.
          type: object
          readOnly: true
          properties:
            raw:
              description: GUID for the post, as it exists in the database.
              type: string
              readOnly: true
            rendered:
              description: GUID for the post, transformed for display.
              type: string
              readOnly: true
        id:
          description: Unique identifier for the post.
          type: integer
          readOnly: true
        link:
          description: URL to the post.
          type: string
          format: uri
          readOnly: true
        modified:
          description: The date the post was last modified, in the site's timezone.
          type: string
          format: date-time
          readOnly: true
        modified_gmt:
          description: The date the post was last modified, as GMT.
          type: string
          format: date-time
          readOnly: true
        slug:
          description: An alphanumeric identifier for the post unique to its type.
          type: string
        status:
          description: A named status for the post.
          type: string
          enum:
          - publish
          - future
          - draft
          - pending
          - private
          - acf-disabled
        type:
          description: Type of post.
          type: string
          readOnly: true
        password:
          description: A password to protect access to the content and excerpt.
          type: string
        permalink_template:
          description: Permalink template for the post.
          type: string
          readOnly: true
        generated_slug:
          description: Slug automatically generated from the post title.
          type: string
          readOnly: true
        class_list:
          description: An array of the class names for the post container element.
          type: array
          readOnly: true
          items:
            type: string
        title:
          description: The title for the post.
          type: object
          properties:
            raw:
              description: Title for the post, as it exists in the database.
              type: string
            rendered:
              description: HTML title for the post, transformed for display.
              type: string
              readOnly: true
        content:
          description: The content for the post.
          type: object
          properties:
            raw:
              description: Content for the post, as it exists in the database.
              type: string
            rendered:
              description: HTML content for the post, transformed for display.
              type: string
              readOnly: true
            block_version:
              description: Version of the content block format used by the post.
              type: integer
              readOnly: true
            protected:
              description: Whether the content is protected with a password.
              type: boolean
              readOnly: true
        author:
          description: The ID for the author of the post.
          type: integer
        excerpt:
          description: The excerpt for the post.
          type: object
          properties:
            raw:
              description: Excerpt for the post, as it exists in the database.
              type: string
            rendered:
              description: HTML excerpt for the post, transformed for display.
              type: string
              readOnly: true
            protected:
              description: Whether the excerpt is protected with a password.
              type: boolean
              readOnly: true
        featured_media:
          description: The ID of the featured media for the post.
          type: integer
        comment_status:
          description: Whether or not comments are open on the post.
          type: string
          enum:
          - open
          - closed
        ping_status:
          description: Whether or not the post can be pinged.
          type: string
          enum:
          - open
          - closed
        format:
          description: The format for the post.
          type: string
          enum:
          - standard
          - aside
          - chat
          - gallery
          - link
          - image
          - quote
          - status
          - video
          - audio
        meta:
          description: Meta fields.
          type: object
          properties:
            _acf_changed:
              type: boolean
              title: ''
              description: ''
              default: false
            content-type:
              type: string
              title: ''
              description: ''
              default: ''
            rank_math_lock_modified_date:
              type: boolean
              title: ''
              description: ''
              default: false
            _sitemap_exclude:
              type: boolean
              title: ''
              description: ''
              default: false
            _sitemap_priority:
              type: string
              title: ''
              description: ''
              default: ''
            _sitemap_frequency:
              type: string
              title: ''
              description: ''
              default: ''
            footnotes:
              type: string
              title: ''
              description: ''
              default: ''
        sticky:
          description: Whether or not the post should be treated as sticky.
          type: boolean
        template:
          description: The theme file to use to display the post.
          type: string
        categories:
          description: The terms assigned to the post in the category taxonomy.
          type: array
          items:
            type: integer
        tags:
          description: The terms assigned to the post in the post_tag taxonomy.
          type: array
          items:
            type: integer
        acf:
          description: ACF field data
          type: object
      links:
      - rel: https://api.w.org/action-publish
        title: The current user can publish this post.
        href: https://metalenz.com/wp-json/wp/v2/posts/{id}
        targetSchema:
          type: object
          properties:
            status:
              type: string
              enum:
              - publish
              - future
      - rel: https://api.w.org/action-unfiltered-html
        title: The current user can post unfiltered HTML markup and JavaScript.
        href: https://metalenz.com/wp-json/wp/v2/posts/{id}
        targetSchema:
          type: object
          properties:
            content:
              raw:
                type: string
      - rel: https://api.w.org/action-sticky
        title: The current user can sticky this post.
        href: https://metalenz.com/wp-json/wp/v2/posts/{id}
        targetSchema:
          type: object
          properties:
            sticky:
              type: boolean
      - rel: https://api.w.org/action-assign-author
        title: The current user can change the author on this post.
        href: https://metalenz.com/wp-json/wp/v2/posts/{id}
        targetSchema:
          type: object
          properties:
            author:
              type: integer
      - rel: https://api.w.org/action-assign-categories
        title: The current user can assign terms in the category taxonomy.
        href: https://metalenz.com/wp-json/wp/v2/posts/{id}
        targetSchema:
          type: object
          properties:
            categories:
              type: array
              items:
                type: integer
      - rel: https://api.w.org/action-create-categories
        title: The current user can create terms in the category taxonomy.
        href: https://metalenz.com/wp-json/wp/v2/posts/{id}
        targetSchema:
          type: object
          properties:
            categories:
              type: array
              items:
                type: integer
      - rel: https://api.w.org/action-assign-tags
        title: The current user can assign terms in the post_tag taxonomy.
        href: https://metalenz.com/wp-json/wp/v2/posts/{id}
        targetSchema:
          type: object
          properties:
            tags:
              type: array
              items:
                type: integer
      - rel: https://api.w.org/action-create-tags
        title: The current user can create terms in the post_tag taxonomy.
        href: https://metalenz.com/wp-json/wp/v2/posts/{id}
        targetSchema:
          type: object
          properties:
            tags:
              type: array
              items:
                type: integer