{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/reservoir/main/json-schema/reservoir-model624-schema.json", "title": "Model624", "x-generated": "2026-10-14", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/reservoir-api-openapi.yml#/components/schemas/Model624", "type": "object", "properties": { "items": { "$ref": "#/$defs/Model622" }, "taker": { "type": "string", "description": "Address of wallet filling.", "pattern": "^0x[a-fA-F0-9]{40}$", "x-convert": { "case": "lower" } }, "source": { "type": "string", "description": "Filling source used for attribution.", "pattern": "^[a-zA-Z0-9.-]+\\.[a-zA-Z0-9]{2,}$|localhost", "x-convert": { "case": "lower" } }, "feesOnTop": { "$ref": "#/$defs/Model623" }, "onlyPath": { "type": "boolean", "description": "If true, only the filling path will be returned.", "default": false }, "normalizeRoyalties": { "type": "boolean", "description": "Charge any missing royalties.", "default": false }, "excludeEOA": { "type": "boolean", "description": "Exclude orders that can only be filled by EOAs, to support filling with smart contracts.", "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 }, "partial": { "type": "boolean", "description": "If true, any off-chain or on-chain errors will be skipped.", "default": false }, "forceRouter": { "type": "boolean", "description": "If true, filling will be forced to use the common 'approval + transfer' method instead of the approval-less 'on-received hook' method", "default": true }, "swapProvider": { "type": "string", "description": "Choose a specific swapping provider when receiving in a different currency (defaults to `uniswap`)", "default": "uniswap", "enum": [ "uniswap", "relay" ] }, "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 received when selling.", "x-convert": { "case": "lower" } }, "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]+$" }, "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": "Optional Blur auth used for filling" } }, "required": [ "items", "taker" ], "$defs": { "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" ] }, "Model620": { "type": "object", "description": "Optional raw order to sell into.", "properties": { "kind": { "type": "string", "default": "", "enum": [ "blur-partial", "opensea", "looks-rare", "zeroex-v4", "seaport", "seaport-v1.4", "seaport-v1.5", "seaport-v1.6", "mintify", "x2y2", "rarible", "sudoswap", "nftx" ], "x-convert": { "case": "lower" } }, "data": { "$ref": "#/$defs/metadata" } } }, "Model621": { "type": "object", "properties": { "token": { "type": "string", "description": "Token to sell.", "pattern": "^0x[a-fA-F0-9]{40}:[0-9]+$", "x-convert": { "case": "lower" } }, "quantity": { "type": "integer", "description": "Quantity of tokens to sell.", "default": 1, "x-constraint": { "sign": "positive" } }, "orderId": { "type": "string", "description": "Optional order id to sell into.", "x-convert": { "case": "lower" } }, "rawOrder": { "$ref": "#/$defs/Model620" }, "exactOrderSource": { "$ref": "#/$defs/Model560" }, "exclusions": { "$ref": "#/$defs/exclusions" } }, "required": [ "token" ] }, "Model622": { "type": "array", "description": "List of items to sell.", "minItems": 1, "items": { "$ref": "#/$defs/Model621" } }, "Model623": { "type": "array", "description": "List of fees (formatted as `feeRecipient:feeAmount`) to be taken when filling.\nThe currency used for any fees on top is always the wrapped native currency of the chain.\nExample: `0xF296178d553C8Ec21A2fBD2c5dDa8CA9ac905A00:1000000000000000`", "items": { "type": "string", "pattern": "^0x[a-fA-F0-9]{40}:[0-9]+$" } }, "exclusions": { "type": "array", "description": "Items to exclude", "items": { "$ref": "#/$defs/Model561" } }, "metadata": { "type": "object" } } }