---
title: "Quote a gasless route (GET query form)"
method: GET
path: "/api/route/quote"
tags: ["routing"]
---

# Quote a gasless route (GET query form)

`GET /api/route/quote`

## Request

- Base URL: `https://api.anygas.xyz/svc`
- URL: `https://api.anygas.xyz/svc/api/route/quote`
- Auth: none declared

Same quote as POST /api/route/quote with the body fields given as query parameters — for browsers, curl and quick checks. Same rate limit (40/min) and response. Without any parameters it answers 400 with a usage object.

## Query parameters

- `fromChain` union, required
  - string
  - integer
- `toChain` union, required
  - string
  - integer
- `amount` string, required
- `fromToken` string
- `toToken` string
- `toAddress` string
- `fromAddress` string
- `slippage` number

## Headers

- `x-anygas-pass` string

## Response `200`

Best route quote

- Quote: Single-intent quote. Non-EVM legs return a dedicated shape (shown); EVM<->EVM lanes return best-of-N fields (bridge, bestOf, compared[]).
  - `gasless` boolean
  - `from` object
    - `chain` unknown
    - `token` string
    - `amount` string
  - `to` object
  - `bridge` string
  - `via` string[]
  - `bestOf` integer: EVM<->EVM: number of aggregators compared
  - `compared` object[]: EVM<->EVM: per-aggregator outputs
  - `durationSec` number
  - `robynRouteFeeBps` integer
  - `robynRouteFee` string
  - `quoteOnly` boolean: TRUE means this corridor can be PRICED but NOT settled: POST /api/route/execute will refuse it with status UNSUPPORTED_DIRECTION. Absent or false means the route is executable. ALWAYS branch on this before presenting a quote as actionable - a quoteOnly route is for price comparison only. Currently set for Solana (both directions) and stellar->evm.
  - `executeReady` boolean: False alongside quoteOnly:true. Present so a client can gate on a single positive assertion of executability rather than inferring it from the absence of an error.
  - `quoteOnlyReason` string: Human-readable explanation of why this corridor cannot settle, and what would lift the restriction.
  - `floatlane` object: Present when the Robyn float lane can serve this pair (our own inventory on both chains, no bridge in the path). Key fields: `fee` (base units), `effectiveFeeBps`, `pricing.mode` (free-micro-vip | micro-standard | rebalancing-discount | rebalancing-partial | base | adaptive | undercut), `freeTier` (whether the micro tier applied and, if not, exactly which check failed), `vip` (member status and the recognised collections), `capNow` (largest transfer this lane can serve right now = 25% of destination float) and `destFloat`. MICRO TIER: transfers of $0.10-$25 to a low-cost destination are FREE for holders of a recognised member NFT, and cost a fraction of a cent for everyone else - never more than the standard 8bps. Pass `fromAddress` so membership can be recognised.
    - `fee` string
    - `effectiveFeeBps` number
    - `capNow` string: Largest transfer this lane can serve right now, in base units
    - `pricing` object
    - `freeTier` object
    - `vip` object
  - `note` string

## Other responses

- `400`: Missing/invalid parameters (body carries usage)
- `404`: Unroutable lane

---

[API](https://skmtc.dev/anygas/apis/robyn-anygas-api.md) · [All operations](https://skmtc.dev/anygas/apis/robyn-anygas-api/llms.txt) · [OpenAPI document](https://skmtc.dev/anygas/apis/robyn-anygas-api/revisions/9b7498be8304?raw)
