Skip to main content
GET
/
api
/
v2
/
quote
quote
curl --request GET \
  --url https://api.naos.trade/api/v2/quote \
  --header 'Authorization: Bearer <token>'
{
  "success": true,
  "path": [
    {
      "step": {
        "input": "<string>",
        "output": "<string>",
        "router": "<string>",
        "quoter": "<string>",
        "fee": 123,
        "tick": 123,
        "hook": "<string>",
        "poolType": "<string>",
        "address": "<string>",
        "data": "<string>"
      }
    }
  ],
  "stats": {
    "valueAmountInUsd": 123,
    "amountOut": "<string>",
    "amountOutMin": "<string>",
    "priceImpact": 123,
    "txCostUsd": 123,
    "buyTax": 123,
    "sellTax": 123,
    "transferTax": 123
  },
  "transaction": {
    "trade": "<string>",
    "approve": "<string>",
    "quoteId": "<string>",
    "extra": "<string>"
  },
  "error": "<string>"
}

Authorizations

Authorization
string
header
required

API key via Authorization: Bearer YOUR_API_KEY

Query Parameters

tokenIn
string
required

Input token address

Pattern: ^0x[a-fA-F0-9]{40}$
tokenOut
string
required

Output token address

Pattern: ^0x[a-fA-F0-9]{40}$
amount
string
required

Amount of tokenIn in smallest unit, or percentage format (e.g. '50%')

Pattern: ^\d+%?$
slippage
integer
required

Slippage tolerance in basis points (1 = 0.01%, 10000 = 100% / fast mode). Fast mode (slippage=10000) skips simulation and balance preflight, and bakes minOut=0 into the trade tx — stats.amountOutMin is therefore '0'. stats.amountOut and the rest of the response are still populated.

Required range: 1 <= x <= 10000
trader
string

Wallet address that will sign and execute the transaction

chain
enum<string>

Blockchain network Blockchain network identifier

Available options:
BASE,
ETH,
BSC,
ARB,
AVAX,
ABS,
HYPE,
INK,
STORY,
XLAYER,
PLASMA,
UNI,
MONAD,
MEGAETH,
SOL
priority
enum<string>

Gas priority level

Available options:
LOW,
MEDIUM,
HIGH,
INSTANT
simulation
boolean
default:false

Run pre-flight transaction simulation, at a time cost

integrator
string

Integrator fee recipient wallet address

fee
integer
default:0

Integrator fee in basis points (0 or 10-500)

Required range: 0 <= x <= 500

Response

Quote generated

success
boolean
required
path
object[]

Routing path showing each hop through DEX pools

stats
object

Trade statistics and price estimates

transaction
object

Unsigned transactions ready to sign. The order in which they must be broadcast (or bundled in an EIP-7702 multicall) depends on the pool type:

Default (DEX swaps + Strategy/V4 hooks + Four.meme non-BNB sells + Tempo ENSHRINED): approve → extra → trade. The extra is a second pre-condition (Permit2 approve, quote-token approve, or moved-aside ERC-20 approve). • Launchpad bonding curves (poolType: APE.STORE, ARENAV2, BASE.MEME, CREATOR.BID, DYOR FUN, ENSHRINED [non-Tempo], FASTER.FUN, INKYPUMP, LIQUIDLAUNCH, MANIA, NAD.FUN, POLITISWAP, PRISMFI, SOMETHING, ALLOCA): approve → trade → extra. The extra here is the fee tx (cashback + referral split on the native received from the swap) — it must run AFTER the swap because the wallet doesn't have the fee tokens until the swap settles. Detect via path[0].step.poolType ∈ this set.

error
string | null

Error message when success is false