Price several amounts or pairs at one block
Price several amounts or pairs at one block. Prices several quotes, each a pair with one or more amounts, against one chain state and reports its block. Prefer it to sequential quote calls when prices must be comparable, such as both sides of a book. Charged once per request. Supports exact-output amounts per quote and historical state for approximately 35 days; the first request for a block may take 1-7 seconds.
Answeringour last check, 2026-09-24
1 of 1checks answered this week
1021 msmedian answer time
$0.00003listed price per call
$0.00003price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://api.3route.io/v1/pro/:chainId/quote/batch
| Category | Market data |
|---|---|
| Provider host | api.3route.io |
| Networks | eip155:42793, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | batch-settlement, exact |
| Self-reported calls, 30 days | 0 from 0 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-24 | valid payment request | 402 | $0.00003 | 1021 ms |
Example input (from the provider)
{
"body": {
"blockNumber": 70524414,
"quotes": [
{
"amounts": [
"10000000",
"20000000"
],
"dst": "0xaf3d76f1834a1d425780943c99ea8a608f8a93f9",
"src": "0x5fc5360d0400a0fd4f2af552add042d716f1d168"
},
{
"amounts": [
"30000000000000000"
],
"dst": "0x5fc5360d0400a0fd4f2af552add042d716f1d168",
"src": "0xaf3d76f1834a1d425780943c99ea8a608f8a93f9"
}
]
},
"bodyType": "json",
"method": "POST",
"pathParams": {
"chainId": "42793"
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"description": "Every quote in the batch is answered from one chain state. The state selectors belong to the envelope only; blockNumber or timestamp inside a quote is rejected as an unknown field.",
"properties": {
"blockNumber": {
"description": "Use historical state at this block for every quote. Cannot be combined with timestamp or reference a future block.",
"minimum": 0,
"type": "integer"
},
"quotes": {
"description": "Quotes to answer, currently at most 4 per request, with at most 100 amounts summed over all quotes. The limits can change; a request over them answers 400 naming the current limit.",
"items": {
"additionalProperties": false,
"description": "One quote in a batch: a pair and the amounts to price for it. Options apply to this quote only, so the two sides of a book can be filtered or priced differently.",
"properties": {
"amounts": {
"description": "Positive amounts in smallest units, as integer strings, priced against this pair. Uses src units by default, or dst units when isExactOutput=true. The response holds one element per amount, in request order.",
"example": [
"10000000",
"20000000"
],
"items": {
"pattern": "^[0-9]+$",
"type": "string"
},
"minItems": 1,
"type": "array"
},
"dst": {
"description": "Address of the token being bought; take one from the token-list operation for the selected chain, or use the zero address, or the case-insensitive sentinel 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, for the chain's native asset.",
"example": "0xaf3d76f1834a1d425780943c99ea8a608f8a93f9",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"excludedProtocols": {
"description": "Comma-separated deny-list of DEX provider names to exclude from routing. Unknown names are ignored.",
"type": "string"
},
"fee": {
"default": 0,
"description": "Referral fee in percent. It is deducted from the input and reflected in srcAmount. A value outside the range is rejected with 400.",
"maximum": 3,
"minimum": 0,
"type": "number"
},
"includeProtocols": {
"default": false,
"description": "Include route hops, pool addresses, expected input and output amounts, and shares in basis points.",
"type": "boolean"
},
"includeTokensInfo": {
"default": false,
"description": "Set true to add the srcToken and dstToken metadata objects to the response",
"type": "boolean"
},
"isExactOutput": {
"default": false,
"description": "Set true to use each entry of amounts as the desired dst output and calculate the required srcAmount.",
"type": "boolean"
},
"protocols": {
"description": "Comma-separated allow-list of DEX provider names to route through. Omit it to allow every provider. Unknown names are ignored when at least one name is known, but a list in which no name is known is rejected with 400. Provider names come back in protocols when includeProtocols=true.",
"type": "string"
},
"src": {
"description": "Address of the token being sold; use the zero address, or the case-insensitive sentinel 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, for the chain's native asset",
"example": "0x5fc5360d0400a0fd4f2af552add042d716f1d168",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"src",
"dst",
"amounts"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"timestamp": {
"description": "Use historical state at this Unix timestamp in seconds for every quote. Cannot be combined with blockNumber or reference a future time.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"quotes"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"pathParams": {
"additionalProperties": false,
"properties": {
"chainId": {
"description": "Chain ID for the operation.",
"enum": [
"4663",
"42793"
],
"example": "4663",
"pattern": "^[0-9]+$",
"type": "string"
}
},
"required": [
"chainId"
],
"type": "object"
},
"type": {