routheus-xyz Router API
The Router API from routheus-xyz — 1 operation(s) for router.
The Router API from routheus-xyz — 1 operation(s) for router.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/routheus-xyz:routheus-xyz-router-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: Routheus Router API
description: 'Live DEX token prices and best-route swap quotes across 13 EVM chains (Base, Ethereum, Arbitrum, BSC, Optimism, Polygon and more). Sub-millisecond answers from our own real-time pool-state engine, not a proxy. Executable swap calldata (Permit2), simulation-verified quotes, chained-state arb quoting, token metadata, token search, DEX pools. For AI agents: pay per call in USDC on Base, Polygon, Arbitrum, Avalanche or Solana via x402 — no API keys, no subscription. From $0.001 per call; failed answers are free.'
version: 1.0.0
contact:
email: contact@routheus.xyz
servers:
- url: https://routheus.xyz
tags:
- name: Router
paths:
/{chain}/api/router/quote:
get:
summary: Best-route DEX swap quote (optionally with executable calldata, onchain…
x-payment-info:
intent: charge
method: x402
protocol: x402
mode: dynamic
currency: USD
min: '0.005'
max: '0.9'
parameters:
- name: chain
in: path
required: true
schema:
type: string
enum:
- arb
- ava
- base
- ber
- bsc
- eth
- gno
- hem
- hyp
- opt
- pol
- rob
- son
- uni
example: base
description: 'Chain: canonical slug, chain name, or EIP-155 id — /eth, /ethereum, /1 all work (see /chain-peers for aliases)'
- name: token_in
in: query
required: true
schema:
type: string
example: '0x4200000000000000000000000000000000000006'
description: 'Input token address (0x…). Example: WETH on Base'
- name: token_out
in: query
required: true
schema:
type: string
example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
description: 'Output token address (0x…). Example: USDC on Base'
- name: amount_in
in: query
required: false
schema:
type: string
example: '1000000000000000000'
description: 'Input amount in atomic units. Example: 1 WETH'
- name: amounts_in
in: query
required: false
schema:
type: string
description: Comma-separated batch of input amounts (max 50, 10% batch discount)
- name: to
in: query
required: false
schema:
type: string
description: Swap recipient — presence triggers calldata generation
- name: with_permit2_data
in: query
required: false
schema:
type: string
description: true = also return Permit2 calldata template + signature offsets
- name: simulate
in: query
required: false
schema:
type: string
description: true = amount_out becomes the onchain-simulated result (higher price)
- name: quote_on_top_of_amounts
in: query
required: false
schema:
type: string
description: Comma-separated prior in-transit amounts (max 8) applied to pool state before the final quote — arbitrage product, premium price (simulate is ignored on these requests)
- name: slippage_bps
in: query
required: false
schema:
type: string
description: Slippage tolerance in basis points
- name: slippage
in: query
required: false
schema:
type: string
description: Slippage tolerance in percent (alternative to slippage_bps)
responses:
'200':
description: Route with amount_out, per-leg hops, gas estimate; optional tx/tx_permit2/simulation
content:
application/json:
schema:
type: object
required:
- ok
properties:
ok:
type: boolean
error:
type: string
description: Present when ok=false (never charged)
chain_id:
type: integer
amount_in:
type: string
description: Atomic units
amount_out:
type: string
description: Atomic units; with simulate=true this IS the onchain-simulated result
min_amount_out:
type: string
description: What the swap calldata enforces (local quote minus slippage); present with tx
gas_estimate:
type: integer
route:
type: array
description: Proportional legs (single route = one leg with share 1.0)
items:
type: object
properties:
share:
type: number
amount_in:
type: string
amount_out:
type: string
hops:
type: array
items:
type: object
properties:
pool:
type: string
description: Pool contract address / id
type:
type: string
description: Pool kind, e.g. UniswapV3
token_in:
type: string
token_out:
type: string
tx:
type: object
description: Ready-to-send transaction (present with to=)
properties:
to:
type: string
data:
type: string
value:
type: string
chainId:
type: integer
tx_permit2:
type: object
description: Permit2 calldata template + byte offsets for splicing nonce/deadline/signature
properties:
to:
type: string
data:
type: string
value:
type: string
nonce_offset:
type: integer
permit_deadline_offset:
type: integer
signature_offset:
type: integer
signature_length:
type: integer
simulation:
type: object
properties:
success:
type: boolean
amount_out:
type: string
gas_used:
type: integer
fee_bps:
type: integer
on_top_of_amounts:
type: array
items:
type: string
warnings:
type: array
items:
type: string
batch:
type: boolean
description: true for amounts_in batches
results:
type: object
description: 'Batch mode: per-amount responses keyed by amount'
additionalProperties: true
example:
ok: true
chain_id: 8453
amount_in: '1000000000000000000'
amount_out: '1803691796'
gas_estimate: 249129
route:
- share: 1.0
amount_in: '1000000000000000000'
amount_out: '1803691796'
hops:
- pool: '0x72AB388E2E2F6FaceF59E3C3FA2C4E29011c2D38'
type: UniswapV3
token_in: '0x4200000000000000000000000000000000000006'
token_out: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
fee_bps: 1
min_amount_out: '1794673337'
tx:
to: '0x0000000000b12B7895f5EeB5ca60c1eDCB5A4e08'
data: 0x…
value: '0'
chainId: 8453
tx_permit2:
to: '0x0000000000b12B7895f5EeB5ca60c1eDCB5A4e08'
data: 0x…(template with zeroed nonce/deadline/signature)
value: '0'
chainId: 8453
nonce_offset: 164
permit_deadline_offset: 196
signature_offset: 420
signature_length: 65
'402':
description: Payment required (x402 v1 + v2). The v1 offer is the JSON body's `accepts` array (one entry per payment network — USDC on Base/Polygon/Arbitrum/Avalanche/Solana; retry with the X-PAYMENT header); the same offer is in the base64 PAYMENT-REQUIRED response header for v2 clients (retry with PAYMENT-SIGNATURE).
content:
application/json: {}
tags:
- Router
operationId: getByChainApiRouterQuote
x-operation-id-source: derived