Immutable zkEVM API

The Immutable Multi Rollup API — the public REST surface for Immutable Chain. Covers activities, chains, collections, NFTs and NFT owners, ERC-20 tokens, metadata and metadata search, the Seaport-backed Orderbook (listings, bids, collection/trait/metadata bids, trades, fulfilment data), crafting signatures, pricing and Passport profile operations. 59 operations across 53 paths, described by a published OpenAPI 3.0.3 document.

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/immutable-zkevm-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

immutable-zkevm-openapi.json Raw ↑
{
  "openapi": "3.0.3",
  "info": {
    "title": "Immutable zkEVM API",
    "version": "1.0.0",
    "description": "Immutable Multi Rollup API",
    "contact": {
      "name": "Immutable API Support",
      "email": "support@immutable.com",
      "url": "https://support.immutable.com"
    }
  },
  "servers": [
    {
      "url": "https://api.sandbox.immutable.com"
    }
  ],
  "tags": [
    {
      "name": "activities",
      "description": "Activities Endpoints",
      "x-displayName": "activities"
    },
    {
      "name": "chains",
      "description": "Chains Endpoints",
      "x-displayName": "chains"
    },
    {
      "name": "collections",
      "description": "Collections Endpoints",
      "x-displayName": "collections"
    },
    {
      "name": "nfts",
      "description": "NFTs Endpoints",
      "x-displayName": "nfts"
    },
    {
      "name": "nft owners",
      "description": "NFT Owner Endpoints",
      "x-displayName": "nft owners"
    },
    {
      "name": "metadata",
      "description": "NFT Metadata Endpoints",
      "x-displayName": "metadata"
    },
    {
      "name": "tokens",
      "description": "ERC20 Token Endpoints",
      "x-displayName": "tokens"
    },
    {
      "name": "demopage",
      "description": "Temporary HTML endpoint for demo purposes",
      "x-displayName": "demopage"
    },
    {
      "name": "verification",
      "x-displayName": "verification"
    },
    {
      "name": "operatorallowlist",
      "x-displayName": "operatorallowlist"
    },
    {
      "name": "crafting",
      "x-displayName": "crafting"
    },
    {
      "name": "listings",
      "description": "Listings Endpoints",
      "x-displayName": "listings"
    },
    {
      "name": "orders",
      "x-displayName": "orders"
    },
    {
      "name": "passport",
      "description": "Passport operations",
      "x-displayName": "passport"
    },
    {
      "name": "passport-internal",
      "description": "Internal passport endpoints for service-to-service M2M calls",
      "x-displayName": "passport-internal"
    },
    {
      "name": "gamefi",
      "description": "team gamefi",
      "x-displayName": "gamefi"
    },
    {
      "name": "passport profile",
      "description": "Passport Profile endpoints",
      "x-displayName": "passport profile"
    },
    {
      "name": "feed-items",
      "x-displayName": "feed-items"
    },
    {
      "name": "assets",
      "x-displayName": "assets"
    },
    {
      "name": "guardian",
      "description": "Guardian endpoints",
      "x-displayName": "guardian"
    },
    {
      "name": "pricing",
      "description": "Pricing Endpoints",
      "x-displayName": "pricing"
    },
    {
      "name": "metadata-search",
      "x-displayName": "metadata-search"
    }
  ],
  "paths": {
    "/v1/chains/{chain_name}/activity-history": {
      "get": {
        "x-public": true,
        "tags": [
          "activities"
        ],
        "operationId": "ListActivityHistory",
        "summary": "List history of activities",
        "description": "List activities sorted by updated_at timestamp ascending, useful for time based data replication",
        "parameters": [
          {
            "name": "chain_name",
            "description": "The name of chain",
            "schema": {
              "$ref": "#/components/schemas/ChainName"
            },
            "in": "path",
            "required": true,
            "examples": {
              "testnet": {
                "value": "imtbl-zkevm-testnet",
                "summary": "Immutable zkEVM Public Testnet"
              }
            }
          },
          {
            "name": "from_updated_at",
            "in": "query",
            "description": "From indexed at including given date",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2022-08-16T17:43:26.991388Z",
              "format": "date-time"
            }
          },
          {
            "name": "to_updated_at",
            "in": "query",
            "required": false,
            "description": "To indexed at including given date",
            "schema": {
              "type": "string",
              "example": "2022-08-16T17:43:26.991388Z",
              "format": "date-time"
            }
          },
          {
            "name": "contract_address",
            "in": "query",
            "description": "The contract address of the collection",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e"
          },
          {
            "name": "activity_type",
            "in": "query",
            "description": "The activity type",
            "required": false,
            "example": "burn",
            "schema": {
              "$ref": "#/components/schemas/ActivityType"
            }
          },
          {
            "name": "page_cursor",
            "in": "query",
            "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageCursor"
            }
          },
          {
            "name": "page_size",
            "description": "Maximum number of items to return",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageSize"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListActivitiesResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/activities": {
      "get": {
        "x-public": true,
        "tags": [
          "activities"
        ],
        "operationId": "ListActivities",
        "summary": "List all activities",
        "description": "List all activities",
        "parameters": [
          {
            "name": "chain_name",
            "description": "The name of chain",
            "schema": {
              "$ref": "#/components/schemas/ChainName"
            },
            "in": "path",
            "required": true,
            "examples": {
              "testnet": {
                "value": "imtbl-zkevm-testnet",
                "summary": "Immutable zkEVM Public Testnet"
              }
            }
          },
          {
            "name": "contract_address",
            "in": "query",
            "description": "The contract address of NFT or ERC20 Token",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e"
          },
          {
            "name": "token_id",
            "in": "query",
            "description": "An `uint256` token id as string",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "account_address",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3",
            "description": "The account address activity contains"
          },
          {
            "name": "activity_type",
            "in": "query",
            "description": "The activity type",
            "required": false,
            "example": "burn",
            "schema": {
              "$ref": "#/components/schemas/ActivityType"
            }
          },
          {
            "name": "transaction_hash",
            "in": "query",
            "description": "The transaction hash of activity",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e"
          },
          {
            "name": "page_cursor",
            "in": "query",
            "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageCursor"
            }
          },
          {
            "name": "page_size",
            "description": "Maximum number of items to return",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageSize"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListActivitiesResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/activities/{activity_id}": {
      "get": {
        "x-public": true,
        "tags": [
          "activities"
        ],
        "operationId": "GetActivity",
        "summary": "Get a single activity by ID",
        "description": "Get a single activity by ID",
        "parameters": [
          {
            "name": "chain_name",
            "description": "The name of chain",
            "schema": {
              "$ref": "#/components/schemas/ChainName"
            },
            "in": "path",
            "required": true,
            "examples": {
              "testnet": {
                "value": "imtbl-zkevm-testnet",
                "summary": "Immutable zkEVM Public Testnet"
              }
            }
          },
          {
            "name": "activity_id",
            "description": "The id of activity",
            "schema": {
              "$ref": "#/components/schemas/ActivityID"
            },
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetActivityResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/collections": {
      "get": {
        "x-public": true,
        "description": "List all collections",
        "tags": [
          "collections"
        ],
        "operationId": "ListCollections",
        "summary": "List all collections",
        "parameters": [
          {
            "name": "chain_name",
            "in": "path",
            "description": "The name of chain",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ChainName"
            },
            "examples": {
              "testnet": {
                "value": "imtbl-zkevm-testnet",
                "summary": "Immutable zkEVM Public Testnet"
              }
            }
          },
          {
            "name": "contract_address",
            "in": "query",
            "required": false,
            "description": "List of contract addresses to filter by",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3"
              }
            }
          },
          {
            "name": "verification_status",
            "in": "query",
            "required": false,
            "description": "List of verification status to filter by",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/AssetVerificationStatus"
              }
            }
          },
          {
            "name": "from_updated_at",
            "in": "query",
            "description": "Datetime to use as the oldest updated timestamp",
            "required": false,
            "schema": {
              "type": "string",
              "example": "2022-08-16T17:43:26.991388Z",
              "format": "date-time"
            }
          },
          {
            "name": "page_cursor",
            "in": "query",
            "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageCursor"
            }
          },
          {
            "name": "page_size",
            "description": "Maximum number of items to return",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageSize"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCollectionsResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/collections/{contract_address}": {
      "get": {
        "x-public": true,
        "description": "Get collection by contract address",
        "tags": [
          "collections"
        ],
        "operationId": "GetCollection",
        "summary": "Get collection by contract address",
        "parameters": [
          {
            "name": "contract_address",
            "in": "path",
            "description": "The address contract",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e"
          },
          {
            "name": "chain_name",
            "description": "The name of chain",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ChainName"
            },
            "examples": {
              "testnet": {
                "value": "imtbl-zkevm-testnet",
                "summary": "Immutable zkEVM Public Testnet"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCollectionResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/collections/{contract_address}/refresh-metadata": {
      "post": {
        "x-public": true,
        "description": "Refresh collection metadata",
        "summary": "Refresh collection metadata",
        "tags": [
          "collections"
        ],
        "operationId": "RefreshCollectionMetadata",
        "security": [
          {
            "ImmutableApiKey": [
              "refresh:metadata"
            ]
          },
          {
            "BearerAuthWithClient": []
          },
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "contract_address",
            "in": "path",
            "description": "The address contract",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e"
          },
          {
            "name": "chain_name",
            "description": "The name of chain",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ChainName"
            },
            "examples": {
              "testnet": {
                "value": "imtbl-zkevm-testnet",
                "summary": "Immutable zkEVM Public Testnet"
              }
            }
          }
        ],
        "requestBody": {
          "description": "The request body",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshCollectionMetadataRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefreshCollectionMetadataResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorisedRequest"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/accounts/{account_address}/collections": {
      "get": {
        "x-public": true,
        "description": "List collections by NFT owner account address",
        "tags": [
          "collections"
        ],
        "operationId": "ListCollectionsByNFTOwner",
        "summary": "List collections by NFT owner",
        "parameters": [
          {
            "name": "account_address",
            "in": "path",
            "description": "Account address",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3"
          },
          {
            "name": "chain_name",
            "description": "The name of chain",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ChainName"
            },
            "examples": {
              "testnet": {
                "value": "imtbl-zkevm-testnet",
                "summary": "Immutable zkEVM Public Testnet"
              }
            }
          },
          {
            "name": "page_cursor",
            "in": "query",
            "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageCursor"
            }
          },
          {
            "name": "page_size",
            "description": "Maximum number of items to return",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageSize"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCollectionsResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}": {
      "get": {
        "x-public": true,
        "description": "Get NFT by token ID",
        "tags": [
          "nfts"
        ],
        "summary": "Get NFT by token ID",
        "operationId": "GetNFT",
        "parameters": [
          {
            "name": "contract_address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The address of NFT contract",
            "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3"
          },
          {
            "name": "token_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "An `uint256` token id as string",
            "example": "1"
          },
          {
            "name": "chain_name",
            "description": "The name of chain",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ChainName"
            },
            "examples": {
              "testnet": {
                "value": "imtbl-zkevm-testnet",
                "summary": "Immutable zkEVM Public Testnet"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetNFTResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/collections/{contract_address}/metadata/{metadata_id}": {
      "get": {
        "x-public": true,
        "description": "Get metadata by ID",
        "tags": [
          "metadata"
        ],
        "summary": "Get metadata by ID",
        "operationId": "GetMetadata",
        "parameters": [
          {
            "name": "chain_name",
            "description": "The name of chain",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ChainName"
            },
            "examples": {
              "testnet": {
                "value": "imtbl-zkevm-testnet",
                "summary": "Immutable zkEVM Public Testnet"
              }
            }
          },
          {
            "name": "contract_address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The address of metadata contract",
            "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3"
          },
          {
            "name": "metadata_id",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/MetadataID"
            },
            "description": "The id of the metadata"
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetMetadataResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/collections/{contract_address}/metadata": {
      "get": {
        "x-public": true,
        "description": "Get a list of metadata from the given contract",
        "tags": [
          "metadata"
        ],
        "summary": "Get a list of metadata from the given contract",
        "operationId": "ListMetadata",
        "parameters": [
          {
            "name": "chain_name",
            "description": "The name of chain",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ChainName"
            },
            "examples": {
              "testnet": {
                "value": "imtbl-zkevm-testnet",
                "summary": "Immutable zkEVM Public Testnet"
              }
            }
          },
          {
            "name": "contract_address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The address of metadata contract",
            "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3"
          },
          {
            "name": "from_updated_at",
            "in": "query",
            "description": "Datetime to use as the oldest updated timestamp",
            "required": false,
            "schema": {
              "type": "string",
              "example": "2022-08-16T17:43:26.991388Z",
              "format": "date-time"
            }
          },
          {
            "name": "page_cursor",
            "in": "query",
            "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageCursor"
            }
          },
          {
            "name": "page_size",
            "description": "Maximum number of items to return",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageSize"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListMetadataResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/metadata": {
      "get": {
        "x-public": true,
        "description": "Get a list of metadata from the given chain",
        "tags": [
          "metadata"
        ],
        "summary": "Get a list of metadata from the given chain",
        "operationId": "ListMetadataForChain",
        "parameters": [
          {
            "name": "chain_name",
            "description": "The name of chain",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ChainName"
            },
            "examples": {
              "testnet": {
                "value": "imtbl-zkevm-testnet",
                "summary": "Immutable zkEVM Public Testnet"
              }
            }
          },
          {
            "name": "from_updated_at",
            "in": "query",
            "description": "Datetime to use as the oldest updated timestamp",
            "required": false,
            "schema": {
              "type": "string",
              "example": "2022-08-16T17:43:26.991388Z",
              "format": "date-time"
            }
          },
          {
            "name": "page_cursor",
            "in": "query",
            "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageCursor"
            }
          },
          {
            "name": "page_size",
            "description": "Maximum number of items to return",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PageSize"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListMetadataResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/collections/{contract_address}/metadata/refresh-metadata": {
      "post": {
        "x-public": true,
        "x-go-name": "RefreshMetadataByID",
        "operationId": "RefreshMetadataByID",
        "description": "Refresh stacked metadata",
        "summary": "Refresh stacked metadata",
        "tags": [
          "metadata"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/ChainName"
          },
          {
            "$ref": "#/components/parameters/ContractAddress"
          }
        ],
        "security": [
          {
            "ImmutableApiKey": [
              "refresh:metadata"
            ]
          }
        ],
        "requestBody": {
          "description": "NFT Metadata Refresh Request",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshMetadataByIDRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "headers": {
              "imx-refreshes-limit": {
                "$ref": "#/components/headers/MetadataRefreshLimit"
              },
              "imx-refresh-limit-reset": {
                "$ref": "#/components/headers/MetadataRefreshLimitReset"
              },
              "imx-remaining-refreshes": {
                "$ref": "#/components/headers/MetadataRefreshLimitRemaining"
              },
              "retry-after": {
                "$ref": "#/components/headers/MetadataRefreshRetryAfter"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetadataRefreshRateLimitResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorisedRequest"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyMetadataRefreshes"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/v1/chains/{chain_name}/collections/{contract_address}/nfts": {
      "get": {
        "x-public": true,
        "description": "List NFTs by contract address",
        "tags": [
          "nfts"
        ],
        "summary": "List NFTs by contract address",
        "operationId": "ListNFTs",

# --- truncated at 32 KB (362 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/immutable/refs/heads/main/openapi/immutable-zkevm-openapi.json