{
  "openapi" : "3.1.0",
  "info" : {
    "title" : "OpenSea API",
    "description" : "The API for OpenSea",
    "contact" : {
      "name" : "OpenSea",
      "url" : "https://www.opensea.io",
      "email" : "contact@opensea.io"
    },
    "version" : "2.0.0"
  },
  "servers" : [ {
    "url" : "https://api.opensea.io",
    "description" : "Production server"
  } ],
  "security" : [ {
    "ApiKeyAuth" : [ ]
  } ],
  "tags" : [ {
    "name" : "Chain Endpoints",
    "description" : "Chain endpoints to discover supported blockchains and their capabilities"
  }, {
    "name" : "Account Endpoints",
    "description" : "Account endpoints to retrieve OpenSea account profiles and resolve identifiers"
  }, {
    "name" : "Collection Endpoints",
    "description" : "Collection endpoints to retrieve collection details, traits, and trending data"
  }, {
    "name" : "NFT Endpoints",
    "description" : "NFT endpoints to retrieve individual NFTs, metadata, ownership, and rarity"
  }, {
    "name" : "Contract Endpoints",
    "description" : "Contract endpoints to retrieve contract metadata and payment token details"
  }, {
    "name" : "Token Endpoints",
    "description" : "Token endpoints for getting token details, balances, and trending data"
  }, {
    "name" : "Search Endpoints",
    "description" : "Search endpoints for discovering collections, tokens, NFTs, and accounts"
  }, {
    "name" : "Listing Endpoints",
    "description" : "Listing endpoints for creating, fulfilling, and querying listings"
  }, {
    "name" : "Offer Endpoints",
    "description" : "Offer endpoints for building, creating, fulfilling, and querying offers"
  }, {
    "name" : "Order Endpoints",
    "description" : "Order endpoints for looking up and canceling individual orders"
  }, {
    "name" : "Swap Endpoints",
    "description" : "Swap endpoints for getting token swap quotes with executable transaction data"
  }, {
    "name" : "Drops Endpoints",
    "description" : "Endpoints for discovering drops, checking mint eligibility, and building mint transactions"
  }, {
    "name" : "Analytics Endpoints",
    "description" : "Analytics endpoints to retrieve events, stats, and trading data"
  } ],
  "paths" : {
    "/api/v2/orders/{chain}/{protocol}/offers" : {
      "get" : {
        "tags" : [ "Offer Endpoints" ],
        "summary" : "Get item offers",
        "description" : "Deprecated: This endpoint uses a legacy response format. Use the following collection-based endpoints instead, which return a cleaner response shape with structured price objects: GET /api/v2/offers/collection/{slug}/nfts/{identifier} for item offers, GET /api/v2/offers/collection/{slug}/all for all offers in a collection, GET /api/v2/offers/collection/{slug} for collection offers, or GET /api/v2/offers/collection/{slug}/traits for trait offers. To look up an individual order, use GET /api/v2/orders/chain/{chain}/protocol/{protocol_address}/{order_hash}. The collection-based endpoints return results sorted by best price. To query by creation time, use the events API (GET /api/v2/events). Note: the 'maker' filter on this endpoint has no equivalent on the collection-based endpoints.",
        "operationId" : "get_offers",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "description" : "Blockchain chain identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "protocol",
          "in" : "path",
          "description" : "Protocol name (e.g. 'seaport')",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "asset_contract_address",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "token_ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "maker",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "order_direction",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "asc", "desc" ]
          }
        }, {
          "name" : "order_by",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "price", "created_at" ]
          }
        }, {
          "name" : "listed_before",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "listed_after",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "payment_token_address",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "cursor.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Item offers retrieved successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrdersResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        },
        "deprecated" : true
      },
      "post" : {
        "tags" : [ "Offer Endpoints" ],
        "summary" : "Create an item offer",
        "description" : "Create an offer to purchase a single NFT (ERC721 or ERC1155). The response includes both a legacy 'order' field (deprecated) and a new 'offer' field with the current v2 response format. New integrations should use the 'offer' field.",
        "operationId" : "post_offer",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "protocol",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SeaportRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Item offer created successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateOfferResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/orders/{chain}/{protocol}/listings" : {
      "get" : {
        "tags" : [ "Listing Endpoints" ],
        "summary" : "Get listings",
        "description" : "Deprecated: This endpoint uses a legacy response format. Use the following collection-based endpoints instead, which return a cleaner response shape with structured price objects: GET /api/v2/listings/collection/{slug}/all for all listings in a collection, GET /api/v2/listings/collection/{slug}/best for best listings by price, or GET /api/v2/listings/collection/{slug}/nfts/{identifier}/best for the best listing on a specific NFT. To look up an individual order, use GET /api/v2/orders/chain/{chain}/protocol/{protocol_address}/{order_hash}. The collection-based endpoints return results sorted by best price. To query by creation time, use the events API (GET /api/v2/events). Note: the 'maker' filter on this endpoint has no equivalent on the collection-based endpoints. Also, the NFT-specific route (GET /api/v2/listings/collection/{slug}/nfts/{identifier}/best) only returns the best single listing, not a full paginated list.",
        "operationId" : "get_listings",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "description" : "Blockchain chain identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "protocol",
          "in" : "path",
          "description" : "Protocol name (e.g. 'seaport')",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "asset_contract_address",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "token_ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "maker",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "listed_before",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "listed_after",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          }
        }, {
          "name" : "order_direction",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "asc", "desc" ]
          }
        }, {
          "name" : "order_by",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "price", "created_at" ]
          }
        }, {
          "name" : "include_private_listings",
          "in" : "query",
          "description" : "Whether to include private listings; defaults to false",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "cursor.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Item listings retrieved successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrdersResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        },
        "deprecated" : true
      },
      "post" : {
        "tags" : [ "Listing Endpoints" ],
        "summary" : "Create a listing",
        "description" : "List a single NFT (ERC721 or ERC1155) for sale on the OpenSea marketplace. The response includes both a legacy 'order' field (deprecated) and a new 'listing' field with the current v2 response format. New integrations should use the 'listing' field.",
        "operationId" : "post_listing",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "protocol",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/SeaportRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Listing created successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateListingResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/orders/chain/{chain}/protocol/{protocol_address}/{order_hash}/cancel" : {
      "post" : {
        "tags" : [ "Order Endpoints" ],
        "summary" : "Cancel an order",
        "description" : "Offchain cancel a single order, offer or listing, by its order hash when protected by the SignedZone. Protocol and Chain are required to prevent hash collisions. Please note cancellation is only assured if a fulfillment signature was not vended prior to cancellation.",
        "operationId" : "cancel_order",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "protocol_address",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "order_hash",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-Api-Key",
          "in" : "header",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CancelRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Order cancelled successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CancelResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/offers" : {
      "post" : {
        "tags" : [ "Offer Endpoints" ],
        "summary" : "Create a criteria offer",
        "description" : "Create a criteria offer to purchase any NFT in a collection or which matches the specified trait. For trait offers where the Build Offer endpoint returns identifierOrCriteria '0', use that value directly — trait matching is validated server-side at fulfillment time rather than via onchain merkle proof.",
        "operationId" : "post_criteria_offer_v2",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OfferWithCriteriaRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Criteria offer created successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Offer"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/offers/fulfillment_data" : {
      "post" : {
        "tags" : [ "Offer Endpoints" ],
        "summary" : "Fulfill an offer",
        "description" : "Retrieve all the information, including signatures, needed to fulfill an offer directly onchain. For trait offers with identifierOrCriteria '0', the server validates that the specified token matches the offer's trait criteria before generating fulfillment data.",
        "operationId" : "generate_offer_fulfillment_data_v2",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FullfillmentDataRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Offer fulfillment data retrieved successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FulfillListingResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "The request is invalid\nThe order_hash does not exist\nThe chain is not an EVM Chain\nThe protocol_address is not a supported Seaport contract\nFor other error reasons, see the response data.",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FulfillListingResponse"
                }
              }
            }
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/offers/build" : {
      "post" : {
        "tags" : [ "Offer Endpoints" ],
        "summary" : "Build a criteria offer",
        "description" : "Build a portion of a criteria offer including the consideration item, zone, and zone hash needed to post an offer. For trait offers on supported collections, the identifierOrCriteria in the returned consideration will be '0' (no merkle root computation needed). For other collections, a computed merkle root is returned. When identifierOrCriteria is '0', the encodedTokenIds field is informational only and not required for constructing the onchain order.",
        "operationId" : "build_offer_v2",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BuildOfferRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Criteria offer built successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BuildOfferResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/listings/fulfillment_data" : {
      "post" : {
        "tags" : [ "Listing Endpoints" ],
        "summary" : "Fulfill a listing",
        "description" : "Retrieve all the information, including signatures, needed to fulfill a listing directly onchain.",
        "operationId" : "generate_listing_fulfillment_data_v2",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FullfillListingRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Listing fulfillment data retrieved successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FulfillListingResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "The request is invalid\nThe order_hash does not exist\nThe chain is not an EVM Chain\nThe protocol_address is not a supported Seaport contract\nFor other error reasons, see the response data.",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FulfillListingResponse"
                }
              }
            }
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/drops/{slug}/mint" : {
      "post" : {
        "tags" : [ "Drops Endpoints" ],
        "summary" : "Build mint transaction data for a drop",
        "description" : "Returns ready-to-sign transaction data for minting tokens from a drop. The caller is responsible for signing and submitting the transaction. No wallet authentication is required — only an API key. The minter address in the request body determines who will receive the tokens. Stage selection is handled automatically by the backend — if multiple stages are active, the first eligible stage is used.",
        "operationId" : "build_drop_mint_transaction",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "The collection slug identifying the drop",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "boredapeyachtclub"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DropMintRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Ready-to-sign transaction data including target contract, calldata, and value",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DropMintResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid request: bad address format, invalid quantity, or missing required fields",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/V1ErrorWrapper"
                }
              }
            }
          },
          "404" : {
            "description" : "Drop or collection not found for the given slug",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/V1ErrorWrapper"
                }
              }
            }
          },
          "409" : {
            "description" : "Drop is not currently active for minting (not started, ended, or paused)",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/V1ErrorWrapper"
                }
              }
            }
          },
          "422" : {
            "description" : "Minting precondition failed: wallet not in allowlist, mint limit exceeded, or supply exhausted",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/V1ErrorWrapper"
                }
              }
            }
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/chain/{chain}/contract/{address}/nfts/{identifier}/validate-metadata" : {
      "post" : {
        "tags" : [ "NFT Endpoints" ],
        "summary" : "Validate NFT metadata",
        "description" : "Fetch and validate NFT metadata directly from the blockchain without using cached data. Returns both original and processed (SeaDN) URLs to show how the metadata would be ingested. This endpoint does not persist any data.",
        "operationId" : "validate_nft_metadata",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "description" : "The blockchain on which the NFT exists",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "ethereum"
        }, {
          "name" : "address",
          "in" : "path",
          "description" : "The contract address",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d"
        }, {
          "name" : "identifier",
          "in" : "path",
          "description" : "The NFT token id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 1
        }, {
          "name" : "ignoreCachedItemUrls",
          "in" : "query",
          "description" : "Whether to bypass cached SeaDN URLs",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          },
          "example" : true
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ValidateMetadataResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/chain/{chain}/contract/{address}/nfts/{identifier}/refresh" : {
      "post" : {
        "tags" : [ "NFT Endpoints" ],
        "summary" : "Refresh NFT metadata",
        "description" : "Queue a metadata refresh for a specific NFT to update its information from the blockchain.",
        "operationId" : "refresh_nft_metadata",
        "parameters" : [ {
          "name" : "address",
          "in" : "path",
          "description" : "Contract address",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "chain",
          "in" : "path",
          "description" : "Blockchain chain identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "identifier",
          "in" : "path",
          "description" : "Token identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "ignoreCachedItemUrls",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/auth/keys" : {
      "post" : {
        "tags" : [ "Auth Endpoints" ],
        "summary" : "Create an instant API key",
        "description" : "Creates a free-tier API key instantly without authentication. The key can be used immediately for all API endpoints. Rate limited to 3 keys per hour per IP. Keys expire after 30 days.",
        "operationId" : "create_instant_api_key",
        "responses" : {
          "201" : {
            "description" : "API key created successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InstantApiKeyResponse"
                }
              }
            }
          },
          "429" : {
            "description" : "Key creation rate limit exceeded",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/V1ErrorWrapper"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal server error (e.g. database failure)",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/V1ErrorWrapper"
                }
              }
            }
          },
          "503" : {
            "description" : "Feature is currently disabled or temporarily unavailable",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/V1ErrorWrapper"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/traits/{slug}" : {
      "get" : {
        "tags" : [ "Collection Endpoints" ],
        "summary" : "Get collection traits",
        "description" : "Get all available traits for a collection with their value counts and data types.",
        "operationId" : "get_collection_traits",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique identifier for the specific collection",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "doodles-official"
        } ],
        "responses" : {
          "200" : {
            "description" : "Collection traits with categories and counts",
            "content" : {
              "application/json" : {
                "examples" : {
                  "TraitsResponse" : {
                    "description" : "Example response showing both string and numeric trait types",
                    "value" : {
                      "categories" : {
                        "face" : "string",
                        "background" : "string",
                        "level" : "number"
                      },
                      "counts" : {
                        "face" : {
                          "glasses" : 4,
                          "sunglasses" : 2
                        },
                        "background" : {
                          "red" : 6
                        },
                        "level" : {
                          "min" : 1,
                          "max" : 99
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/tokens/trending" : {
      "get" : {
        "tags" : [ "Token Endpoints" ],
        "summary" : "Get trending tokens",
        "description" : "Get trending tokens based on OpenSea's trending score algorithm. Returns tokens with high momentum including memecoins and newly popular assets.",
        "operationId" : "get_trending_tokens",
        "parameters" : [ {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of results to return (default: 20, max: 100)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          },
          "example" : 20
        }, {
          "name" : "chains",
          "in" : "query",
          "description" : "Filter by blockchain(s)",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ChainIdentifier"
            }
          },
          "example" : "ethereum"
        }, {
          "name" : "cursor",
          "in" : "query",
          "description" : "Pagination cursor for next page",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TokenPaginatedResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/tokens/top" : {
      "get" : {
        "tags" : [ "Token Endpoints" ],
        "summary" : "Get top tokens",
        "description" : "Get top tokens ranked by 24-hour trading volume. Returns established tokens with high market activity.",
        "operationId" : "get_top_tokens",
        "parameters" : [ {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of results to return (default: 20, max: 100)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          },
          "example" : 20
        }, {
          "name" : "chains",
          "in" : "query",
          "description" : "Filter by blockchain(s)",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ChainIdentifier"
            }
          },
          "example" : "ethereum"
        }, {
          "name" : "cursor",
          "in" : "query",
          "description" : "Pagination cursor for next page",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TokenPaginatedResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/swap/quote" : {
      "get" : {
        "tags" : [ "Swap Endpoints" ],
        "summary" : "Get swap quote",
        "description" : "Get a quote for swapping tokens, including price details and executable transaction data.",
        "operationId" : "get_swap_quote",
        "parameters" : [ {
          "name" : "from_chain",
          "in" : "query",
          "description" : "Chain of the token to swap from",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "ethereum"
        }, {
          "name" : "from_address",
          "in" : "query",
          "description" : "Contract address of the token to swap from",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0x0000000000000000000000000000000000000000"
        }, {
          "name" : "to_chain",
          "in" : "query",
          "description" : "Chain of the token to swap to",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "ethereum"
        }, {
          "name" : "to_address",
          "in" : "query",
          "description" : "Contract address of the token to swap to",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
        }, {
          "name" : "quantity",
          "in" : "query",
          "description" : "Amount to swap in the smallest unit of the token (e.g. wei for ETH)",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 1000000000000000000
        }, {
          "name" : "address",
          "in" : "query",
          "description" : "Wallet address executing the swap",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0x1234567890abcdef1234567890abcdef12345678"
        }, {
          "name" : "slippage",
          "in" : "query",
          "description" : "Slippage tolerance (0.0 to 0.5, default: 0.01)",
          "required" : false,
          "schema" : {
            "type" : "number",
            "format" : "double",
            "default" : 0.01
          },
          "example" : 0.01
        }, {
          "name" : "recipient",
          "in" : "query",
          "description" : "Recipient address (defaults to sender address)",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "0x1234567890abcdef1234567890abcdef12345678"
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SwapQuoteResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/search" : {
      "get" : {
        "tags" : [ "Search Endpoints" ],
        "summary" : "Search across OpenSea",
        "description" : "Search across collections, tokens, NFTs, and accounts. Results are ranked by relevance.",
        "operationId" : "search",
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "description" : "Search query text",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "bored ape"
        }, {
          "name" : "chains",
          "in" : "query",
          "description" : "Filter by blockchain(s)",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ChainIdentifier"
            }
          }
        }, {
          "name" : "asset_types",
          "in" : "query",
          "description" : "Filter by asset type(s). Valid values: collection, nft, token, account. Defaults to [collection, token] if not specified.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of results to return (default: 20, max: 50)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SearchResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/orders/chain/{chain}/protocol/{protocol_address}/{order_hash}" : {
      "get" : {
        "tags" : [ "Order Endpoints" ],
        "summary" : "Get an order",
        "description" : "Get a single order by its order hash.",
        "operationId" : "get_order",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "description" : "Blockchain chain identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "protocol_address",
          "in" : "path",
          "description" : "Protocol contract address",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "order_hash",
          "in" : "path",
          "description" : "Order hash",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Order details retrieved successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/GetOrderResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/offers/collection/{slug}" : {
      "get" : {
        "tags" : [ "Offer Endpoints" ],
        "summary" : "Get offers by collection",
        "description" : "Get collection offers on a collection.",
        "operationId" : "get_offers_collection",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique string to identify a collection on OpenSea",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OffersResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/offers/collection/{slug}/traits" : {
      "get" : {
        "tags" : [ "Offer Endpoints" ],
        "summary" : "Get offers by trait",
        "description" : "Get trait offers for a collection with the specified trait(s). Supports single or multiple traits.",
        "operationId" : "get_offers_collection_trait",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique string to identify a collection on OpenSea",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "type",
          "in" : "query",
          "description" : "Trait type (deprecated: use 'traits' parameter)",
          "required" : false,
          "deprecated" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "value",
          "in" : "query",
          "description" : "Trait value as string (deprecated: use 'traits' parameter)",
          "required" : false,
          "deprecated" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "float_value",
          "in" : "query",
          "description" : "Trait value as float (deprecated: use 'traits' parameter)",
          "required" : false,
          "deprecated" : true,
          "schema" : {
            "type" : "number",
            "format" : "double"
          }
        }, {
          "name" : "int_value",
          "in" : "query",
          "description" : "Trait value as integer (deprecated: use 'traits' parameter)",
          "required" : false,
          "deprecated" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "traits",
          "in" : "query",
          "description" : "JSON array of trait filters. Each trait has 'traitType' and 'value' fields. Example: [{\"traitType\":\"Background\",\"value\":\"Red\"},{\"traitType\":\"Eyes\",\"value\":\"Blue\"}]",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : [ {
            "traitType" : "Background",
            "value" : "Red"
          } ]
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OffersResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/offers/collection/{slug}/nfts/{identifier}" : {
      "get" : {
        "tags" : [ "Offer Endpoints" ],
        "summary" : "Get offers by NFT",
        "description" : "Get offers for an NFT.",
        "operationId" : "get_offers_nft",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique string to identify a collection on OpenSea",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "identifier",
          "in" : "path",
          "description" : "NFT token id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OffersResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/offers/collection/{slug}/nfts/{identifier}/best" : {
      "get" : {
        "tags" : [ "Offer Endpoints" ],
        "summary" : "Get best offer by NFT",
        "description" : "Get the best offer for an NFT.",
        "operationId" : "get_best_offer_nft",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique string to identify a collection on OpenSea",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "identifier",
          "in" : "path",
          "description" : "NFT token id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Offer"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/offers/collection/{slug}/all" : {
      "get" : {
        "tags" : [ "Offer Endpoints" ],
        "summary" : "Get all offers by collection",
        "description" : "Get all offers for a collection.",
        "operationId" : "list_offers_collection_all",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique string to identify a collection on OpenSea",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OffersResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/metadata/{chain}/{contractAddress}/{tokenId}" : {
      "get" : {
        "tags" : [ "NFT Endpoints" ],
        "summary" : "Get NFT metadata",
        "description" : "Get detailed metadata for an NFT including name, description, image, traits, and external links.",
        "operationId" : "get_nft_metadata",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "description" : "The blockchain on which to filter the results",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "ethereum"
        }, {
          "name" : "contractAddress",
          "in" : "path",
          "description" : "The unique public blockchain identifier for the contract",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0x8ba1f109551bD432803012645Hac136c94C19D6e"
        }, {
          "name" : "tokenId",
          "in" : "path",
          "description" : "The NFT token id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 1
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AssetMetadataResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/listings/collection/{slug}/nfts/{identifier}/best" : {
      "get" : {
        "tags" : [ "Listing Endpoints" ],
        "summary" : "Get best listing by NFT",
        "description" : "Get the best listing for an NFT.",
        "operationId" : "get_best_listing_nft",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique string to identify a collection on OpenSea",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "identifier",
          "in" : "path",
          "description" : "NFT token id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "include_private_listings",
          "in" : "query",
          "description" : "Whether to include private listings; defaults to false",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Listing"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/listings/collection/{slug}/best" : {
      "get" : {
        "tags" : [ "Listing Endpoints" ],
        "summary" : "Get best listings by collection",
        "description" : "Get the best listings for a collection sorted by price ascending. Note: results are not deduplicated by token ID — if a token has multiple listings, each listing is returned individually. Filter client-side if you need unique tokens.",
        "operationId" : "get_best_listings_collection",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique string to identify a collection on OpenSea",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "include_private_listings",
          "in" : "query",
          "description" : "Whether to include private listings; defaults to false",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ListingsResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/listings/collection/{slug}/all" : {
      "get" : {
        "tags" : [ "Listing Endpoints" ],
        "summary" : "Get all listings by collection",
        "description" : "Get all listings for a collection.",
        "operationId" : "list_listings_collection_all",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique string to identify a collection on OpenSea",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "include_private_listings",
          "in" : "query",
          "description" : "Whether to include private listings; defaults to false",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ListingsResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/events" : {
      "get" : {
        "tags" : [ "Analytics Endpoints" ],
        "summary" : "Get events",
        "description" : "Get a list of events, with optional filtering by event type and time range.",
        "operationId" : "list_events",
        "parameters" : [ {
          "name" : "after",
          "in" : "query",
          "description" : "Only show events after this timestamp (Unix timestamp in seconds)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "before",
          "in" : "query",
          "description" : "Only show events before this timestamp (Unix timestamp in seconds)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "event_type",
          "in" : "query",
          "description" : "Filter by event types. To get order invalidation and revalidation events, please use the Stream API. The order status can also be checked on the Get Order endpoint.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "sale", "transfer", "mint", "listing", "offer", "trait_offer", "collection_offer" ]
            }
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AssetEventsResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/events/collection/{slug}" : {
      "get" : {
        "tags" : [ "Analytics Endpoints" ],
        "summary" : "Get events (by collection)",
        "description" : "Get a list of events for a collection.",
        "operationId" : "list_events_by_collection",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique identifier for the collection",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "doodles-official"
        }, {
          "name" : "after",
          "in" : "query",
          "description" : "Only show events after this timestamp (Unix timestamp in seconds)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "before",
          "in" : "query",
          "description" : "Only show events before this timestamp (Unix timestamp in seconds)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "event_type",
          "in" : "query",
          "description" : "Filter by event types. To get order invalidation and revalidation events, please use the Stream API. The order status can also be checked on the Get Order endpoint.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "sale", "transfer", "mint", "listing", "offer", "trait_offer", "collection_offer" ]
            }
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AssetEventsResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/events/chain/{chain}/contract/{address}/nfts/{identifier}" : {
      "get" : {
        "tags" : [ "Analytics Endpoints" ],
        "summary" : "Get events (by NFT)",
        "description" : "Get a list of events for a specific NFT.",
        "operationId" : "list_events_by_nft",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "description" : "The blockchain on which to filter the results",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "ethereum"
        }, {
          "name" : "address",
          "in" : "path",
          "description" : "The unique public blockchain identifier for the contract",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0x8ba1f109551bD432803012645Hac136c94C19D6e"
        }, {
          "name" : "identifier",
          "in" : "path",
          "description" : "The NFT token id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 1
        }, {
          "name" : "after",
          "in" : "query",
          "description" : "Only show events after this timestamp (Unix timestamp in seconds)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "before",
          "in" : "query",
          "description" : "Only show events before this timestamp (Unix timestamp in seconds)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "event_type",
          "in" : "query",
          "description" : "Filter by event types. To get order invalidation and revalidation events, please use the Stream API. The order status can also be checked on the Get Order endpoint.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "sale", "transfer", "mint", "listing", "offer", "trait_offer", "collection_offer" ]
            }
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AssetEventsResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/events/accounts/{address}" : {
      "get" : {
        "tags" : [ "Analytics Endpoints" ],
        "summary" : "Get events (by account)",
        "description" : "Get a list of events for an account.",
        "operationId" : "list_events_by_account",
        "parameters" : [ {
          "name" : "address",
          "in" : "path",
          "description" : "The blockchain address of the account",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0x8ba1f109551bD432803012645Hac136c94C19D6e"
        }, {
          "name" : "after",
          "in" : "query",
          "description" : "Only show events after this timestamp (Unix timestamp in seconds)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "before",
          "in" : "query",
          "description" : "Only show events before this timestamp (Unix timestamp in seconds)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "event_type",
          "in" : "query",
          "description" : "Filter by event types. To get order invalidation and revalidation events, please use the Stream API. The order status can also be checked on the Get Order endpoint.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "sale", "transfer", "mint", "listing", "offer", "trait_offer", "collection_offer" ]
            }
          }
        }, {
          "name" : "chain",
          "in" : "query",
          "description" : "Filter by blockchain",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AssetEventsResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/drops" : {
      "get" : {
        "tags" : [ "Drops Endpoints" ],
        "summary" : "Get drops",
        "description" : "Get a list of NFT drops (mints) by type: featured, upcoming, or recently_minted. Results may be fewer than the requested limit due to post-fetch filtering.",
        "operationId" : "get_drops",
        "parameters" : [ {
          "name" : "type",
          "in" : "query",
          "description" : "Drop calendar type: featured, upcoming, or recently_minted",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "featured"
          },
          "example" : "featured"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of results to return (1-100, default: 20)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          },
          "example" : 20
        }, {
          "name" : "chains",
          "in" : "query",
          "description" : "Comma-separated list of chains to filter by (e.g. ethereum, base). Omit to return drops on all chains.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ChainIdentifier"
            }
          },
          "example" : "ethereum,base"
        }, {
          "name" : "cursor",
          "in" : "query",
          "description" : "Pagination cursor for next page",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Paginated list of drops",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DropPaginatedResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/drops/{slug}" : {
      "get" : {
        "tags" : [ "Drops Endpoints" ],
        "summary" : "Get drop by collection slug",
        "description" : "Get detailed drop information for a collection, including stages and supply.",
        "operationId" : "get_drop_by_slug",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Collection slug",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "cool-cats"
        } ],
        "responses" : {
          "200" : {
            "description" : "Detailed drop information",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DropDetailedResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/collections" : {
      "get" : {
        "tags" : [ "Collection Endpoints" ],
        "summary" : "Get multiple collections",
        "description" : "Get a list of collections with filters and sorting options.",
        "operationId" : "list_collections",
        "parameters" : [ {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of collections to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of collections to return per page",
            "example" : 10,
            "maximum" : 100,
            "minimum" : 1
          },
          "example" : 10
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "chain",
          "in" : "query",
          "description" : "Blockchain to filter by",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "creator_username",
          "in" : "query",
          "description" : "Username of collection creator to filter by",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "include_hidden",
          "in" : "query",
          "description" : "Include hidden collections in results",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "order_by",
          "in" : "query",
          "description" : "Field to order results by",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "created_date"
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CollectionPaginatedResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/collections/{slug}" : {
      "get" : {
        "tags" : [ "Collection Endpoints" ],
        "summary" : "Get a single collection",
        "description" : "Get a single collection including details such as fees, traits, and links.",
        "operationId" : "get_collection",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique identifier for the specific collection",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "doodles-official"
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CollectionDetailedResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/collections/{slug}/stats" : {
      "get" : {
        "tags" : [ "Collection Endpoints", "Analytics Endpoints" ],
        "summary" : "Get collection stats",
        "description" : "Get comprehensive statistics for a collection including volume, floor price, and trading metrics.",
        "operationId" : "get_collection_stats",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Unique identifier for the specific collection",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "doodles-official"
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CollectionStatsResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/collections/trending" : {
      "get" : {
        "tags" : [ "Collection Endpoints" ],
        "summary" : "Get trending collections",
        "description" : "Get a list of trending NFT collections sorted by sales activity over a specified timeframe. Trending is determined by sales volume and activity metrics. Available timeframes range from 1 minute to all time. For the one_day timeframe without a chain filter, collections are sorted by a composite trending score; all other timeframes sort by raw sales count. Results are filtered to verified, non-spam, non-NSFW collections with minimum volume thresholds.",
        "operationId" : "get_trending_collections",
        "parameters" : [ {
          "name" : "timeframe",
          "in" : "query",
          "description" : "Time window for trending calculation. Options: one_minute, five_minutes, fifteen_minutes, one_hour, one_day, seven_days, thirty_days, one_year, all_time.",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "one_day"
          },
          "example" : "one_day"
        }, {
          "name" : "chains",
          "in" : "query",
          "description" : "Blockchain(s) to filter by. Comma-separated list of chain identifiers. Unsupported chains are silently ignored; a 400 is returned only if all specified chains are unsupported.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ChainIdentifier"
            }
          },
          "example" : "ethereum,base"
        }, {
          "name" : "category",
          "in" : "query",
          "description" : "Category to filter by (e.g. art, gaming, memberships, music, pfps, photography, domain-names, virtual-worlds, sports-collectibles).",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "pfps"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Maximum number of collections to return (1-100).",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          },
          "example" : 20
        }, {
          "name" : "cursor",
          "in" : "query",
          "description" : "Cursor for pagination. Use the 'next' value from a previous response.",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Trending collections",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CollectionPaginatedResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/collections/top" : {
      "get" : {
        "tags" : [ "Collection Endpoints" ],
        "summary" : "Get top collections",
        "description" : "Get top NFT collections ranked by various stats (sorted descending). Unlike /trending, results are not filtered by verification status; spam-tagged collections are excluded via trust-safety enforcement states. Available sort options: one_day_volume, seven_days_volume, thirty_days_volume, floor_price, one_day_sales, seven_days_sales, thirty_days_sales, total_volume, total_sales.",
        "operationId" : "get_top_collections",
        "parameters" : [ {
          "name" : "sort_by",
          "in" : "query",
          "description" : "The stat to sort collections by (always sorted descending). Options: one_day_volume, seven_days_volume, thirty_days_volume, floor_price, one_day_sales, seven_days_sales, thirty_days_sales, total_volume, total_sales",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "one_day_volume"
          },
          "example" : "one_day_volume"
        }, {
          "name" : "chains",
          "in" : "query",
          "description" : "Blockchain(s) to filter by. Comma-separated list of chain identifiers. Unsupported chains are silently ignored; a 400 is returned only if all specified chains are unsupported.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ChainIdentifier"
            }
          },
          "example" : "ethereum,base"
        }, {
          "name" : "category",
          "in" : "query",
          "description" : "Category to filter by (e.g. art, gaming, memberships, music, pfps, photography, domain-names, virtual-worlds, sports-collectibles).",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "example" : "pfps"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Maximum number of collections to return (1-100).",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 50
          },
          "example" : 50
        }, {
          "name" : "cursor",
          "in" : "query",
          "description" : "Cursor for pagination",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Top collections list",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CollectionPaginatedResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/collection/{slug}/nfts" : {
      "get" : {
        "tags" : [ "NFT Endpoints" ],
        "summary" : "Get NFTs by collection",
        "description" : "Get all NFTs in a specific collection.",
        "operationId" : "get_nfts_by_collection",
        "parameters" : [ {
          "name" : "slug",
          "in" : "path",
          "description" : "Collection slug",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NftListResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/chains" : {
      "get" : {
        "tags" : [ "Chain Endpoints" ],
        "summary" : "Get supported chains",
        "description" : "Get all supported blockchain chains with metadata including name, native currency symbol, swap support, and block explorer information.",
        "operationId" : "get_chains",
        "responses" : {
          "200" : {
            "description" : "List of supported chains",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ChainListResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/chain/{chain}/token/{address}" : {
      "get" : {
        "tags" : [ "Token Endpoints" ],
        "summary" : "Get token details",
        "description" : "Get detailed information about a specific token by chain and contract address.",
        "operationId" : "get_token",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "description" : "The blockchain on which the token exists",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "ethereum"
        }, {
          "name" : "address",
          "in" : "path",
          "description" : "The contract address of the token",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TokenDetailedResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/chain/{chain}/payment_token/{address}" : {
      "get" : {
        "tags" : [ "Contract Endpoints" ],
        "summary" : "Get payment token",
        "description" : "Get a payment token by chain and contract address.",
        "operationId" : "get_payment_token",
        "parameters" : [ {
          "name" : "address",
          "in" : "path",
          "description" : "The unique public blockchain identifier for the contract",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "chain",
          "in" : "path",
          "description" : "The blockchain on which to filter the results",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentToken"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/chain/{chain}/contract/{address}" : {
      "get" : {
        "tags" : [ "Contract Endpoints" ],
        "summary" : "Get contract",
        "description" : "Get contract metadata including collection information, contract standards, and ownership details.",
        "operationId" : "get_contract",
        "parameters" : [ {
          "name" : "address",
          "in" : "path",
          "description" : "The unique public blockchain identifier for the contract",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "chain",
          "in" : "path",
          "description" : "The blockchain on which to filter the results",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/chain/{chain}/contract/{address}/nfts" : {
      "get" : {
        "tags" : [ "NFT Endpoints" ],
        "summary" : "Get NFTs by contract",
        "description" : "Get all NFTs for a specific contract address on a blockchain.",
        "operationId" : "get_nfts_by_contract",
        "parameters" : [ {
          "name" : "address",
          "in" : "path",
          "description" : "Contract address",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "chain",
          "in" : "path",
          "description" : "Blockchain chain identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NftListResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/chain/{chain}/contract/{address}/nfts/{identifier}" : {
      "get" : {
        "tags" : [ "NFT Endpoints" ],
        "summary" : "Get NFT",
        "description" : "Get metadata, traits, ownership information, and rarity for a single NFT.",
        "operationId" : "get_nft",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "description" : "The blockchain on which to filter the results",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "ethereum"
        }, {
          "name" : "address",
          "in" : "path",
          "description" : "The unique public blockchain identifier for the contract",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0x8ba1f109551bD432803012645Hac136c94C19D6e"
        }, {
          "name" : "identifier",
          "in" : "path",
          "description" : "The NFT token id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 1
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NftResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/chain/{chain}/contract/{address}/nfts/{identifier}/collection" : {
      "get" : {
        "tags" : [ "Collection Endpoints" ],
        "summary" : "Get collection by NFT",
        "description" : "Get the collection that an NFT belongs to. This is useful for multi-contract collections like Art Blocks where the item ID disambiguates which collection the NFT belongs to.",
        "operationId" : "get_nft_collection",
        "parameters" : [ {
          "name" : "chain",
          "in" : "path",
          "description" : "The blockchain on which to filter the results",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "ethereum"
        }, {
          "name" : "address",
          "in" : "path",
          "description" : "The unique public blockchain identifier for the contract",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0x8ba1f109551bD432803012645Hac136c94C19D6e"
        }, {
          "name" : "identifier",
          "in" : "path",
          "description" : "The NFT token id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : 1
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CollectionDetailedResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/chain/{chain}/account/{address}/nfts" : {
      "get" : {
        "tags" : [ "NFT Endpoints" ],
        "summary" : "Get NFTs by account",
        "description" : "Get all NFTs owned by a specific account on a blockchain, with optional collection filtering.",
        "operationId" : "get_nfts_by_account",
        "parameters" : [ {
          "name" : "address",
          "in" : "path",
          "description" : "Account address",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "chain",
          "in" : "path",
          "description" : "Blockchain chain identifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "collection",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of items to return per page",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of items to return per page",
            "example" : 20,
            "maximum" : 200,
            "minimum" : 1
          },
          "example" : 20
        }, {
          "name" : "next.value",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NftListResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/accounts/{address_or_username}" : {
      "get" : {
        "tags" : [ "Account Endpoints" ],
        "summary" : "Get an OpenSea account profile",
        "description" : "Get an OpenSea Account Profile including details such as bio, social media usernames, and profile image.",
        "operationId" : "get_account",
        "parameters" : [ {
          "name" : "address_or_username",
          "in" : "path",
          "description" : "The blockchain address or username of the account to retrieve",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0x8ba1f109551bD432803012645Hac136c94C19D6e"
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AccountResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/accounts/resolve/{identifier}" : {
      "get" : {
        "tags" : [ "Account Endpoints" ],
        "summary" : "Resolve an account identifier",
        "description" : "Resolve an ENS name (e.g. vitalik.eth), OpenSea username, or wallet address to canonical account info including address, username, and ENS name. The ENS path performs both forward resolution (name → address) and reverse lookup (address → canonical primary name). The address and ENS paths perform enrichment calls (username + ENS reverse lookup) in parallel. The username path only needs an ENS reverse lookup after the initial resolution and runs it sequentially. The ENS and username paths require an extra initial call and may be slower than the address path on cache misses.",
        "operationId" : "resolve_account",
        "parameters" : [ {
          "name" : "identifier",
          "in" : "path",
          "description" : "An ENS name (e.g. vitalik.eth), OpenSea username, or wallet address to resolve",
          "required" : true,
          "schema" : {
            "type" : "string",
            "maxLength" : 256,
            "minLength" : 0
          },
          "example" : "vitalik.eth"
        } ],
        "responses" : {
          "200" : {
            "description" : "Resolved account info",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AccountResolveResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "404" : {
            "$ref" : "#/components/responses/NotFound"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/account/{address}/tokens" : {
      "get" : {
        "tags" : [ "Token Endpoints" ],
        "summary" : "Get token balances by account",
        "description" : "Get fungible token balances for a specific wallet address. Returns quantity (in display units, not raw/wei), USD value, and token metadata for each token held.",
        "operationId" : "get_token_balances_by_account",
        "parameters" : [ {
          "name" : "address",
          "in" : "path",
          "description" : "Wallet address",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "example" : "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of results to return (default: 20, max: 25)",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "default" : 20
          },
          "example" : 20
        }, {
          "name" : "chains",
          "in" : "query",
          "description" : "Filter by blockchain(s)",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ChainIdentifier"
            }
          },
          "example" : "ethereum"
        }, {
          "name" : "sort_by",
          "in" : "query",
          "description" : "Sort field (default: usd_value)",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "USD_VALUE", "MARKET_CAP", "ONE_DAY_VOLUME", "PRICE", "ONE_DAY_PRICE_CHANGE", "SEVEN_DAY_PRICE_CHANGE" ]
          },
          "example" : "usd_value"
        }, {
          "name" : "sort_direction",
          "in" : "query",
          "description" : "Sort direction (default: desc)",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum" : [ "asc", "desc" ]
          },
          "example" : "desc"
        }, {
          "name" : "disable_spam_filtering",
          "in" : "query",
          "description" : "Disable spam token filtering (default: false)",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          },
          "example" : false
        }, {
          "name" : "cursor",
          "in" : "query",
          "description" : "Pagination cursor for next page",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TokenBalancePaginatedResponse"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/BadRequest"
          },
          "500" : {
            "$ref" : "#/components/responses/InternalError"
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "ChainIdentifier" : {
        "type" : "string",
        "default" : "ethereum",
        "description" : "Blockchain chain identifier. Use the chain slug (e.g., 'ethereum', 'polygon', 'arbitrum', 'optimism', 'base')",
        "enum" : [ "blast", "base", "ethereum", "zora", "arbitrum", "sei", "avalanche", "polygon", "optimism", "ape_chain", "flow", "b3", "soneium", "ronin", "bera_chain", "solana", "shape", "unichain", "gunzilla", "abstract", "animechain", "hyperevm", "somnia", "monad", "hyperliquid", "megaeth", "ink" ],
        "example" : "ethereum"
      },
      "ConsiderationItem" : {
        "type" : "object",
        "properties" : {
          "itemType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "token" : {
            "type" : "string"
          },
          "identifierOrCriteria" : {
            "type" : "string"
          },
          "startAmount" : {
            "type" : "string"
          },
          "endAmount" : {
            "type" : "string"
          },
          "recipient" : {
            "type" : "string"
          }
        },
        "required" : [ "endAmount", "identifierOrCriteria", "itemType", "recipient", "startAmount", "token" ]
      },
      "OfferItem" : {
        "type" : "object",
        "properties" : {
          "itemType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "token" : {
            "type" : "string"
          },
          "identifierOrCriteria" : {
            "type" : "string"
          },
          "startAmount" : {
            "type" : "string"
          },
          "endAmount" : {
            "type" : "string"
          }
        },
        "required" : [ "endAmount", "identifierOrCriteria", "itemType", "startAmount", "token" ]
      },
      "SeaportParameters" : {
        "type" : "object",
        "properties" : {
          "offerer" : {
            "type" : "string"
          },
          "zone" : {
            "type" : "string"
          },
          "offer" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OfferItem"
            }
          },
          "consideration" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConsiderationItem"
            }
          },
          "orderType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "startTime" : {
            "type" : "string"
          },
          "endTime" : {
            "type" : "string"
          },
          "zoneHash" : {
            "type" : "string"
          },
          "salt" : {
            "type" : "string"
          },
          "conduitKey" : {
            "type" : "string"
          },
          "totalOriginalConsiderationItems" : {
            "type" : "integer",
            "format" : "int32"
          },
          "counter" : {
            "type" : "string"
          }
        },
        "required" : [ "conduitKey", "consideration", "counter", "endTime", "offer", "offerer", "orderType", "salt", "startTime", "totalOriginalConsiderationItems", "zoneHash" ]
      },
      "SeaportRequest" : {
        "type" : "object",
        "properties" : {
          "parameters" : {
            "$ref" : "#/components/schemas/SeaportParameters"
          },
          "protocol_address" : {
            "type" : "string"
          },
          "signature" : {
            "type" : "string"
          }
        },
        "required" : [ "parameters", "protocol_address", "signature" ]
      },
      "CollectionInner" : {
        "type" : "object",
        "properties" : {
          "slug" : {
            "type" : "string"
          }
        },
        "required" : [ "slug" ]
      },
      "CollectionResponse" : {
        "type" : "object",
        "properties" : {
          "collection" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "image_url" : {
            "type" : "string"
          },
          "banner_image_url" : {
            "type" : "string"
          },
          "owner" : {
            "type" : "string"
          },
          "safelist_status" : {
            "type" : "string"
          },
          "category" : {
            "type" : "string"
          },
          "is_disabled" : {
            "type" : "boolean"
          },
          "is_nsfw" : {
            "type" : "boolean"
          },
          "trait_offers_enabled" : {
            "type" : "boolean"
          },
          "collection_offers_enabled" : {
            "type" : "boolean"
          },
          "opensea_url" : {
            "type" : "string"
          },
          "project_url" : {
            "type" : "string"
          },
          "wiki_url" : {
            "type" : "string"
          },
          "discord_url" : {
            "type" : "string"
          },
          "telegram_url" : {
            "type" : "string"
          },
          "twitter_username" : {
            "type" : "string"
          },
          "instagram_username" : {
            "type" : "string"
          },
          "contracts" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Contract"
            }
          }
        },
        "required" : [ "collection", "collection_offers_enabled", "contracts", "is_disabled", "is_nsfw", "name", "opensea_url", "safelist_status", "trait_offers_enabled" ]
      },
      "Contract" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "string"
          },
          "chain" : {
            "type" : "string"
          }
        },
        "required" : [ "address", "chain" ]
      },
      "ContractInner" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "string"
          }
        },
        "required" : [ "address" ]
      },
      "CreateOfferResponse" : {
        "type" : "object",
        "properties" : {
          "order" : {
            "$ref" : "#/components/schemas/SimpleOrderV2Serializer",
            "deprecated" : true,
            "description" : "Deprecated: Use the 'offer' field instead for the current response format."
          },
          "offer" : {
            "$ref" : "#/components/schemas/Offer"
          }
        },
        "required" : [ "offer", "order" ]
      },
      "Criteria" : {
        "type" : "object",
        "properties" : {
          "collection" : {
            "$ref" : "#/components/schemas/CollectionInner"
          },
          "contract" : {
            "$ref" : "#/components/schemas/ContractInner"
          },
          "trait" : {
            "$ref" : "#/components/schemas/TraitData",
            "deprecated" : true,
            "description" : "Use traits field instead. Only populated for single-trait offers."
          },
          "traits" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TraitData"
            }
          },
          "numeric_traits" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NumericTraitData"
            }
          },
          "encoded_token_ids" : {
            "type" : "string"
          }
        }
      },
      "Item" : {
        "type" : "object",
        "properties" : {
          "itemType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "token" : {
            "type" : "string"
          },
          "identifierOrCriteria" : {
            "type" : "string"
          },
          "startAmount" : {
            "type" : "string"
          },
          "endAmount" : {
            "type" : "string"
          }
        },
        "required" : [ "endAmount", "identifierOrCriteria", "itemType", "startAmount", "token" ]
      },
      "NumericTraitData" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "min" : {
            "type" : "number",
            "format" : "float"
          },
          "max" : {
            "type" : "number",
            "format" : "float"
          }
        },
        "required" : [ "type" ]
      },
      "Offer" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/ListingOrOffer"
        }, {
          "type" : "object",
          "properties" : {
            "order_hash" : {
              "type" : "string"
            },
            "chain" : {
              "type" : "string"
            },
            "protocol_data" : {
              "$ref" : "#/components/schemas/ProtocolData"
            },
            "protocol_address" : {
              "type" : "string"
            },
            "remaining_quantity" : {
              "type" : "integer",
              "format" : "int64"
            },
            "criteria" : {
              "$ref" : "#/components/schemas/Criteria"
            },
            "price" : {
              "$ref" : "#/components/schemas/Price"
            },
            "status" : {
              "type" : "string",
              "enum" : [ "ACTIVE", "INACTIVE", "FULFILLED", "EXPIRED", "CANCELLED" ]
            }
          }
        } ],
        "required" : [ "chain", "order_hash", "price", "remaining_quantity", "status" ]
      },
      "Order" : {
        "type" : "object",
        "properties" : {
          "order_hash" : {
            "type" : "string"
          },
          "chain" : {
            "type" : "string"
          },
          "protocol_data" : {
            "$ref" : "#/components/schemas/ProtocolData"
          },
          "protocol_address" : {
            "type" : "string"
          },
          "remaining_quantity" : {
            "type" : "integer",
            "format" : "int64"
          }
        },
        "required" : [ "chain", "order_hash", "remaining_quantity" ]
      },
      "Parameters" : {
        "type" : "object",
        "properties" : {
          "offerer" : {
            "type" : "string"
          },
          "offer" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Item"
            }
          },
          "consideration" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConsiderationItem"
            }
          },
          "startTime" : {
            "type" : "string"
          },
          "endTime" : {
            "type" : "string"
          },
          "orderType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "zone" : {
            "type" : "string"
          },
          "zoneHash" : {
            "type" : "string"
          },
          "salt" : {
            "type" : "string"
          },
          "conduitKey" : {
            "type" : "string"
          },
          "totalOriginalConsiderationItems" : {
            "type" : "integer",
            "format" : "int32"
          },
          "counter" : {
            "type" : "integer"
          }
        },
        "required" : [ "conduitKey", "consideration", "counter", "endTime", "offer", "offerer", "orderType", "salt", "startTime", "totalOriginalConsiderationItems", "zone", "zoneHash" ]
      },
      "Price" : {
        "type" : "object",
        "properties" : {
          "currency" : {
            "type" : "string"
          },
          "decimals" : {
            "type" : "integer",
            "format" : "int32"
          },
          "value" : {
            "type" : "string"
          }
        },
        "required" : [ "currency", "decimals", "value" ]
      },
      "ProtocolData" : {
        "type" : "object",
        "properties" : {
          "parameters" : {
            "$ref" : "#/components/schemas/Parameters"
          },
          "signature" : {
            "type" : "string"
          }
        },
        "required" : [ "parameters" ]
      },
      "SimpleAccount" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "string"
          },
          "profile_img_url" : {
            "type" : "string"
          },
          "config" : {
            "type" : "string"
          }
        },
        "required" : [ "address" ]
      },
      "SimpleAsset" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64"
          },
          "token_id" : {
            "type" : "string"
          },
          "num_sales" : {
            "type" : "integer",
            "format" : "int32"
          },
          "background_color" : {
            "type" : "string"
          },
          "image_url" : {
            "type" : "string"
          },
          "image_preview_url" : {
            "type" : "string"
          },
          "image_thumbnail_url" : {
            "type" : "string"
          },
          "image_original_url" : {
            "type" : "string"
          },
          "animation_url" : {
            "type" : "string"
          },
          "animation_original_url" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "external_link" : {
            "type" : "string"
          },
          "asset_contract" : {
            "$ref" : "#/components/schemas/SimpleAssetContract"
          },
          "permalink" : {
            "type" : "string"
          },
          "collection" : {
            "$ref" : "#/components/schemas/CollectionResponse"
          },
          "decimals" : {
            "type" : "integer",
            "format" : "int32"
          },
          "token_metadata" : {
            "type" : "string"
          },
          "is_nsfw" : {
            "type" : "boolean"
          },
          "owner" : {
            "$ref" : "#/components/schemas/SimpleAccount"
          }
        },
        "required" : [ "asset_contract", "token_id" ]
      },
      "SimpleAssetBundle" : {
        "type" : "object",
        "properties" : {
          "assets" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SimpleAsset"
            }
          },
          "maker" : {
            "$ref" : "#/components/schemas/SimpleAccount"
          },
          "asset_contract" : {
            "$ref" : "#/components/schemas/SimpleAssetContract"
          },
          "slug" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "external_link" : {
            "type" : "string"
          },
          "permalink" : {
            "type" : "string"
          },
          "seaport_sell_orders" : {
            "type" : "array",
            "items" : { }
          }
        },
        "required" : [ "assets" ]
      },
      "SimpleAssetContract" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "string"
          },
          "chain_identifier" : {
            "type" : "string"
          },
          "schema_name" : {
            "type" : "string"
          },
          "asset_contract_type" : {
            "type" : "string"
          }
        },
        "required" : [ "address", "asset_contract_type", "chain_identifier" ]
      },
      "SimpleFee" : {
        "type" : "object",
        "properties" : {
          "account" : {
            "$ref" : "#/components/schemas/SimpleAccount"
          },
          "basis_points" : {
            "type" : "string"
          }
        },
        "required" : [ "basis_points" ]
      },
      "SimpleOrderV2Serializer" : {
        "type" : "object",
        "properties" : {
          "created_date" : {
            "type" : "string",
            "format" : "date-time"
          },
          "closing_date" : {
            "type" : "string",
            "format" : "date-time"
          },
          "listing_time" : {
            "type" : "integer",
            "format" : "int64"
          },
          "expiration_time" : {
            "type" : "integer",
            "format" : "int64"
          },
          "order_hash" : {
            "type" : "string"
          },
          "protocol_data" : {
            "$ref" : "#/components/schemas/V1ProtocolData"
          },
          "protocol_address" : {
            "type" : "string"
          },
          "current_price" : {
            "type" : "string"
          },
          "maker" : {
            "$ref" : "#/components/schemas/SimpleAccount"
          },
          "taker" : {
            "$ref" : "#/components/schemas/SimpleAccount"
          },
          "maker_fees" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SimpleFee"
            }
          },
          "taker_fees" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SimpleFee"
            }
          },
          "side" : {
            "type" : "string"
          },
          "order_type" : {
            "type" : "string"
          },
          "cancelled" : {
            "type" : "boolean"
          },
          "finalized" : {
            "type" : "boolean"
          },
          "marked_invalid" : {
            "type" : "boolean"
          },
          "remaining_quantity" : {
            "type" : "integer",
            "format" : "int64"
          },
          "status" : {
            "type" : "string",
            "enum" : [ "ACTIVE", "INACTIVE", "FULFILLED", "EXPIRED", "CANCELLED" ]
          },
          "maker_asset_bundle" : {
            "$ref" : "#/components/schemas/SimpleAssetBundle"
          },
          "taker_asset_bundle" : {
            "$ref" : "#/components/schemas/SimpleAssetBundle"
          }
        },
        "required" : [ "cancelled", "created_date", "current_price", "expiration_time", "finalized", "listing_time", "maker_fees", "marked_invalid", "order_hash", "order_type", "remaining_quantity", "side", "status", "taker_fees" ]
      },
      "TraitData" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          }
        },
        "required" : [ "type", "value" ]
      },
      "V1ProtocolData" : {
        "type" : "object",
        "properties" : {
          "parameters" : {
            "type" : "object",
            "additionalProperties" : { }
          },
          "signature" : {
            "type" : "string"
          }
        }
      },
      "CreateListingResponse" : {
        "type" : "object",
        "properties" : {
          "order" : {
            "$ref" : "#/components/schemas/SimpleOrderV2Serializer",
            "deprecated" : true,
            "description" : "Deprecated: Use the 'listing' field instead for the current response format."
          },
          "listing" : {
            "$ref" : "#/components/schemas/Listing"
          }
        },
        "required" : [ "listing", "order" ]
      },
      "Listing" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/ListingOrOffer"
        }, {
          "type" : "object",
          "properties" : {
            "order_hash" : {
              "type" : "string"
            },
            "chain" : {
              "type" : "string"
            },
            "protocol_data" : {
              "$ref" : "#/components/schemas/ProtocolData"
            },
            "protocol_address" : {
              "type" : "string"
            },
            "remaining_quantity" : {
              "type" : "integer",
              "format" : "int64"
            },
            "price" : {
              "$ref" : "#/components/schemas/ListingPrice"
            },
            "type" : {
              "type" : "string"
            },
            "status" : {
              "type" : "string",
              "enum" : [ "ACTIVE", "INACTIVE", "FULFILLED", "EXPIRED", "CANCELLED" ]
            }
          }
        } ],
        "required" : [ "chain", "order_hash", "price", "remaining_quantity", "status", "type" ]
      },
      "ListingPrice" : {
        "type" : "object",
        "properties" : {
          "current" : {
            "$ref" : "#/components/schemas/Price"
          }
        },
        "required" : [ "current" ]
      },
      "CancelRequest" : {
        "type" : "object",
        "properties" : {
          "offererSignature" : {
            "type" : "string"
          }
        }
      },
      "CancelResponse" : {
        "type" : "object",
        "properties" : {
          "last_signature_issued_valid_until" : {
            "type" : "string"
          }
        },
        "required" : [ "last_signature_issued_valid_until" ]
      },
      "CollectionCriteria" : {
        "type" : "object",
        "properties" : {
          "slug" : {
            "type" : "string"
          }
        },
        "required" : [ "slug" ]
      },
      "ContractCriteria" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "string"
          }
        },
        "required" : [ "address" ]
      },
      "CriteriaRequest" : {
        "type" : "object",
        "description" : "Criteria for collection or trait offers. When traits are specified, the offer targets NFTs matching those traits. For supported collections, the identifierOrCriteria (merkle root) will be '0' and trait matching is validated server-side at fulfillment time.",
        "properties" : {
          "collection" : {
            "$ref" : "#/components/schemas/CollectionCriteria"
          },
          "contract" : {
            "$ref" : "#/components/schemas/ContractCriteria"
          },
          "trait" : {
            "$ref" : "#/components/schemas/TraitCriteria",
            "deprecated" : true,
            "description" : "Deprecated: Use 'traits' array instead which supports both single and multiple traits."
          },
          "traits" : {
            "type" : "array",
            "description" : "Trait criteria for the offer. Each trait specifies a type and value that target NFTs must match. These traits are validated server-side at fulfillment time.",
            "items" : {
              "$ref" : "#/components/schemas/TraitCriteria"
            }
          },
          "numericTraits" : {
            "type" : "array",
            "description" : "Numeric trait criteria for the offer. Each entry specifies a trait type with optional min/max range bounds. Can be combined with categorical traits.",
            "items" : {
              "$ref" : "#/components/schemas/NumericTraitCriteria"
            }
          }
        },
        "required" : [ "collection" ]
      },
      "NumericTraitCriteria" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "min" : {
            "type" : "number",
            "format" : "double"
          },
          "max" : {
            "type" : "number",
            "format" : "double"
          }
        },
        "required" : [ "type" ]
      },
      "OfferWithCriteriaRequest" : {
        "type" : "object",
        "properties" : {
          "protocol_data" : {
            "$ref" : "#/components/schemas/SeaportProtocolDataModel"
          },
          "criteria" : {
            "$ref" : "#/components/schemas/CriteriaRequest"
          },
          "protocol_address" : {
            "type" : "string"
          }
        },
        "required" : [ "criteria", "protocol_address", "protocol_data" ]
      },
      "SeaportProtocolDataModel" : {
        "type" : "object",
        "properties" : {
          "parameters" : {
            "$ref" : "#/components/schemas/SeaportParameters"
          },
          "signature" : {
            "type" : "string"
          }
        },
        "required" : [ "parameters", "signature" ]
      },
      "TraitCriteria" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          }
        },
        "required" : [ "type", "value" ]
      },
      "ConsiderationObject" : {
        "type" : "object",
        "properties" : {
          "asset_contract_address" : {
            "type" : "string"
          },
          "token_id" : {
            "type" : "string"
          }
        },
        "required" : [ "asset_contract_address", "token_id" ]
      },
      "FulfillerObject" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "string"
          }
        },
        "required" : [ "address" ]
      },
      "FullfillmentDataRequest" : {
        "type" : "object",
        "properties" : {
          "offer" : {
            "$ref" : "#/components/schemas/OfferObject"
          },
          "fulfiller" : {
            "$ref" : "#/components/schemas/FulfillerObject"
          },
          "consideration" : {
            "$ref" : "#/components/schemas/ConsiderationObject"
          },
          "units_to_fill" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Optional quantity of units to fulfill; defaults to 1 for offers"
          },
          "include_optional_creator_fees" : {
            "type" : "boolean",
            "default" : false,
            "description" : "Whether to include optional creator fees in the fulfillment. If creator fees are already required, this is a no-op. Defaults to false."
          }
        },
        "required" : [ "fulfiller", "offer" ]
      },
      "OfferObject" : {
        "type" : "object",
        "properties" : {
          "hash" : {
            "type" : "string"
          },
          "chain" : {
            "type" : "string"
          },
          "protocol_address" : {
            "type" : "string"
          }
        },
        "required" : [ "chain", "hash", "protocol_address" ]
      },
      "AdditionalRecipient" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Type"
            }
          },
          "amount" : {
            "type" : "integer"
          },
          "recipient" : {
            "type" : "string"
          },
          "typeAsString" : {
            "type" : "string"
          },
          "nativeValueCopy" : {
            "type" : "array",
            "items" : { }
          }
        }
      },
      "Address" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "string"
          },
          "typeAsString" : {
            "type" : "string"
          }
        }
      },
      "AdvancedOrder" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Type"
            }
          },
          "parameters" : {
            "$ref" : "#/components/schemas/OrderParameters"
          },
          "numerator" : {
            "type" : "integer"
          },
          "denominator" : {
            "type" : "integer"
          },
          "signature" : {
            "type" : "string",
            "format" : "byte"
          },
          "extraData" : {
            "type" : "string",
            "format" : "byte"
          },
          "typeAsString" : {
            "type" : "string"
          },
          "nativeValueCopy" : {
            "type" : "array",
            "items" : { }
          }
        }
      },
      "BasicOrderParameters" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Type"
            }
          },
          "considerationToken" : {
            "type" : "string"
          },
          "considerationIdentifier" : {
            "type" : "integer"
          },
          "considerationAmount" : {
            "type" : "integer"
          },
          "offerer" : {
            "type" : "string"
          },
          "zone" : {
            "type" : "string"
          },
          "offerToken" : {
            "type" : "string"
          },
          "offerIdentifier" : {
            "type" : "integer"
          },
          "offerAmount" : {
            "type" : "integer"
          },
          "basicOrderType" : {
            "type" : "integer"
          },
          "startTime" : {
            "type" : "integer"
          },
          "endTime" : {
            "type" : "integer"
          },
          "zoneHash" : {
            "type" : "string",
            "format" : "byte"
          },
          "salt" : {
            "type" : "integer"
          },
          "offererConduitKey" : {
            "type" : "string",
            "format" : "byte"
          },
          "fulfillerConduitKey" : {
            "type" : "string",
            "format" : "byte"
          },
          "totalOriginalAdditionalRecipients" : {
            "type" : "integer"
          },
          "additionalRecipients" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AdditionalRecipient"
            }
          },
          "signature" : {
            "type" : "string",
            "format" : "byte"
          },
          "typeAsString" : {
            "type" : "string"
          },
          "nativeValueCopy" : {
            "type" : "array",
            "items" : { }
          }
        }
      },
      "CriteriaResolver" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Type"
            }
          },
          "orderIndex" : {
            "type" : "integer"
          },
          "side" : {
            "type" : "integer"
          },
          "index" : {
            "type" : "integer"
          },
          "identifier" : {
            "type" : "integer"
          },
          "criteriaProof" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "byte"
            }
          },
          "typeAsString" : {
            "type" : "string"
          },
          "nativeValueCopy" : {
            "type" : "array",
            "items" : { }
          }
        }
      },
      "FulfillAdvancedOrder" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/SeaportCall"
        }, {
          "type" : "object",
          "properties" : {
            "advancedOrder" : {
              "$ref" : "#/components/schemas/AdvancedOrder"
            },
            "criteriaResolvers" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/CriteriaResolver"
              }
            },
            "fulfillerConduitKey" : {
              "type" : "string"
            },
            "recipient" : {
              "$ref" : "#/components/schemas/Address"
            }
          }
        } ],
        "required" : [ "advancedOrder", "criteriaResolvers", "fulfillerConduitKey", "recipient" ]
      },
      "FulfillAvailableAdvancedOrders" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/SeaportCall"
        }, {
          "type" : "object",
          "properties" : {
            "orders" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/AdvancedOrder"
              }
            },
            "criteriaResolvers" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/CriteriaResolver"
              }
            },
            "offerFulfillments" : {
              "type" : "array",
              "items" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/FulfillmentComponent"
                }
              }
            },
            "considerationFulfillments" : {
              "type" : "array",
              "items" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/FulfillmentComponent"
                }
              }
            },
            "fulfillerConduitKey" : {
              "type" : "string"
            },
            "recipient" : {
              "$ref" : "#/components/schemas/Address"
            },
            "maximumFulfilled" : {
              "$ref" : "#/components/schemas/Uint256"
            }
          }
        } ],
        "required" : [ "considerationFulfillments", "criteriaResolvers", "fulfillerConduitKey", "maximumFulfilled", "offerFulfillments", "orders", "recipient" ]
      },
      "FulfillAvailableOrders" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/SeaportCall"
        }, {
          "type" : "object",
          "properties" : {
            "orders" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/Order"
              }
            },
            "offerFulfillments" : {
              "type" : "array",
              "items" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/FulfillmentComponent"
                }
              }
            },
            "considerationFulfillments" : {
              "type" : "array",
              "items" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/FulfillmentComponent"
                }
              }
            },
            "fulfillerConduitKey" : {
              "type" : "string"
            },
            "maximumFulfilled" : {
              "$ref" : "#/components/schemas/Uint256"
            }
          }
        } ],
        "required" : [ "considerationFulfillments", "fulfillerConduitKey", "maximumFulfilled", "offerFulfillments", "orders" ]
      },
      "FulfillBasicOrder" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/SeaportCall"
        }, {
          "type" : "object",
          "properties" : {
            "parameters" : {
              "$ref" : "#/components/schemas/BasicOrderParameters"
            }
          }
        } ],
        "required" : [ "parameters" ]
      },
      "FulfillListingResponse" : {
        "type" : "object",
        "properties" : {
          "protocol" : {
            "type" : "string"
          },
          "fulfillment_data" : {
            "$ref" : "#/components/schemas/FulfillmentData"
          }
        },
        "required" : [ "fulfillment_data", "protocol" ]
      },
      "FulfillOrder" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/SeaportCall"
        }, {
          "type" : "object",
          "properties" : {
            "order" : {
              "$ref" : "#/components/schemas/Order"
            },
            "fulfillerConduitKey" : {
              "type" : "string"
            }
          }
        } ],
        "required" : [ "fulfillerConduitKey", "order" ]
      },
      "Fulfillment" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Type"
            }
          },
          "offerComponents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FulfillmentComponent"
            }
          },
          "considerationComponents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FulfillmentComponent"
            }
          },
          "typeAsString" : {
            "type" : "string"
          },
          "nativeValueCopy" : {
            "type" : "array",
            "items" : { }
          }
        }
      },
      "FulfillmentComponent" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Type"
            }
          },
          "orderIndex" : {
            "type" : "integer"
          },
          "itemIndex" : {
            "type" : "integer"
          },
          "typeAsString" : {
            "type" : "string"
          },
          "nativeValueCopy" : {
            "type" : "array",
            "items" : { }
          }
        }
      },
      "FulfillmentData" : {
        "type" : "object",
        "properties" : {
          "transaction" : {
            "$ref" : "#/components/schemas/TransactionData"
          },
          "orders" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrderData"
            }
          }
        },
        "required" : [ "orders", "transaction" ]
      },
      "MatchAdvancedOrders" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/SeaportCall"
        }, {
          "type" : "object",
          "properties" : {
            "orders" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/AdvancedOrder"
              }
            },
            "criteriaResolvers" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/CriteriaResolver"
              }
            },
            "fulfillments" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/Fulfillment"
              }
            },
            "recipient" : {
              "$ref" : "#/components/schemas/Address"
            }
          }
        } ],
        "required" : [ "criteriaResolvers", "fulfillments", "orders", "recipient" ]
      },
      "MatchOrders" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/SeaportCall"
        }, {
          "type" : "object",
          "properties" : {
            "orders" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/Order"
              }
            },
            "fulfillments" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/Fulfillment"
              }
            }
          }
        } ],
        "required" : [ "fulfillments", "orders" ]
      },
      "OrderData" : {
        "type" : "object",
        "properties" : {
          "parameters" : {
            "$ref" : "#/components/schemas/Parameters"
          },
          "signature" : {
            "type" : "string"
          }
        },
        "required" : [ "parameters", "signature" ]
      },
      "OrderParameters" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Type"
            }
          },
          "offerer" : {
            "type" : "string"
          },
          "zone" : {
            "type" : "string"
          },
          "offer" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OfferItem"
            }
          },
          "consideration" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ConsiderationItem"
            }
          },
          "orderType" : {
            "type" : "integer"
          },
          "startTime" : {
            "type" : "integer"
          },
          "endTime" : {
            "type" : "integer"
          },
          "zoneHash" : {
            "type" : "string",
            "format" : "byte"
          },
          "salt" : {
            "type" : "integer"
          },
          "conduitKey" : {
            "type" : "string",
            "format" : "byte"
          },
          "totalOriginalConsiderationItems" : {
            "type" : "integer"
          },
          "typeAsString" : {
            "type" : "string"
          },
          "nativeValueCopy" : {
            "type" : "array",
            "items" : { }
          }
        }
      },
      "SeaportCall" : { },
      "TransactionData" : {
        "type" : "object",
        "properties" : {
          "function" : {
            "type" : "string"
          },
          "chain" : {
            "type" : "integer",
            "format" : "int32"
          },
          "to" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          },
          "input_data" : {
            "oneOf" : [ {
              "$ref" : "#/components/schemas/FulfillAdvancedOrder"
            }, {
              "$ref" : "#/components/schemas/FulfillAvailableAdvancedOrders"
            }, {
              "$ref" : "#/components/schemas/FulfillAvailableOrders"
            }, {
              "$ref" : "#/components/schemas/FulfillBasicOrder"
            }, {
              "$ref" : "#/components/schemas/FulfillOrder"
            }, {
              "$ref" : "#/components/schemas/MatchAdvancedOrders"
            }, {
              "$ref" : "#/components/schemas/MatchOrders"
            } ]
          }
        },
        "required" : [ "chain", "function", "input_data", "to", "value" ]
      },
      "Type" : {
        "type" : "object",
        "properties" : {
          "value" : { },
          "typeAsString" : {
            "type" : "string"
          }
        }
      },
      "Uint256" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "integer"
          },
          "bitSize" : {
            "type" : "integer",
            "format" : "int32"
          },
          "typeAsString" : {
            "type" : "string"
          }
        }
      },
      "BuildOfferRequest" : {
        "type" : "object",
        "properties" : {
          "offerer" : {
            "type" : "string"
          },
          "quantity" : {
            "type" : "integer",
            "format" : "int32"
          },
          "criteria" : {
            "$ref" : "#/components/schemas/CriteriaObject"
          },
          "protocol_address" : {
            "type" : "string"
          },
          "offer_protection_enabled" : {
            "type" : "boolean"
          }
        },
        "required" : [ "criteria", "offer_protection_enabled", "offerer", "protocol_address", "quantity" ]
      },
      "CollectionObject" : {
        "type" : "object",
        "properties" : {
          "slug" : {
            "type" : "string"
          }
        },
        "required" : [ "slug" ]
      },
      "CriteriaObject" : {
        "type" : "object",
        "properties" : {
          "collection" : {
            "$ref" : "#/components/schemas/CollectionObject"
          },
          "trait" : {
            "$ref" : "#/components/schemas/TraitObject",
            "deprecated" : true,
            "description" : "Deprecated: Use 'traits' array instead which supports both single and multiple traits."
          },
          "traits" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TraitObject"
            }
          },
          "numericTraits" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/NumericTraitCriteria"
            }
          }
        },
        "required" : [ "collection" ]
      },
      "TraitObject" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          }
        },
        "required" : [ "type", "value" ]
      },
      "BuildOfferResponse" : {
        "type" : "object",
        "properties" : {
          "partialParameters" : {
            "$ref" : "#/components/schemas/PartialParameters"
          },
          "criteria" : {
            "$ref" : "#/components/schemas/CriteriaRequest",
            "description" : "The criteria to pass through to the POST /api/v2/offers submit step. Includes collection and trait information so trait offers are not accidentally submitted as collection offers."
          },
          "encodedTokenIds" : {
            "type" : "string",
            "description" : "Encoded token IDs that can be used to fulfill the criteria offer. When identifierOrCriteria is '0', this field is informational only and not required for order construction."
          }
        },
        "required" : [ "criteria", "partialParameters" ]
      },
      "Consideration" : {
        "type" : "object",
        "properties" : {
          "itemType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "token" : {
            "type" : "string"
          },
          "identifierOrCriteria" : {
            "type" : "string",
            "description" : "For criteria-based offers, this is the merkle root of eligible token IDs. For trait offers on supported collections, this will be '0' — trait matching is validated server-side at fulfillment time instead of via onchain merkle proof."
          },
          "startAmount" : {
            "type" : "string"
          },
          "endAmount" : {
            "type" : "string"
          },
          "recipient" : {
            "type" : "string"
          }
        },
        "required" : [ "endAmount", "identifierOrCriteria", "itemType", "recipient", "startAmount", "token" ]
      },
      "PartialParameters" : {
        "type" : "object",
        "properties" : {
          "consideration" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Consideration"
            }
          },
          "zone" : {
            "type" : "string"
          },
          "zoneHash" : {
            "type" : "string"
          }
        },
        "required" : [ "consideration", "zone", "zoneHash" ]
      },
      "FullfillListingRequest" : {
        "type" : "object",
        "properties" : {
          "listing" : {
            "$ref" : "#/components/schemas/ListingObject"
          },
          "fulfiller" : {
            "$ref" : "#/components/schemas/FulfillerObject"
          },
          "consideration" : {
            "$ref" : "#/components/schemas/ConsiderationObject"
          },
          "recipient" : {
            "type" : "string"
          },
          "units_to_fill" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Optional quantity of units to fulfill; defaults to remaining units for listings"
          },
          "include_optional_creator_fees" : {
            "type" : "boolean",
            "default" : false,
            "description" : "Whether to include optional creator fees in the fulfillment. If creator fees are already required, this is a no-op. Defaults to false."
          }
        },
        "required" : [ "fulfiller", "listing" ]
      },
      "ListingObject" : {
        "type" : "object",
        "properties" : {
          "hash" : {
            "type" : "string"
          },
          "chain" : {
            "type" : "string"
          },
          "protocol_address" : {
            "type" : "string"
          }
        },
        "required" : [ "chain", "hash", "protocol_address" ]
      },
      "DropMintResponse" : {
        "type" : "object",
        "description" : "Ready-to-sign mint transaction data",
        "properties" : {
          "to" : {
            "type" : "string",
            "description" : "Transaction target contract address"
          },
          "data" : {
            "type" : "string",
            "description" : "Encoded transaction data (hex)"
          },
          "value" : {
            "type" : "string",
            "description" : "Transaction value in wei (hex)"
          },
          "chain" : {
            "type" : "string",
            "description" : "Chain identifier"
          }
        },
        "required" : [ "chain", "data", "to", "value" ]
      },
      "V1ErrorWrapper" : {
        "type" : "object",
        "properties" : {
          "errors" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        },
        "required" : [ "errors" ]
      },
      "DropMintRequest" : {
        "type" : "object",
        "description" : "Mint request parameters",
        "properties" : {
          "minter" : {
            "type" : "string",
            "description" : "Wallet address that will receive the minted tokens",
            "example" : "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
            "minLength" : 1
          },
          "quantity" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of tokens to mint",
            "example" : 1,
            "maximum" : 100,
            "minimum" : 1
          }
        },
        "required" : [ "minter", "quantity" ]
      },
      "MetadataIngestionError" : {
        "type" : "object",
        "properties" : {
          "errorType" : {
            "type" : "string"
          },
          "message" : {
            "type" : "string"
          },
          "url" : {
            "type" : "string"
          },
          "statusCode" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "required" : [ "errorType", "message" ]
      },
      "ValidateMetadataAssetIdentifier" : {
        "type" : "object",
        "properties" : {
          "chain" : {
            "type" : "string"
          },
          "contractAddress" : {
            "type" : "string"
          },
          "tokenId" : {
            "type" : "string"
          }
        },
        "required" : [ "chain", "contractAddress", "tokenId" ]
      },
      "ValidateMetadataAttribute" : {
        "type" : "object",
        "properties" : {
          "traitType" : {
            "type" : "string"
          },
          "value" : {
            "type" : "string"
          },
          "displayType" : {
            "type" : "string"
          }
        },
        "required" : [ "traitType", "value" ]
      },
      "ValidateMetadataDetails" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "originalImageUrl" : {
            "type" : "string"
          },
          "processedImageUrl" : {
            "type" : "string"
          },
          "originalAnimationUrl" : {
            "type" : "string"
          },
          "processedAnimationUrl" : {
            "type" : "string"
          },
          "externalUrl" : {
            "type" : "string"
          },
          "backgroundColor" : {
            "type" : "string"
          },
          "attributes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ValidateMetadataAttribute"
            }
          }
        },
        "required" : [ "attributes" ]
      },
      "ValidateMetadataResponse" : {
        "type" : "object",
        "properties" : {
          "assetIdentifier" : {
            "$ref" : "#/components/schemas/ValidateMetadataAssetIdentifier"
          },
          "tokenUri" : {
            "type" : "string"
          },
          "metadata" : {
            "$ref" : "#/components/schemas/ValidateMetadataDetails"
          },
          "error" : {
            "$ref" : "#/components/schemas/MetadataIngestionError"
          }
        },
        "required" : [ "assetIdentifier" ]
      },
      "InstantApiKeyResponse" : {
        "type" : "object",
        "description" : "Instant API key response",
        "properties" : {
          "api_key" : {
            "type" : "string",
            "description" : "The API key to use in X-API-KEY header"
          },
          "name" : {
            "type" : "string",
            "description" : "Key name for identification and revocation"
          },
          "expires_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "ISO-8601 timestamp when the key expires"
          },
          "rate_limits" : {
            "$ref" : "#/components/schemas/RateLimitsResponse",
            "description" : "Rate limits for this key"
          },
          "upgrade_url" : {
            "type" : "string",
            "description" : "URL to upgrade to higher rate limits"
          }
        },
        "required" : [ "api_key", "expires_at", "name", "rate_limits", "upgrade_url" ]
      },
      "RateLimitsResponse" : {
        "type" : "object",
        "description" : "Rate limits for the API key",
        "properties" : {
          "read" : {
            "type" : "string",
            "description" : "Read rate limit",
            "example" : "60/m"
          },
          "write" : {
            "type" : "string",
            "description" : "Write rate limit",
            "example" : "5/m"
          },
          "fulfillment" : {
            "type" : "string",
            "description" : "Fulfillment rate limit",
            "example" : "5/m"
          }
        },
        "required" : [ "fulfillment", "read", "write" ]
      },
      "TokenPaginatedResponse" : {
        "type" : "object",
        "description" : "Paginated list of tokens",
        "properties" : {
          "tokens" : {
            "type" : "array",
            "description" : "List of tokens",
            "items" : {
              "$ref" : "#/components/schemas/TokenResponse"
            }
          },
          "next" : {
            "type" : "string",
            "description" : "Cursor for the next page of results"
          }
        },
        "required" : [ "tokens" ]
      },
      "TokenResponse" : {
        "type" : "object",
        "description" : "A token with summary market data",
        "properties" : {
          "address" : {
            "type" : "string",
            "description" : "The contract address of the token",
            "example" : "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
          },
          "chain" : {
            "type" : "string",
            "description" : "The blockchain the token is on",
            "example" : "ethereum"
          },
          "name" : {
            "type" : "string",
            "description" : "The display name of the token",
            "example" : "USD Coin"
          },
          "symbol" : {
            "type" : "string",
            "description" : "The ticker symbol of the token",
            "example" : "USDC"
          },
          "image_url" : {
            "type" : "string",
            "description" : "URL of the token's image"
          },
          "usd_price" : {
            "type" : "string",
            "description" : "Current price in USD",
            "example" : 1.0
          },
          "decimals" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of decimal places",
            "example" : 6
          },
          "market_cap_usd" : {
            "type" : "number",
            "format" : "double",
            "description" : "Market capitalization in USD"
          },
          "volume_24h" : {
            "type" : "number",
            "format" : "double",
            "description" : "24-hour trading volume in USD"
          },
          "price_change_24h" : {
            "type" : "number",
            "format" : "double",
            "description" : "Price change percentage over the last 24 hours"
          },
          "opensea_url" : {
            "type" : "string",
            "description" : "URL to the token page on OpenSea"
          }
        },
        "required" : [ "address", "chain", "decimals", "name", "opensea_url", "symbol", "usd_price" ]
      },
      "SwapQuoteDetails" : {
        "type" : "object",
        "description" : "Price and fee details for a swap quote",
        "properties" : {
          "total_price_usd" : {
            "type" : "number",
            "format" : "double",
            "description" : "Total value of tokens received in USD",
            "example" : 1850.5
          },
          "total_cost_usd" : {
            "type" : "number",
            "format" : "double",
            "description" : "Total cost of tokens sent in USD",
            "example" : 1869.0
          },
          "slippage_tolerance" : {
            "type" : "number",
            "format" : "double",
            "description" : "Slippage tolerance as a decimal (e.g. 0.01 = 1%)",
            "example" : 0.01
          },
          "estimated_duration_ms" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Estimated swap duration in milliseconds",
            "example" : 30000
          },
          "marketplace_fee_bps" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Marketplace fee in basis points",
            "example" : 50
          }
        },
        "required" : [ "estimated_duration_ms", "marketplace_fee_bps", "slippage_tolerance", "total_cost_usd", "total_price_usd" ]
      },
      "SwapQuoteResponse" : {
        "type" : "object",
        "description" : "Swap quote with price details and executable transactions",
        "properties" : {
          "quote" : {
            "$ref" : "#/components/schemas/SwapQuoteDetails",
            "description" : "Price and fee details for the swap"
          },
          "transactions" : {
            "type" : "array",
            "description" : "Transactions to execute the swap",
            "items" : {
              "$ref" : "#/components/schemas/SwapTransactionResponse"
            }
          }
        },
        "required" : [ "quote", "transactions" ]
      },
      "SwapTransactionResponse" : {
        "type" : "object",
        "description" : "A transaction to be submitted onchain to execute a swap",
        "properties" : {
          "chain" : {
            "type" : "string",
            "description" : "The blockchain for this transaction",
            "example" : "ethereum"
          },
          "to" : {
            "type" : "string",
            "description" : "The destination address for the transaction"
          },
          "data" : {
            "type" : "string",
            "description" : "The transaction data. For EVM chains: hex-encoded calldata. For SVM chains: comma-separated instructions in programId:data format."
          },
          "value" : {
            "type" : "string",
            "description" : "The native token value to send with the transaction"
          }
        },
        "required" : [ "chain", "data" ]
      },
      "AccountSearchResponse" : {
        "type" : "object",
        "description" : "Account search result",
        "properties" : {
          "address" : {
            "type" : "string",
            "description" : "Primary wallet address of the account"
          },
          "username" : {
            "type" : "string",
            "description" : "Username of the account"
          },
          "profile_image_url" : {
            "type" : "string",
            "description" : "URL of the account's profile image"
          },
          "opensea_url" : {
            "type" : "string",
            "description" : "URL to the account on OpenSea"
          }
        },
        "required" : [ "address", "opensea_url" ]
      },
      "CollectionSearchResponse" : {
        "type" : "object",
        "description" : "Collection search result",
        "properties" : {
          "collection" : {
            "type" : "string",
            "description" : "The collection slug",
            "example" : "bored-ape-yacht-club"
          },
          "name" : {
            "type" : "string",
            "description" : "The collection name",
            "example" : "Bored Ape Yacht Club"
          },
          "image_url" : {
            "type" : "string",
            "description" : "URL of the collection image"
          },
          "is_disabled" : {
            "type" : "boolean",
            "description" : "Whether trading is disabled for this collection"
          },
          "is_nsfw" : {
            "type" : "boolean",
            "description" : "Whether this collection is marked as NSFW"
          },
          "opensea_url" : {
            "type" : "string",
            "description" : "URL to the collection on OpenSea"
          }
        },
        "required" : [ "collection", "is_disabled", "is_nsfw", "name", "opensea_url" ]
      },
      "NftSearchResponse" : {
        "type" : "object",
        "description" : "NFT search result",
        "properties" : {
          "identifier" : {
            "type" : "string",
            "description" : "Token ID of the NFT",
            "example" : 1234
          },
          "collection" : {
            "type" : "string",
            "description" : "Collection slug the NFT belongs to",
            "example" : "bored-ape-yacht-club"
          },
          "contract" : {
            "type" : "string",
            "description" : "Contract address of the NFT"
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the NFT"
          },
          "image_url" : {
            "type" : "string",
            "description" : "URL of the NFT image"
          },
          "opensea_url" : {
            "type" : "string",
            "description" : "URL to the NFT on OpenSea"
          }
        },
        "required" : [ "collection", "contract", "identifier", "opensea_url" ]
      },
      "SearchResponse" : {
        "type" : "object",
        "description" : "Search results response",
        "properties" : {
          "results" : {
            "type" : "array",
            "description" : "List of search results ranked by relevance",
            "items" : {
              "$ref" : "#/components/schemas/SearchResultResponse"
            }
          }
        },
        "required" : [ "results" ]
      },
      "SearchResultResponse" : {
        "type" : "object",
        "description" : "A single search result with a type discriminator and the corresponding typed object",
        "properties" : {
          "type" : {
            "type" : "string",
            "description" : "The type of search result",
            "example" : "collection"
          },
          "collection" : {
            "$ref" : "#/components/schemas/CollectionSearchResponse",
            "description" : "Collection details, present when type is 'collection'"
          },
          "token" : {
            "$ref" : "#/components/schemas/TokenSearchResponse",
            "description" : "Token details, present when type is 'token'"
          },
          "nft" : {
            "$ref" : "#/components/schemas/NftSearchResponse",
            "description" : "NFT details, present when type is 'nft'"
          },
          "account" : {
            "$ref" : "#/components/schemas/AccountSearchResponse",
            "description" : "Account details, present when type is 'account'"
          }
        },
        "required" : [ "type" ]
      },
      "TokenSearchResponse" : {
        "type" : "object",
        "description" : "Token (currency) search result",
        "properties" : {
          "address" : {
            "type" : "string",
            "description" : "Contract address of the token",
            "example" : "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
          },
          "chain" : {
            "type" : "string",
            "description" : "Blockchain the token is on",
            "example" : "ethereum"
          },
          "name" : {
            "type" : "string",
            "description" : "Token name",
            "example" : "USD Coin"
          },
          "symbol" : {
            "type" : "string",
            "description" : "Token symbol",
            "example" : "USDC"
          },
          "image_url" : {
            "type" : "string",
            "description" : "URL of the token image"
          },
          "usd_price" : {
            "type" : "string",
            "description" : "Current USD price of the token"
          },
          "decimals" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of decimal places for the token"
          },
          "opensea_url" : {
            "type" : "string",
            "description" : "URL to the token on OpenSea"
          }
        },
        "required" : [ "address", "chain", "decimals", "name", "opensea_url", "symbol", "usd_price" ]
      },
      "OrdersResponse" : {
        "type" : "object",
        "properties" : {
          "orders" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SimpleOrderV2Serializer"
            }
          },
          "next" : {
            "type" : "string"
          }
        },
        "required" : [ "orders" ]
      },
      "GetOrderResponse" : {
        "type" : "object",
        "properties" : {
          "order" : {
            "oneOf" : [ {
              "$ref" : "#/components/schemas/Listing"
            }, {
              "$ref" : "#/components/schemas/Offer"
            } ]
          }
        },
        "required" : [ "order" ]
      },
      "ListingOrOffer" : { },
      "OffersResponse" : {
        "type" : "object",
        "properties" : {
          "offers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Offer"
            }
          },
          "next" : {
            "type" : "string"
          }
        },
        "required" : [ "offers" ]
      },
      "AssetMetadataResponse" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "image" : {
            "type" : "string"
          },
          "external_link" : {
            "type" : "string"
          },
          "animation_url" : {
            "type" : "string"
          },
          "traits" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Trait"
            }
          }
        },
        "required" : [ "traits" ]
      },
      "Trait" : {
        "type" : "object",
        "properties" : {
          "trait_type" : {
            "type" : "string"
          },
          "display_type" : {
            "type" : "string"
          },
          "max_value" : {
            "type" : "string"
          },
          "value" : { }
        },
        "required" : [ "trait_type", "value" ]
      },
      "ListingsResponse" : {
        "type" : "object",
        "properties" : {
          "listings" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Listing"
            }
          },
          "next" : {
            "type" : "string"
          }
        },
        "required" : [ "listings" ]
      },
      "AssetEventsResponse" : {
        "type" : "object",
        "properties" : {
          "asset_events" : {
            "type" : "array",
            "items" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/OrderEvent"
              }, {
                "$ref" : "#/components/schemas/SaleEvent"
              }, {
                "$ref" : "#/components/schemas/TransferEvent"
              } ]
            }
          },
          "next" : {
            "type" : "string"
          }
        },
        "required" : [ "asset_events" ]
      },
      "Event" : { },
      "EventBase" : {
        "type" : "object",
        "properties" : {
          "event_type" : {
            "type" : "string"
          },
          "event_timestamp" : {
            "type" : "integer",
            "format" : "int64"
          },
          "transaction" : {
            "type" : "string"
          },
          "order_hash" : {
            "type" : "string"
          },
          "protocol_address" : {
            "type" : "string"
          },
          "chain" : {
            "type" : "string"
          },
          "payment" : {
            "$ref" : "#/components/schemas/Payment"
          }
        },
        "required" : [ "chain", "event_timestamp", "event_type" ]
      },
      "Nft" : {
        "type" : "object",
        "properties" : {
          "identifier" : {
            "type" : "string"
          },
          "collection" : {
            "type" : "string"
          },
          "contract" : {
            "type" : "string"
          },
          "token_standard" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "image_url" : {
            "type" : "string"
          },
          "display_image_url" : {
            "type" : "string"
          },
          "display_animation_url" : {
            "type" : "string"
          },
          "metadata_url" : {
            "type" : "string"
          },
          "opensea_url" : {
            "type" : "string"
          },
          "updated_at" : {
            "type" : "string"
          },
          "is_disabled" : {
            "type" : "boolean"
          },
          "is_nsfw" : {
            "type" : "boolean"
          },
          "original_image_url" : {
            "type" : "string"
          },
          "original_animation_url" : {
            "type" : "string"
          },
          "traits" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Trait"
            }
          }
        },
        "required" : [ "collection", "contract", "identifier", "is_disabled", "is_nsfw", "opensea_url", "token_standard", "traits", "updated_at" ]
      },
      "OrderEvent" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/Event"
        }, {
          "type" : "object",
          "properties" : {
            "event_type" : {
              "type" : "string"
            },
            "event_timestamp" : {
              "type" : "integer",
              "format" : "int64"
            },
            "transaction" : {
              "type" : "string"
            },
            "order_hash" : {
              "type" : "string"
            },
            "protocol_address" : {
              "type" : "string"
            },
            "chain" : {
              "type" : "string"
            },
            "payment" : {
              "$ref" : "#/components/schemas/Payment"
            },
            "order_type" : {
              "type" : "string"
            },
            "start_date" : {
              "type" : "integer",
              "format" : "int64"
            },
            "expiration_date" : {
              "type" : "integer",
              "format" : "int64"
            },
            "asset" : {
              "$ref" : "#/components/schemas/Nft"
            },
            "quantity" : {
              "type" : "integer",
              "format" : "int64"
            },
            "maker" : {
              "type" : "string"
            },
            "taker" : {
              "type" : "string"
            },
            "criteria" : {
              "$ref" : "#/components/schemas/Criteria"
            },
            "is_private_listing" : {
              "type" : "boolean"
            }
          }
        } ],
        "required" : [ "chain", "event_timestamp", "event_type", "is_private_listing", "maker", "order_type", "quantity" ]
      },
      "Payment" : {
        "type" : "object",
        "properties" : {
          "quantity" : {
            "type" : "string"
          },
          "token_address" : {
            "type" : "string"
          },
          "decimals" : {
            "type" : "integer",
            "format" : "int32"
          },
          "symbol" : {
            "type" : "string"
          }
        },
        "required" : [ "decimals", "quantity", "symbol", "token_address" ]
      },
      "SaleEvent" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/Event"
        }, {
          "type" : "object",
          "properties" : {
            "event_type" : {
              "type" : "string"
            },
            "event_timestamp" : {
              "type" : "integer",
              "format" : "int64"
            },
            "transaction" : {
              "type" : "string"
            },
            "order_hash" : {
              "type" : "string"
            },
            "protocol_address" : {
              "type" : "string"
            },
            "chain" : {
              "type" : "string"
            },
            "payment" : {
              "$ref" : "#/components/schemas/Payment"
            },
            "closing_date" : {
              "type" : "integer",
              "format" : "int64"
            },
            "seller" : {
              "type" : "string"
            },
            "buyer" : {
              "type" : "string"
            },
            "quantity" : {
              "type" : "integer",
              "format" : "int64"
            },
            "nft" : {
              "$ref" : "#/components/schemas/Nft"
            }
          }
        } ],
        "required" : [ "buyer", "chain", "closing_date", "event_timestamp", "event_type", "quantity", "seller" ]
      },
      "TransferEvent" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/Event"
        }, {
          "type" : "object",
          "properties" : {
            "event_type" : {
              "type" : "string"
            },
            "event_timestamp" : {
              "type" : "integer",
              "format" : "int64"
            },
            "transaction" : {
              "type" : "string"
            },
            "order_hash" : {
              "type" : "string"
            },
            "protocol_address" : {
              "type" : "string"
            },
            "chain" : {
              "type" : "string"
            },
            "payment" : {
              "$ref" : "#/components/schemas/Payment"
            },
            "transfer_type" : {
              "type" : "string"
            },
            "from_address" : {
              "type" : "string"
            },
            "to_address" : {
              "type" : "string"
            },
            "nft" : {
              "$ref" : "#/components/schemas/Nft"
            },
            "quantity" : {
              "type" : "integer",
              "format" : "int64"
            }
          }
        } ],
        "required" : [ "chain", "event_timestamp", "event_type", "from_address", "quantity", "to_address", "transfer_type" ]
      },
      "DropPaginatedResponse" : {
        "type" : "object",
        "description" : "Paginated list of drops",
        "properties" : {
          "drops" : {
            "type" : "array",
            "description" : "List of drops",
            "items" : {
              "$ref" : "#/components/schemas/DropResponse"
            }
          },
          "next" : {
            "type" : "string",
            "description" : "Cursor for the next page. May be present even when drops is empty if all items in the page were filtered by visibility rules; continue paginating until next is null."
          }
        },
        "required" : [ "drops" ]
      },
      "DropResponse" : {
        "type" : "object",
        "description" : "Summary of an NFT drop",
        "properties" : {
          "collection_slug" : {
            "type" : "string",
            "description" : "Collection slug",
            "example" : "cool-cats"
          },
          "collection_name" : {
            "type" : "string",
            "description" : "Collection name",
            "example" : "Cool Cats"
          },
          "chain" : {
            "type" : "string",
            "description" : "Blockchain the drop is on",
            "example" : "ethereum"
          },
          "contract_address" : {
            "type" : "string",
            "description" : "Contract address"
          },
          "drop_type" : {
            "type" : "string",
            "description" : "Drop type",
            "example" : "seadrop_v1_erc721"
          },
          "is_minting" : {
            "type" : "boolean",
            "description" : "Whether the drop is currently minting"
          },
          "image_url" : {
            "type" : "string",
            "description" : "Collection image URL"
          },
          "opensea_url" : {
            "type" : "string",
            "description" : "OpenSea URL for the drop"
          }
        },
        "required" : [ "chain", "collection_slug", "contract_address", "drop_type", "is_minting", "opensea_url" ]
      },
      "DropDetailedResponse" : {
        "type" : "object",
        "description" : "Detailed drop information including stages and supply",
        "properties" : {
          "collection_slug" : {
            "type" : "string",
            "description" : "Collection slug"
          },
          "collection_name" : {
            "type" : "string",
            "description" : "Collection name"
          },
          "chain" : {
            "type" : "string",
            "description" : "Blockchain",
            "example" : "ethereum"
          },
          "contract_address" : {
            "type" : "string",
            "description" : "Contract address"
          },
          "drop_type" : {
            "type" : "string",
            "description" : "Drop type"
          },
          "is_minting" : {
            "type" : "boolean",
            "description" : "Whether the drop is currently minting"
          },
          "image_url" : {
            "type" : "string",
            "description" : "Collection image URL"
          },
          "opensea_url" : {
            "type" : "string",
            "description" : "OpenSea URL"
          },
          "stages" : {
            "type" : "array",
            "description" : "Drop stages (public sale, presale, etc.)",
            "items" : {
              "$ref" : "#/components/schemas/DropStageResponse"
            }
          },
          "total_supply" : {
            "type" : "string",
            "description" : "Total minted supply"
          },
          "max_supply" : {
            "type" : "string",
            "description" : "Maximum supply"
          }
        },
        "required" : [ "chain", "collection_slug", "contract_address", "drop_type", "is_minting", "opensea_url", "stages" ]
      },
      "DropStageResponse" : {
        "type" : "object",
        "description" : "A mint stage within a drop",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "description" : "Stage UUID"
          },
          "stage_type" : {
            "type" : "string",
            "description" : "Stage type",
            "example" : "public_sale"
          },
          "label" : {
            "type" : "string",
            "description" : "Stage label/name"
          },
          "price" : {
            "type" : "string",
            "description" : "Mint price per token in wei (decimal string)"
          },
          "price_currency_address" : {
            "type" : "string",
            "description" : "Currency contract address (e.g. 0x0000...0000 for native token)"
          },
          "start_time" : {
            "type" : "string",
            "description" : "Stage start time (ISO 8601)"
          },
          "end_time" : {
            "type" : "string",
            "description" : "Stage end time (ISO 8601)"
          },
          "max_per_wallet" : {
            "type" : "string",
            "description" : "Max tokens mintable per wallet in this stage"
          }
        },
        "required" : [ "end_time", "max_per_wallet", "price_currency_address", "stage_type", "start_time", "uuid" ]
      },
      "CollectionPaginatedResponse" : {
        "type" : "object",
        "properties" : {
          "collections" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CollectionResponse"
            }
          },
          "next" : {
            "type" : "string"
          }
        },
        "required" : [ "collections" ]
      },
      "CollectionDetailedResponse" : {
        "type" : "object",
        "properties" : {
          "collection" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "image_url" : {
            "type" : "string"
          },
          "banner_image_url" : {
            "type" : "string"
          },
          "owner" : {
            "type" : "string"
          },
          "safelist_status" : {
            "type" : "string"
          },
          "category" : {
            "type" : "string"
          },
          "is_disabled" : {
            "type" : "boolean"
          },
          "is_nsfw" : {
            "type" : "boolean"
          },
          "trait_offers_enabled" : {
            "type" : "boolean"
          },
          "collection_offers_enabled" : {
            "type" : "boolean"
          },
          "opensea_url" : {
            "type" : "string"
          },
          "project_url" : {
            "type" : "string"
          },
          "wiki_url" : {
            "type" : "string"
          },
          "discord_url" : {
            "type" : "string"
          },
          "telegram_url" : {
            "type" : "string"
          },
          "twitter_username" : {
            "type" : "string"
          },
          "instagram_username" : {
            "type" : "string"
          },
          "contracts" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Contract"
            }
          },
          "editors" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "fees" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Fee"
            }
          },
          "required_zone" : {
            "type" : "string"
          },
          "rarity" : {
            "$ref" : "#/components/schemas/CollectionRarity"
          },
          "total_supply" : {
            "type" : "integer",
            "format" : "int64"
          },
          "unique_item_count" : {
            "type" : "integer",
            "format" : "int64"
          },
          "created_date" : {
            "type" : "string",
            "format" : "date-time"
          },
          "pricing_currencies" : {
            "$ref" : "#/components/schemas/PricingCurrencies"
          }
        },
        "required" : [ "collection", "collection_offers_enabled", "contracts", "created_date", "editors", "fees", "is_disabled", "is_nsfw", "name", "opensea_url", "pricing_currencies", "safelist_status", "total_supply", "trait_offers_enabled", "unique_item_count" ]
      },
      "CollectionRarity" : {
        "type" : "object",
        "properties" : {
          "calculated_at" : {
            "type" : "string"
          },
          "max_rank" : {
            "type" : "integer",
            "format" : "int32"
          },
          "total_supply" : {
            "type" : "integer",
            "format" : "int64"
          },
          "strategy_id" : {
            "type" : "string"
          },
          "strategy_version" : {
            "type" : "string"
          }
        },
        "required" : [ "calculated_at", "max_rank", "strategy_id", "strategy_version", "total_supply" ]
      },
      "Fee" : {
        "type" : "object",
        "properties" : {
          "fee" : {
            "type" : "number",
            "format" : "double"
          },
          "recipient" : {
            "type" : "string"
          },
          "required" : {
            "type" : "boolean"
          }
        },
        "required" : [ "fee", "recipient", "required" ]
      },
      "PaymentToken" : {
        "type" : "object",
        "properties" : {
          "symbol" : {
            "type" : "string"
          },
          "address" : {
            "type" : "string"
          },
          "chain" : {
            "type" : "string"
          },
          "image" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "decimals" : {
            "type" : "integer",
            "format" : "int32"
          },
          "eth_price" : {
            "type" : "string"
          },
          "usd_price" : {
            "type" : "string"
          }
        },
        "required" : [ "address", "chain", "decimals", "eth_price", "image", "name", "symbol", "usd_price" ]
      },
      "PricingCurrencies" : {
        "type" : "object",
        "properties" : {
          "listing_currency" : {
            "$ref" : "#/components/schemas/PaymentToken"
          },
          "offer_currency" : {
            "$ref" : "#/components/schemas/PaymentToken"
          }
        },
        "required" : [ "listing_currency", "offer_currency" ]
      },
      "CollectionStatsResponse" : {
        "type" : "object",
        "properties" : {
          "total" : {
            "$ref" : "#/components/schemas/Total"
          },
          "intervals" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/IntervalStat"
            }
          }
        },
        "required" : [ "intervals", "total" ]
      },
      "IntervalStat" : {
        "type" : "object",
        "properties" : {
          "interval" : {
            "type" : "string"
          },
          "volume" : {
            "type" : "number",
            "format" : "double"
          },
          "volume_diff" : {
            "type" : "number",
            "format" : "double"
          },
          "volume_change" : {
            "type" : "number",
            "format" : "double"
          },
          "sales" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sales_diff" : {
            "type" : "integer",
            "format" : "int32"
          },
          "average_price" : {
            "type" : "number",
            "format" : "double"
          }
        },
        "required" : [ "average_price", "interval", "sales", "sales_diff", "volume", "volume_change", "volume_diff" ]
      },
      "Total" : {
        "type" : "object",
        "properties" : {
          "volume" : {
            "type" : "number",
            "format" : "double"
          },
          "sales" : {
            "type" : "integer",
            "format" : "int32"
          },
          "num_owners" : {
            "type" : "integer",
            "format" : "int64"
          },
          "market_cap" : {
            "type" : "number",
            "format" : "double"
          },
          "floor_price" : {
            "type" : "number",
            "format" : "double"
          },
          "floor_price_symbol" : {
            "type" : "string"
          },
          "average_price" : {
            "type" : "number",
            "format" : "double"
          }
        },
        "required" : [ "average_price", "floor_price", "floor_price_symbol", "market_cap", "num_owners", "sales", "volume" ]
      },
      "NftListResponse" : {
        "type" : "object",
        "properties" : {
          "nfts" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Nft"
            }
          },
          "next" : {
            "type" : "string"
          }
        },
        "required" : [ "nfts" ]
      },
      "ChainListResponse" : {
        "type" : "object",
        "description" : "List of supported blockchains",
        "properties" : {
          "chains" : {
            "type" : "array",
            "description" : "List of supported chains",
            "items" : {
              "$ref" : "#/components/schemas/ChainResponse"
            }
          }
        },
        "required" : [ "chains" ]
      },
      "ChainResponse" : {
        "type" : "object",
        "description" : "Information about a supported blockchain",
        "properties" : {
          "chain" : {
            "type" : "string",
            "description" : "The chain identifier slug used in API paths",
            "example" : "ethereum"
          },
          "name" : {
            "type" : "string",
            "description" : "Human-readable chain name",
            "example" : "Ethereum"
          },
          "symbol" : {
            "type" : "string",
            "description" : "Native currency symbol",
            "example" : "ETH"
          },
          "supports_swaps" : {
            "type" : "boolean",
            "description" : "Whether token swaps are supported on this chain"
          },
          "block_explorer" : {
            "type" : "string",
            "description" : "Block explorer name",
            "example" : "Etherscan"
          },
          "block_explorer_url" : {
            "type" : "string",
            "description" : "Block explorer base URL",
            "example" : "https://etherscan.io"
          }
        },
        "required" : [ "block_explorer", "block_explorer_url", "chain", "name", "supports_swaps", "symbol" ]
      },
      "TokenDetailedResponse" : {
        "type" : "object",
        "description" : "Detailed token information including stats and social links",
        "properties" : {
          "address" : {
            "type" : "string",
            "description" : "The contract address of the token",
            "example" : "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
          },
          "chain" : {
            "type" : "string",
            "description" : "The blockchain the token is on",
            "example" : "ethereum"
          },
          "name" : {
            "type" : "string",
            "description" : "The display name of the token",
            "example" : "USD Coin"
          },
          "symbol" : {
            "type" : "string",
            "description" : "The ticker symbol of the token",
            "example" : "USDC"
          },
          "image_url" : {
            "type" : "string",
            "description" : "URL of the token's image"
          },
          "description" : {
            "type" : "string",
            "description" : "A description of the token"
          },
          "usd_price" : {
            "type" : "string",
            "description" : "Current price in USD",
            "example" : 1.0
          },
          "decimals" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of decimal places",
            "example" : 6
          },
          "stats" : {
            "$ref" : "#/components/schemas/TokenStatsResponse",
            "description" : "Market statistics for the token"
          },
          "socials" : {
            "$ref" : "#/components/schemas/TokenSocialsResponse",
            "description" : "Social media links for the token"
          },
          "opensea_url" : {
            "type" : "string",
            "description" : "URL to the token page on OpenSea"
          }
        },
        "required" : [ "address", "chain", "decimals", "name", "opensea_url", "symbol", "usd_price" ]
      },
      "TokenSocialsResponse" : {
        "type" : "object",
        "description" : "Social media links for a token",
        "properties" : {
          "website" : {
            "type" : "string",
            "description" : "The token's website URL"
          },
          "twitter_handle" : {
            "type" : "string",
            "description" : "The token's Twitter/X handle"
          },
          "telegram_identifier" : {
            "type" : "string",
            "description" : "The token's Telegram identifier"
          }
        }
      },
      "TokenStatsResponse" : {
        "type" : "object",
        "description" : "Market statistics for a token",
        "properties" : {
          "market_cap_usd" : {
            "type" : "number",
            "format" : "double",
            "description" : "Market capitalization in USD"
          },
          "fdv_usd" : {
            "type" : "number",
            "format" : "double",
            "description" : "Fully diluted valuation in USD"
          },
          "circulating_supply" : {
            "type" : "number",
            "format" : "double",
            "description" : "Circulating supply of the token"
          },
          "max_supply" : {
            "type" : "number",
            "format" : "double",
            "description" : "Maximum supply of the token"
          },
          "total_supply" : {
            "type" : "number",
            "format" : "double",
            "description" : "Total supply of the token"
          },
          "volume_24h" : {
            "type" : "number",
            "format" : "double",
            "description" : "24-hour trading volume in USD"
          },
          "price_change_1h" : {
            "type" : "number",
            "format" : "double",
            "description" : "Price change percentage over the last hour"
          },
          "price_change_24h" : {
            "type" : "number",
            "format" : "double",
            "description" : "Price change percentage over the last 24 hours"
          },
          "price_change_7d" : {
            "type" : "number",
            "format" : "double",
            "description" : "Price change percentage over the last 7 days"
          },
          "price_change_30d" : {
            "type" : "number",
            "format" : "double",
            "description" : "Price change percentage over the last 30 days"
          }
        }
      },
      "ContractResponse" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "string"
          },
          "chain" : {
            "type" : "string"
          },
          "collection" : {
            "type" : "string"
          },
          "contract_standard" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          }
        },
        "required" : [ "address", "chain", "collection", "contract_standard", "name" ]
      },
      "NftDetailed" : {
        "type" : "object",
        "properties" : {
          "identifier" : {
            "type" : "string"
          },
          "collection" : {
            "type" : "string"
          },
          "contract" : {
            "type" : "string"
          },
          "token_standard" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          },
          "image_url" : {
            "type" : "string"
          },
          "display_image_url" : {
            "type" : "string"
          },
          "display_animation_url" : {
            "type" : "string"
          },
          "metadata_url" : {
            "type" : "string"
          },
          "opensea_url" : {
            "type" : "string"
          },
          "updated_at" : {
            "type" : "string"
          },
          "is_disabled" : {
            "type" : "boolean"
          },
          "is_nsfw" : {
            "type" : "boolean"
          },
          "original_image_url" : {
            "type" : "string"
          },
          "original_animation_url" : {
            "type" : "string"
          },
          "traits" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Trait"
            }
          },
          "animation_url" : {
            "type" : "string"
          },
          "is_suspicious" : {
            "type" : "boolean"
          },
          "creator" : {
            "type" : "string"
          },
          "owners" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Owner"
            }
          },
          "rarity" : {
            "$ref" : "#/components/schemas/Rarity"
          }
        },
        "required" : [ "collection", "contract", "creator", "identifier", "is_disabled", "is_nsfw", "is_suspicious", "opensea_url", "owners", "token_standard", "traits", "updated_at" ]
      },
      "NftResponse" : {
        "type" : "object",
        "properties" : {
          "nft" : {
            "$ref" : "#/components/schemas/NftDetailed"
          }
        },
        "required" : [ "nft" ]
      },
      "Owner" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "string"
          },
          "quantity" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "required" : [ "address", "quantity" ]
      },
      "Rarity" : {
        "type" : "object",
        "properties" : {
          "strategy_id" : {
            "type" : "string"
          },
          "strategy_version" : {
            "type" : "string"
          },
          "rank" : {
            "type" : "integer",
            "format" : "int64"
          }
        },
        "required" : [ "strategy_id", "strategy_version" ]
      },
      "AccountResponse" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "string"
          },
          "username" : {
            "type" : "string"
          },
          "profile_image_url" : {
            "type" : "string"
          },
          "banner_image_url" : {
            "type" : "string"
          },
          "website" : {
            "type" : "string"
          },
          "social_media_accounts" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/SocialMediaAccount"
            }
          },
          "bio" : {
            "type" : "string"
          },
          "joined_date" : {
            "type" : "string",
            "format" : "date-time"
          }
        },
        "required" : [ "address", "bio", "joined_date", "social_media_accounts" ]
      },
      "SocialMediaAccount" : {
        "type" : "object",
        "properties" : {
          "platform" : {
            "type" : "string"
          },
          "username" : {
            "type" : "string"
          }
        },
        "required" : [ "platform", "username" ]
      },
      "AccountResolveResponse" : {
        "type" : "object",
        "description" : "Resolved account info",
        "properties" : {
          "address" : {
            "type" : "string",
            "description" : "The resolved wallet address",
            "example" : "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
          },
          "username" : {
            "type" : "string",
            "description" : "OpenSea username, if available"
          },
          "ens_name" : {
            "type" : "string",
            "description" : "Primary ENS name, if available",
            "example" : "vitalik.eth"
          }
        },
        "required" : [ "address" ]
      },
      "TokenBalancePaginatedResponse" : {
        "type" : "object",
        "description" : "Paginated list of token balances",
        "properties" : {
          "token_balances" : {
            "type" : "array",
            "description" : "List of token balances",
            "items" : {
              "$ref" : "#/components/schemas/TokenBalanceResponse"
            }
          },
          "next" : {
            "type" : "string",
            "description" : "Cursor for the next page of results"
          }
        },
        "required" : [ "token_balances" ]
      },
      "TokenBalanceResponse" : {
        "type" : "object",
        "description" : "Token balance for a wallet address",
        "properties" : {
          "address" : {
            "type" : "string",
            "description" : "The contract address of the token",
            "example" : "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
          },
          "chain" : {
            "type" : "string",
            "description" : "The blockchain the token is on",
            "example" : "ethereum"
          },
          "name" : {
            "type" : "string",
            "description" : "The display name of the token",
            "example" : "USD Coin"
          },
          "symbol" : {
            "type" : "string",
            "description" : "The ticker symbol of the token",
            "example" : "USDC"
          },
          "image_url" : {
            "type" : "string",
            "description" : "URL of the token's image"
          },
          "usd_price" : {
            "type" : "string",
            "description" : "Current price in USD",
            "example" : 1.0
          },
          "decimals" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of decimal places",
            "example" : 18
          },
          "quantity" : {
            "type" : "string",
            "description" : "Token balance in display units (divided by 10^decimals), not raw/wei",
            "example" : 1.5
          },
          "usd_value" : {
            "type" : "string",
            "description" : "Total USD value of the balance (quantity * usd_price)",
            "example" : 3518.51835185
          },
          "opensea_url" : {
            "type" : "string",
            "description" : "URL to the token page on OpenSea"
          }
        },
        "required" : [ "address", "chain", "decimals", "name", "opensea_url", "quantity", "symbol", "usd_price", "usd_value" ]
      }
    },
    "responses" : {
      "BadRequest" : {
        "description" : "For error reasons, review the response data."
      },
      "Unauthorized" : {
        "description" : "Invalid or missing API key"
      },
      "NotFound" : {
        "description" : "Resource not found"
      },
      "RateLimit" : {
        "description" : "Rate limit exceeded"
      },
      "InternalError" : {
        "description" : "Internal server error. Please open a support ticket so OpenSea can investigate."
      }
    },
    "headers" : {
      "X-RateLimit-Limit" : {
        "description" : "Maximum requests per rate limit window",
        "schema" : {
          "type" : "integer",
          "format" : "int32"
        }
      },
      "X-RateLimit-Remaining" : {
        "description" : "Remaining requests in current window",
        "schema" : {
          "type" : "integer",
          "format" : "int32"
        }
      },
      "X-RateLimit-Reset" : {
        "description" : "Unix epoch timestamp when the rate limit window resets",
        "schema" : {
          "type" : "integer",
          "format" : "int32"
        }
      }
    },
    "securitySchemes" : {
      "ApiKeyAuth" : {
        "type" : "apiKey",
        "description" : "API key required for authentication",
        "name" : "x-api-key",
        "in" : "header"
      }
    }
  },
  "x-tagGroups" : [ {
    "name" : "Data & Discovery",
    "tags" : [ "Chain Endpoints", "Account Endpoints", "Collection Endpoints", "NFT Endpoints", "Contract Endpoints", "Token Endpoints", "Search Endpoints" ]
  }, {
    "name" : "Marketplace & Trading",
    "tags" : [ "Listing Endpoints", "Offer Endpoints", "Order Endpoints", "Swap Endpoints", "Drops Endpoints" ]
  }, {
    "name" : "Analytics & Events",
    "tags" : [ "Analytics Endpoints" ]
  } ]
}