{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/reservoir/main/json-schema/reservoir-model564-schema.json", "title": "Model564", "x-generated": "2026-10-14", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/reservoir-api-openapi.yml#/components/schemas/Model564", "type": "object", "properties": { "items": { "$ref": "#/$defs/Model563" }, "taker": { "type": "string", "description": "Address of wallet filling (receiver of the NFT).", "pattern": "^0x[a-fA-F0-9]{40}$", "x-convert": { "case": "lower" } }, "relayer": { "type": "string", "description": "Address of wallet relaying the fill transaction (paying for the NFT).", "pattern": "^0x[a-fA-F0-9]{40}$", "x-convert": { "case": "lower" } }, "onlyPath": { "type": "boolean", "description": "If true, only the path will be returned.", "default": false }, "forceRouter": { "type": "boolean", "description": "If true, all fills will be executed through the router (where possible)" }, "forwarderChannel": { "type": "string", "description": "If passed, all fills will be executed through the trusted trusted forwarder (where possible)", "pattern": "^0x[a-fA-F0-9]{40}$", "x-convert": { "case": "lower" } }, "currency": { "type": "string", "description": "Currency to be used for purchases.", "x-convert": { "case": "lower" } }, "currencyChainId": { "type": "number", "description": "The chain id of the purchase currency" }, "normalizeRoyalties": { "type": "boolean", "description": "Charge any missing royalties.", "default": false }, "allowInactiveOrderIds": { "type": "boolean", "description": "If true, inactive orders will not be skipped over (only relevant when filling via a specific order id).", "default": false }, "source": { "type": "string", "description": "Filling source used for attribution. Example: `reservoir.market`", "pattern": "^[a-zA-Z0-9.-]+\\.[a-zA-Z0-9]{2,}$|localhost", "x-convert": { "case": "lower" } }, "feesOnTop": { "$ref": "#/$defs/Model554" }, "partial": { "type": "boolean", "description": "If true, any off-chain or on-chain errors will be skipped.", "default": false }, "skipBalanceCheck": { "type": "boolean", "description": "If true, balance check will be skipped.", "default": false }, "excludeEOA": { "type": "boolean", "description": "Exclude orders that can only be filled by EOAs, to support filling with smart contracts. If marked `true`, blur will be excluded.", "default": false }, "maxFeePerGas": { "type": "string", "description": "Optional custom gas settings. Includes base fee & priority fee in this limit.", "pattern": "^-?[0-9]+$" }, "maxPriorityFeePerGas": { "type": "string", "description": "Optional custom gas settings.", "pattern": "^-?[0-9]+$" }, "usePermit": { "type": "boolean", "description": "When true, will use permit to avoid approvals." }, "swapProvider": { "type": "string", "description": "Choose a specific swapping provider when buying in a different currency (defaults to `relay`)", "default": "uniswap", "enum": [ "uniswap", "relay" ] }, "executionMethod": { "type": "string", "enum": [ "intent" ] }, "referrer": { "type": "string", "description": "Referrer address (where supported)", "pattern": "^0x[a-fA-F0-9]{40}$" }, "comment": { "type": "string", "description": "Mint comment (where suported)" }, "conduitKey": { "type": "string", "description": "Conduit key to use to fulfill the order", "pattern": "^0x[a-fA-F0-9]{64}$", "x-convert": { "case": "lower" } }, "x2y2ApiKey": { "type": "string", "description": "Optional X2Y2 API key used for filling." }, "openseaApiKey": { "type": "string", "description": "Optional OpenSea API key used for filling. You don't need to pass your own key, but if you don't, you are more likely to be rate-limited." }, "blurAuth": { "type": "string", "description": "Advanced use case to pass personal blurAuthToken; the API will generate one if left empty." } }, "required": [ "items", "taker" ], "$defs": { "Model554": { "type": "array", "description": "List of fees (formatted as `feeRecipient:feeAmount`) to be taken when filling.\nUnless overridden via the `currency` param, the currency used for any fees on top matches the buy-in currency detected by the backend.\nExample: `0xF296178d553C8Ec21A2fBD2c5dDa8CA9ac905A00:1000000000000000`", "items": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}:[0-9]+$" } }, "Model560": { "type": "array", "maxItems": 2, "items": { "type": "string", "pattern": "^[a-zA-Z0-9.-]+\\.[a-zA-Z0-9]{2,}$|localhost", "x-convert": { "case": "lower" } } }, "Model561": { "type": "object", "properties": { "orderId": { "type": "string" }, "price": { "type": "string", "pattern": "^-?[0-9]+$" } }, "required": [ "orderId" ] }, "Model562": { "type": "object", "properties": { "collection": { "type": "string", "description": "Collection to buy.", "x-convert": { "case": "lower" } }, "token": { "type": "string", "description": "Token to buy.", "pattern": "^0x[a-fA-F0-9]{40}:[0-9]+$", "x-convert": { "case": "lower" } }, "quantity": { "type": "integer", "description": "Quantity of tokens to buy.", "x-constraint": { "sign": "positive" } }, "orderId": { "type": "string", "description": "Optional order id to fill.", "x-convert": { "case": "lower" } }, "rawOrder": { "$ref": "#/$defs/rawOrder" }, "fillType": { "type": "string", "description": "Specify preferred fillType. `preferMint`: First, tries to mint a new NFT if available; otherwise, it purchases from the secondary market. `trade`: Always buys from the secondary market, regardless of price. `mint`: Always mints a new NFT.", "default": "preferMint", "enum": [ "trade", "mint", "preferMint" ] }, "preferredMintStage": { "type": "string", "description": "Optionally specify a stage to mint" }, "preferredOrderSource": { "type": "string", "description": "If there are multiple listings with equal best price, prefer this source over others.\nNOTE: if you want to fill a listing that is not the best priced, you need to pass a specific order id or use `exactOrderSource`.", "pattern": "^[a-zA-Z0-9.-]+\\.[a-zA-Z0-9]{2,}$|localhost", "x-convert": { "case": "lower" } }, "exactOrderSource": { "$ref": "#/$defs/Model560" }, "exclusions": { "$ref": "#/$defs/exclusions" } } }, "Model563": { "type": "array", "description": "List of items to buy.", "minItems": 1, "items": { "$ref": "#/$defs/Model562" } }, "exclusions": { "type": "array", "description": "Items to exclude", "items": { "$ref": "#/$defs/Model561" } }, "metadata": { "type": "object" }, "rawOrder": { "type": "object", "description": "Optional raw order to fill.", "properties": { "kind": { "type": "string", "enum": [ "opensea", "blur-partial", "looks-rare", "zeroex-v4", "seaport", "seaport-v1.4", "seaport-v1.5", "seaport-v1.6", "mintify", "x2y2", "rarible", "sudoswap", "nftx", "alienswap", "mint" ], "x-convert": { "case": "lower" } }, "data": { "$ref": "#/$defs/metadata" } } } } }