Impossible Metals Taxonomy API

Public, unauthenticated read access to the classification vocabularies behind impossiblemetals.com: post categories, post tags, the registered post types and the registered taxonomies. Verified live at 16 categories and 2 tags on 2026-08-23.

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-taxonomy-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-taxonomy-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Impossible Metals Taxonomy API
  version: wp/v2
  description: 'Public, unauthenticated read access to the classification vocabularies behind impossiblemetals.com:
    post categories (16 terms at capture), post tags (2 terms), the registered post types and the registered taxonomies.
    These are the vocabularies that organise the company''s public writing on deep-sea mining.'
  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: Taxonomy
  description: Categories, tags and the registered type/taxonomy vocabularies.
paths:
  /wp/v2/categories:
    get:
      operationId: listCategories
      summary: List categories
      description: Retrieve the post category terms. 16 terms were live at capture.
      tags:
      - Taxonomy
      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: 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: order
        in: query
        description: Order sort attribute ascending or descending.
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
      - name: orderby
        in: query
        description: Sort collection by term attribute.
        schema:
          type: string
          enum:
          - id
          - include
          - name
          - slug
          - include_slugs
          - term_group
          - description
          - count
          default: name
      - name: hide_empty
        in: query
        description: Whether to hide terms not assigned to any posts.
        schema:
          type: boolean
          default: false
      - name: parent
        in: query
        description: Limit result set to terms assigned to a specific parent.
        schema:
          type: integer
      - name: post
        in: query
        description: Limit result set to terms assigned to a specific post.
        schema:
          type: integer
      - name: slug
        in: query
        description: Limit result set to terms with one or more specific slugs.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: List categories — success.
          headers: &id003
            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/Category'
        '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/categories/{id}:
    get:
      operationId: getCategory
      summary: Get a category
      description: Retrieve a single category term by its numeric identifier.
      tags:
      - Taxonomy
      parameters:
      - name: id
        in: path
        description: Unique identifier for the term.
        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
      responses:
        '200':
          description: Get a category — success.
          content:
            application/json:
              schema:
                type: object
        '400': *id001
        '404': *id002
  /wp/v2/tags:
    get:
      operationId: listTags
      summary: List tags
      description: Retrieve the post tag terms. 2 terms were live at capture.
      tags:
      - Taxonomy
      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: 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: 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: asc
      - name: orderby
        in: query
        description: Sort collection by term attribute.
        schema:
          type: string
          enum:
          - id
          - include
          - name
          - slug
          - include_slugs
          - term_group
          - description
          - count
          default: name
      - name: hide_empty
        in: query
        description: Whether to hide terms not assigned to any posts.
        schema:
          type: boolean
          default: false
      - name: post
        in: query
        description: Limit result set to terms assigned to a specific post.
        schema:
          type: integer
      - name: slug
        in: query
        description: Limit result set to terms with one or more specific slugs.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: List tags — success.
          headers: *id003
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Tag'
        '400': *id001
        '404': *id002
  /wp/v2/tags/{id}:
    get:
      operationId: getTag
      summary: Get a tag
      description: Retrieve a single tag term by its numeric identifier.
      tags:
      - Taxonomy
      parameters:
      - name: id
        in: path
        description: Unique identifier for the term.
        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
      responses:
        '200':
          description: Get a tag — success.
          content:
            application/json:
              schema:
                type: object
        '400': *id001
        '404': *id002
  /wp/v2/types:
    get:
      operationId: listTypes
      summary: List post types
      description: Retrieve every registered post type and its REST base.
      tags:
      - Taxonomy
      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 types — success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Type'
        '400': *id001
        '404': *id002
  /wp/v2/taxonomies:
    get:
      operationId: listTaxonomies
      summary: List taxonomies
      description: Retrieve every registered taxonomy and its REST base.
      tags:
      - Taxonomy
      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: type
        in: query
        description: Limit results to taxonomies associated with a specific post type.
        schema:
          type: string
      responses:
        '200':
          description: List taxonomies — success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Taxonomy'
        '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.
    Category:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier for the term.
          readOnly: true
        count:
          type: integer
          description: Number of published posts for the term.
          readOnly: true
        description:
          type: string
          description: HTML description of the term.
        link:
          type: string
          description: URL of the term.
          format: uri
          readOnly: true
        name:
          type: string
          description: HTML title for the term.
        slug:
          type: string
          description: An alphanumeric identifier for the term unique to its type.
        taxonomy:
          type: string
          description: Type attribution for the term.
          enum:
          - category
          readOnly: true
        parent:
          type: integer
          description: The parent term ID.
        meta:
          type: object
          description: Meta fields.
    Tag:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier for the term.
          readOnly: true
        count:
          type: integer
          description: Number of published posts for the term.
          readOnly: true
        description:
          type: string
          description: HTML description of the term.
        link:
          type: string
          description: URL of the term.
          format: uri
          readOnly: true
        name:
          type: string
          description: HTML title for the term.
        slug:
          type: string
          description: An alphanumeric identifier for the term unique to its type.
        taxonomy:
          type: string
          description: Type attribution for the term.
          enum:
          - post_tag
          readOnly: true
        meta:
          type: object
          description: Meta fields.
    Type:
      type: object
      properties:
        capabilities:
          type: object
          description: All capabilities used by the post type.
          readOnly: true
        description:
          type: string
          description: A human-readable description of the post type.
          readOnly: true
        hierarchical:
          type: boolean
          description: Whether or not the post type should have children.
          readOnly: true
        viewable:
          type: boolean
          description: Whether or not the post type can be viewed.
          readOnly: true
        labels:
          type: object
          description: Human-readable labels for the post type for various contexts.
          readOnly: true
        name:
          type: string
          description: The title for the post type.
          readOnly: true
        slug:
          type: string
          description: An alphanumeric identifier for the post type.
          readOnly: true
        supports:
          type: object
          description: All features, supported by the post type.
          readOnly: true
        has_archive:
          type:
          - string
          - boolean
          description: If the value is a string, the value will be used as the archive slug. If the value is false
            the post type has no archive.
          readOnly: true
        taxonomies:
          type: array
          description: Taxonomies associated with post type.
          readOnly: true
          items:
            type: string
        rest_base:
          type: string
          description: REST base route for the post type.
          readOnly: true
        rest_namespace:
          type: string
          description: REST route's namespace for the post type.
          readOnly: true
        visibility:
          type: object
          description: The visibility settings for the post type.
          readOnly: true
          properties:
            show_ui:
              type: boolean
              description: Whether to generate a default UI for managing this post type.
            show_in_nav_menus:
              type: boolean
              description: Whether to make the post type available for selection in navigation menus.
        icon:
          type: string
          description: The icon for the post type.
          readOnly: true
        template:
          type: array
          description: The block template associated with the post type.
          readOnly: true
        template_lock:
          type:
          - string
          - boolean
          description: The template_lock associated with the post type, or false if none.
          enum:
          - all
          - insert
          - contentOnly
          - false
          readOnly: true
    Taxonomy:
      type: object
      properties:
        capabilities:
          type: object
          description: All capabilities used by the taxonomy.
          readOnly: true
        description:
          type: string
          description: A human-readable description of the taxonomy.
          readOnly: true
        hierarchical:
          type: boolean
          description: Whether or not the taxonomy should have children.
          readOnly: true
        labels:
          type: object
          description: Human-readable labels for the taxonomy for various contexts.
          readOnly: true
        name:
          type: string
          description: The title for the taxonomy.
          readOnly: true
        slug:
          type: string
          description: An alphanumeric identifier for the taxonomy.
          readOnly: true
        show_cloud:
          type: boolean
          description: Whether or not the term cloud should be displayed.
          readOnly: true
        types:
          type: array
          description: Types associated with the taxonomy.
          readOnly: true
          items:
            type: string
        rest_base:
          type: string
          description: REST base route for the taxonomy.
          readOnly: true
        rest_namespace:
          type: string
          description: REST namespace route for the taxonomy.
          readOnly: true
        visibility:
          type: object
          description: The visibility settings for the taxonomy.
          readOnly: true
          properties:
            public:
              type: boolean
              description: Whether a taxonomy is intended for use publicly either via the admin interface or by
                front-end users.
            publicly_queryable:
              type: boolean
              description: Whether the taxonomy is publicly queryable.
            show_ui:
              type: boolean
              description: Whether to generate a default UI for managing this taxonomy.
            show_admin_column:
              type: boolean
              description: Whether to allow automatic creation of taxonomy columns on associated post-types table.
            show_in_nav_menus:
              type: boolean
              description: Whether to make the taxonomy available for selection in navigation menus.
            show_in_quick_edit:
              type: boolean
              description: Whether to show the taxonomy in the quick/bulk edit panel.