Impossible Metals Discovery API

API root, route index, authentication advertisement and site identity.

Operations 2

GET / Get the API root #
GET /wp/v2/statuses List post statuses #

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-discovery-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

impossible-metals-discovery-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Impossible Metals Discovery API
  version: wp/v2
  description: 'Public, unauthenticated discovery surface for the impossiblemetals.com WordPress REST API: the API root, which enumerates all 269 routes across 23 namespaces along with site identity and the supported authentication mechanism, plus the published author and post-status vocabularies.'
  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: Discovery
  description: API root, route index, authentication advertisement and site identity.
paths:
  /:
    get:
      operationId: getApiRoot
      summary: Get the API root
      description: 'Retrieve the WordPress REST API root document: site name and description, namespaces, the full route index with per-route arguments, and the advertised authentication mechanism.'
      tags:
      - Discovery
      parameters:
      - name: context
        in: query
        description: The context parameter.
        schema:
          default: view
      responses:
        '200':
          description: Get the API root — success.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
        '400':
          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':
          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/statuses:
    get:
      operationId: listStatuses
      summary: List post statuses
      description: Retrieve the publicly visible post statuses.
      tags:
      - Discovery
      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
      responses:
        '200':
          description: List post statuses — success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Status'
        '400':
          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':
          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
components:
  schemas:
    Status:
      type: object
      properties:
        name:
          type: string
          description: The title for the status.
          readOnly: true
        private:
          type: boolean
          description: Whether posts with this status should be private.
          readOnly: true
        protected:
          type: boolean
          description: Whether posts with this status should be protected.
          readOnly: true
        public:
          type: boolean
          description: Whether posts of this status should be shown in the front end of the site.
          readOnly: true
        queryable:
          type: boolean
          description: Whether posts with this status should be publicly-queryable.
          readOnly: true
        show_in_list:
          type: boolean
          description: Whether to include posts in the edit listing for their post type.
          readOnly: true
        slug:
          type: string
          description: An alphanumeric identifier for the status.
          readOnly: true
        date_floating:
          type: boolean
          description: Whether posts of this status may have floating published dates.
          readOnly: true
    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.