Impossible Metals Posts API

Public, unauthenticated read access to the Impossible Metals news, blog and press archive via the WordPress core REST API — testimony, policy positions, Eureka programme updates and partnership announcements. Verified live at 247 published posts on 2026-08-23.

Documentation

Specifications

Other Resources

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/impossible-metals-posts-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

impossible-metals-posts-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Impossible Metals Posts API
  version: wp/v2
  description: 'Public, unauthenticated read access to the Impossible Metals news, blog and press archive (247 published
    posts at capture on 2026-08-23) via the WordPress core REST API. 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: Impossible Metals
    url: https://impossiblemetals.com/contact/
  x-derived-from: https://impossiblemetals.com/wp-json/ route index + per-route HTTP OPTIONS schema documents
  x-derived-on: '2026-08-23'
  x-api-evangelist-note: Third-party profile. Impossible Metals publishes no developer program. This document describes
    the anonymously readable WordPress REST content API served from impossiblemetals.com. Every path, parameter
    and schema was read from the server's own published route index and OPTIONS documents on 2026-08-23 — nothing
    is invented.
servers:
- url: https://impossiblemetals.com/wp-json
  description: Impossible Metals WordPress REST API
tags:
- name: Posts
  description: Impossible Metals blog posts, press releases and announcements on deep-sea mineral collection, policy
    and the Eureka programme.
paths:
  /wp/v2/posts:
    get:
      operationId: listPosts
      summary: List posts
      description: Retrieve a paginated collection of published Impossible Metals posts. 247 posts were live at
        capture.
      tags:
      - Posts
      parameters:
      - name: context
        in: query
        description: Scope under which the request is made; determines fields present in response.
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
      - name: page
        in: query
        description: Current page of the collection.
        schema:
          type: integer
          default: 1
          minimum: 1
      - name: per_page
        in: query
        description: Maximum number of items to be returned in result set.
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
      - name: search
        in: query
        description: Limit results to those matching a string.
        schema:
          type: string
      - name: after
        in: query
        description: Limit response to posts published after a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: modified_after
        in: query
        description: Limit response to posts modified after a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: author
        in: query
        description: Limit result set to posts assigned to specific authors.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: author_exclude
        in: query
        description: Ensure result set excludes posts assigned to specific authors.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: before
        in: query
        description: Limit response to posts published before a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: modified_before
        in: query
        description: Limit response to posts modified before a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: exclude
        in: query
        description: Ensure result set excludes specific IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: include
        in: query
        description: Limit result set to specific IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: search_semantics
        in: query
        description: How to interpret the search input.
        schema:
          type: string
          enum:
          - exact
      - name: offset
        in: query
        description: Offset the result set by a specific number of items.
        schema:
          type: integer
      - name: order
        in: query
        description: Order sort attribute ascending or descending.
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
      - name: orderby
        in: query
        description: Sort collection by post attribute.
        schema:
          type: string
          enum:
          - author
          - date
          - id
          - include
          - modified
          - parent
          - relevance
          - slug
          - include_slugs
          - title
          default: date
      - name: search_columns
        in: query
        description: Array of column names to be searched.
        schema:
          type: array
          default: []
          items:
            enum:
            - post_title
            - post_content
            - post_excerpt
            type: string
      - name: slug
        in: query
        description: Limit result set to posts with one or more specific slugs.
        schema:
          type: array
          items:
            type: string
      - name: status
        in: query
        description: Limit result set to posts assigned one or more statuses.
        schema:
          type: array
          default: publish
          items:
            enum:
            - publish
            - future
            - draft
            - pending
            - private
            - trash
            - auto-draft
            - inherit
            - request-pending
            - request-confirmed
            - request-failed
            - request-completed
            - tribe-ea-success
            - tribe-ea-failed
            - tribe-ea-schedule
            - tribe-ea-pending
            - tribe-ea-draft
            - tribe-ignored
            - any
            type: string
      - name: tax_relation
        in: query
        description: Limit result set based on relationship between multiple taxonomies.
        schema:
          type: string
          enum:
          - AND
          - OR
      - name: categories
        in: query
        description: Limit result set to items with specific terms assigned in the categories taxonomy.
        schema:
          type: object
      - name: categories_exclude
        in: query
        description: Limit result set to items except those with specific terms assigned in the categories taxonomy.
        schema:
          type: object
      - name: tags
        in: query
        description: Limit result set to items with specific terms assigned in the tags taxonomy.
        schema:
          type: object
      - name: tags_exclude
        in: query
        description: Limit result set to items except those with specific terms assigned in the tags taxonomy.
        schema:
          type: object
      - name: sticky
        in: query
        description: Limit result set to items that are sticky.
        schema:
          type: boolean
      - name: ignore_sticky
        in: query
        description: Whether to ignore sticky posts or not.
        schema:
          type: boolean
          default: true
      - name: format
        in: query
        description: Limit result set to items assigned one or more given formats.
        schema:
          type: array
          items:
            enum:
            - standard
            - aside
            - chat
            - gallery
            - link
            - image
            - quote
            - status
            - video
            - audio
            type: string
      responses:
        '200':
          description: List posts — success.
          headers:
            X-WP-Total:
              description: Total number of items in the unpaginated collection.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available at the requested per_page size.
              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': &id001
          description: Invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
              examples:
                invalidParam:
                  value:
                    code: rest_invalid_param
                    message: 'Invalid parameter(s): per_page'
                    data:
                      status: 400
                      params:
                        per_page: per_page must be between 1 (inclusive) and 100 (inclusive)
        '404': &id002
          description: WordPress REST error envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
              examples:
                invalidId:
                  value:
                    code: rest_post_invalid_id
                    message: Invalid post ID.
                    data:
                      status: 404
  /wp/v2/posts/{id}:
    get:
      operationId: getPost
      summary: Get a post
      description: Retrieve a single published Impossible Metals post by its numeric identifier.
      tags:
      - Posts
      parameters:
      - name: id
        in: path
        description: Unique identifier for the post.
        schema:
          type: integer
        required: true
      - name: context
        in: query
        description: Scope under which the request is made; determines fields present in response.
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
      - name: excerpt_length
        in: query
        description: Override the default excerpt length.
        schema:
          type: integer
      - name: password
        in: query
        description: The password for the post if it is password protected.
        schema:
          type: string
      responses:
        '200':
          description: Get a post — success.
          content:
            application/json:
              schema:
                type: object
        '400': *id001
        '404': *id002
components:
  schemas:
    RestError:
      type: object
      description: The WordPress REST API error envelope. Not RFC 9457 problem+json — it is served as application/json
        with a WordPress-specific code/message/data shape.
      required:
      - code
      - message
      - data
      properties:
        code:
          type: string
          description: Machine-readable WordPress error code, e.g. rest_post_invalid_id.
        message:
          type: string
          description: Human-readable message.
        data:
          type: object
          properties:
            status:
              type: integer
              description: HTTP status code.
            params:
              type: object
              description: Per-parameter validation messages, present on rest_invalid_param.
    Post:
      type: object
      properties:
        date:
          type: string
          description: The date the post was published, in the site's timezone.
          format: date-time
        date_gmt:
          type: string
          description: The date the post was published, as GMT.
          format: date-time
        guid:
          type: object
          description: The globally unique identifier for the post.
          readOnly: true
          properties:
            raw:
              type: string
              description: GUID for the post, as it exists in the database.
              readOnly: true
            rendered:
              type: string
              description: GUID for the post, transformed for display.
              readOnly: true
        id:
          type: integer
          description: Unique identifier for the post.
          readOnly: true
        link:
          type: string
          description: URL to the post.
          format: uri
          readOnly: true
        modified:
          type: string
          description: The date the post was last modified, in the site's timezone.
          format: date-time
          readOnly: true
        modified_gmt:
          type: string
          description: The date the post was last modified, as GMT.
          format: date-time
          readOnly: true
        slug:
          type: string
          description: An alphanumeric identifier for the post unique to its type.
        status:
          type: string
          description: A named status for the post.
          enum:
          - publish
          - future
          - draft
          - pending
          - private
          - tribe-ea-success
          - tribe-ea-failed
          - tribe-ea-schedule
          - tribe-ea-pending
          - tribe-ea-draft
          - tribe-ignored
        type:
          type: string
          description: Type of post.
          readOnly: true
        password:
          type: string
          description: A password to protect access to the content and excerpt.
        permalink_template:
          type: string
          description: Permalink template for the post.
          readOnly: true
        generated_slug:
          type: string
          description: Slug automatically generated from the post title.
          readOnly: true
        class_list:
          type: array
          description: An array of the class names for the post container element.
          readOnly: true
          items:
            type: string
        title:
          type: object
          description: The title for the post.
          properties:
            raw:
              type: string
              description: Title for the post, as it exists in the database.
            rendered:
              type: string
              description: HTML title for the post, transformed for display.
              readOnly: true
        content:
          type: object
          description: The content for the post.
          properties:
            raw:
              type: string
              description: Content for the post, as it exists in the database.
            rendered:
              type: string
              description: HTML content for the post, transformed for display.
              readOnly: true
            block_version:
              type: integer
              description: Version of the content block format used by the post.
              readOnly: true
            protected:
              type: boolean
              description: Whether the content is protected with a password.
              readOnly: true
        author:
          type: integer
          description: The ID for the author of the post.
        excerpt:
          type: object
          description: The excerpt for the post.
          properties:
            raw:
              type: string
              description: Excerpt for the post, as it exists in the database.
            rendered:
              type: string
              description: HTML excerpt for the post, transformed for display.
              readOnly: true
            protected:
              type: boolean
              description: Whether the excerpt is protected with a password.
              readOnly: true
        featured_media:
          type: integer
          description: The ID of the featured media for the post.
        comment_status:
          type: string
          description: Whether or not comments are open on the post.
          enum:
          - open
          - closed
        ping_status:
          type: string
          description: Whether or not the post can be pinged.
          enum:
          - open
          - closed
        format:
          type: string
          description: The format for the post.
          enum:
          - standard
          - aside
          - chat
          - gallery
          - link
          - image
          - quote
          - status
          - video
          - audio
        meta:
          type: object
          description: Meta fields.
          properties:
            inline_featured_image:
              type: boolean
            footnotes:
              type: string
        sticky:
          type: boolean
          description: Whether or not the post should be treated as sticky.
        template:
          type: string
          description: The theme file to use to display the post.
        categories:
          type: array
          description: The terms assigned to the post in the category taxonomy.
          items:
            type: integer
        tags:
          type: array
          description: The terms assigned to the post in the post_tag taxonomy.
          items:
            type: integer