Every API here is available over the APIs.io API and to AI agents over MCP.
{
"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