Reservoir · Schema
Model564
NFTBlockchainMarketplaceEthereumEVMLiquidityOrder BookWeb3DeFiTradingData API
Properties
| Name | Type | Description |
|---|---|---|
| items | object | |
| taker | string | Address of wallet filling (receiver of the NFT). |
| relayer | string | Address of wallet relaying the fill transaction (paying for the NFT). |
| onlyPath | boolean | If true, only the path will be returned. |
| forceRouter | boolean | If true, all fills will be executed through the router (where possible) |
| forwarderChannel | string | If passed, all fills will be executed through the trusted trusted forwarder (where possible) |
| currency | string | Currency to be used for purchases. |
| currencyChainId | number | The chain id of the purchase currency |
| normalizeRoyalties | boolean | Charge any missing royalties. |
| allowInactiveOrderIds | boolean | If true, inactive orders will not be skipped over (only relevant when filling via a specific order id). |
| source | string | Filling source used for attribution. Example: `reservoir.market` |
| feesOnTop | object | |
| partial | boolean | If true, any off-chain or on-chain errors will be skipped. |
| skipBalanceCheck | boolean | If true, balance check will be skipped. |
| excludeEOA | boolean | Exclude orders that can only be filled by EOAs, to support filling with smart contracts. If marked `true`, blur will be excluded. |
| maxFeePerGas | string | Optional custom gas settings. Includes base fee & priority fee in this limit. |
| maxPriorityFeePerGas | string | Optional custom gas settings. |
| usePermit | boolean | When true, will use permit to avoid approvals. |
| swapProvider | string | Choose a specific swapping provider when buying in a different currency (defaults to `relay`) |
| executionMethod | string | |
| referrer | string | Referrer address (where supported) |
| comment | string | Mint comment (where suported) |
| conduitKey | string | Conduit key to use to fulfill the order |
| x2y2ApiKey | string | Optional X2Y2 API key used for filling. |
| openseaApiKey | string | 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 | string | Advanced use case to pass personal blurAuthToken; the API will generate one if left empty. |
JSON Schema
{
"$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"
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/reservoir-model564"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.