Immutable · Schema

CreateListingRequestBody

CompanyGamingBlockchainNFTWeb3WalletsMarketplaceAnalyticsAttributionCustomer Data PlatformAuthenticationDeveloper PlatformA2A

Properties

Name Type Description
account_address string
order_hash string
buy array Buy item for listing should either be NATIVE or ERC20 item
fees array Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.
end_at string Time after which the Order is considered expired
protocol_data object
salt string A random value added to the create Order request
sell array Sell item for listing should be an ERC721 item
signature string Digital signature generated by the user for the specific Order
start_at string Time after which Order is considered active
View JSON Schema on GitHub

JSON Schema

immutable-create-listing-request-body-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/immutable/main/json-schema/immutable-create-listing-request-body-schema.json",
  "title": "CreateListingRequestBody",
  "x-generated": "2026-10-21",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/immutable-orders-api-openapi.yml#/components/schemas/CreateListingRequestBody",
  "type": "object",
  "properties": {
    "account_address": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$"
    },
    "order_hash": {
      "type": "string"
    },
    "buy": {
      "type": "array",
      "description": "Buy item for listing should either be NATIVE or ERC20 item",
      "items": {
        "$ref": "#/$defs/Item"
      },
      "minItems": 1,
      "maxItems": 1
    },
    "fees": {
      "type": "array",
      "description": "Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.",
      "items": {
        "$ref": "#/$defs/Fee"
      },
      "minItems": 0,
      "maxItems": 2
    },
    "end_at": {
      "type": "string",
      "description": "Time after which the Order is considered expired",
      "format": "date-time"
    },
    "protocol_data": {
      "$ref": "#/$defs/ProtocolData"
    },
    "salt": {
      "type": "string",
      "description": "A random value added to the create Order request"
    },
    "sell": {
      "type": "array",
      "description": "Sell item for listing should be an ERC721 item",
      "items": {
        "$ref": "#/$defs/Item"
      },
      "minItems": 1,
      "maxItems": 1
    },
    "signature": {
      "type": "string",
      "description": "Digital signature generated by the user for the specific Order"
    },
    "start_at": {
      "type": "string",
      "description": "Time after which Order is considered active",
      "format": "date-time"
    }
  },
  "required": [
    "account_address",
    "order_hash",
    "buy",
    "sell",
    "fees",
    "end_at",
    "start_at",
    "protocol_data",
    "salt",
    "signature"
  ],
  "$defs": {
    "ERC1155CollectionItem": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Token type user is offering, which in this case is ERC1155",
          "enum": [
            "ERC1155_COLLECTION"
          ]
        },
        "contract_address": {
          "type": "string",
          "description": "Address of ERC1155 collection",
          "pattern": "^0x[a-fA-F0-9]{40}$"
        },
        "amount": {
          "type": "string",
          "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).",
          "pattern": "\\d+"
        }
      },
      "required": [
        "type",
        "contract_address",
        "amount"
      ]
    },
    "ERC1155Item": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Token type user is offering, which in this case is ERC1155",
          "enum": [
            "ERC1155"
          ]
        },
        "contract_address": {
          "type": "string",
          "description": "Address of ERC1155 token",
          "pattern": "^0x[a-fA-F0-9]{40}$"
        },
        "token_id": {
          "type": "string",
          "description": "ID of ERC1155 token",
          "pattern": "\\d+"
        },
        "amount": {
          "type": "string",
          "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).",
          "pattern": "\\d+"
        }
      },
      "required": [
        "type",
        "contract_address",
        "token_id",
        "amount"
      ]
    },
    "ERC20Item": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Token type user is offering, which in this case is ERC20",
          "enum": [
            "ERC20"
          ]
        },
        "contract_address": {
          "type": "string",
          "description": "Address of ERC20 token",
          "pattern": "^0x[a-fA-F0-9]{40}$"
        },
        "amount": {
          "type": "string",
          "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).",
          "pattern": "\\d+"
        }
      },
      "required": [
        "type",
        "contract_address",
        "amount"
      ]
    },
    "ERC721CollectionItem": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Token type user is offering, which in this case is ERC721",
          "enum": [
            "ERC721_COLLECTION"
          ]
        },
        "contract_address": {
          "type": "string",
          "description": "Address of ERC721 collection",
          "pattern": "^0x[a-fA-F0-9]{40}$"
        },
        "amount": {
          "type": "string",
          "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).",
          "pattern": "\\d+"
        }
      },
      "required": [
        "type",
        "contract_address",
        "amount"
      ]
    },
    "ERC721Item": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Token type user is offering, which in this case is ERC721",
          "enum": [
            "ERC721"
          ]
        },
        "contract_address": {
          "type": "string",
          "description": "Address of ERC721 token",
          "pattern": "^0x[a-fA-F0-9]{40}$"
        },
        "token_id": {
          "type": "string",
          "description": "ID of ERC721 token",
          "pattern": "\\d+"
        }
      },
      "required": [
        "type",
        "contract_address",
        "token_id"
      ]
    },
    "Fee": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "string",
          "description": "Fee payable to recipient upon settlement",
          "pattern": "\\d+"
        },
        "type": {
          "type": "string",
          "description": "Fee type",
          "enum": [
            "ROYALTY",
            "MAKER_ECOSYSTEM",
            "TAKER_ECOSYSTEM",
            "PROTOCOL"
          ]
        },
        "recipient_address": {
          "type": "string",
          "description": "Wallet address of fee recipient",
          "pattern": "^0x[a-fA-F0-9]{40}$"
        }
      },
      "required": [
        "type",
        "amount",
        "recipient_address"
      ]
    },
    "Item": {
      "oneOf": [
        {
          "$ref": "#/$defs/NativeItem"
        },
        {
          "$ref": "#/$defs/ERC20Item"
        },
        {
          "$ref": "#/$defs/ERC721Item"
        },
        {
          "$ref": "#/$defs/ERC1155Item"
        },
        {
          "$ref": "#/$defs/ERC721CollectionItem"
        },
        {
          "$ref": "#/$defs/ERC1155CollectionItem"
        }
      ]
    },
    "NativeItem": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Token type user is offering, which in this case is the native IMX token",
          "enum": [
            "NATIVE"
          ]
        },
        "amount": {
          "type": "string",
          "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).",
          "pattern": "\\d+"
        }
      },
      "required": [
        "type",
        "amount"
      ]
    },
    "ProtocolData": {
      "type": "object",
      "properties": {
        "order_type": {
          "type": "string",
          "description": "Seaport order type. Orders containing ERC721 tokens will need to pass in the order type as FULL_RESTRICTED while orders with ERC1155 tokens will need to pass in the order_type as PARTIAL_RESTRICTED",
          "enum": [
            "FULL_RESTRICTED",
            "PARTIAL_RESTRICTED"
          ]
        },
        "counter": {
          "type": "string",
          "description": "big.Int or uint256 string for order counter"
        },
        "zone_address": {
          "type": "string",
          "description": "Immutable zone address"
        },
        "seaport_address": {
          "type": "string",
          "description": "Immutable Seaport contract address"
        },
        "seaport_version": {
          "type": "string",
          "description": "Immutable Seaport contract version"
        }
      },
      "required": [
        "order_type",
        "counter",
        "zone_address",
        "seaport_address",
        "seaport_version"
      ]
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/immutable-create-listing-request-body"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.