Skip to main content

Get Quote

GET /api/v1/quote returns the best swap route for a token pair, including estimated amounts, price impact, fee breakdown, and route details.

Parameters

string
required
Input token mint address (base58-encoded public key).
string
required
Output token mint address (base58-encoded public key).
string
required
Amount in smallest token units. For FOGO (9 decimals): 1000000000 = 1 FOGO. For USDC (6 decimals): 1000000 = 1 USDC.
string
required
ExactIn: amount is the exact input, output is estimated. ExactOut: amount is the exact desired output, input is estimated.
integer
default:"50"
Slippage tolerance in basis points (1 bps = 0.01%). Default: 50 (0.5%).

Example

Response

Response fields

string
Input token mint address.
string
Output token mint address.
string
Input amount in smallest units — what the route actually consumes. For ExactOut this is the amount the route needs to buy your requested output. For ExactIn it is normally the amount you asked for, but see Partial fills: it can come back lower.
string
Output amount in smallest units — what the route actually delivers. For ExactIn this is the amount the route produces. For ExactOut it is the amount you asked for plus Vulcx’s fee, which comes out of the output — so what you receive is exactly your amount (a 10000 request at 15 bps shows amountOut 10015). See Partial fills: it can come back lower.
integer
Price impact in basis points.
string
Human-readable price impact (e.g., "0.25%").
string
Severity classification:
string
Warning message. Empty if impact is negligible.
integer
Total pool fee across all hops in basis points.
RouteInfo[]
Array of hops in the route.
string[]
Token path from input to output. Direct: [inputMint, outputMint]. Multi-hop: [inputMint, ...intermediates, outputMint].
integer
Number of hops. 1 = direct swap, 2+ = multi-hop.
string
Slippage-adjusted threshold. ExactIn: minimum output you’ll receive. ExactOut: maximum input you’ll spend.
string
Firm-quote commitment ID. Pass it to POST /swap or POST /instructions to replay this exact route with min-out anchored to this price. Omitted when the quote can’t be pinned (e.g. split routes). See Firm quotes.
integer
How long quoteId stays redeemable, in milliseconds.
integer
How long quoteId stays redeemable with firm: true (price-or-fail), in milliseconds.

Partial fills

Neither amountIn nor amountOut is guaranteed to equal what you asked for. A concentrated-liquidity pool holds its liquidity in ticks around the current price. A trade large enough to consume every tick the route can reach stops there rather than failing, and the quote reports what it could actually do:
So compare both fields against your request before acting on a quote:
  • ExactIn — if amountIn is below your amount, the remainder was not routable and stays in your wallet. Size the trade against amountIn, not against what you asked for.
  • ExactOut — if amountOut is below your amount, the route cannot deliver the full output. Treat that as a failed quote unless a partial fill is acceptable to you.
Ignoring this is not dangerous — you are never charged for input the route did not consume — but a caller that assumes the amounts match will misreport what the user received.

Price impact guidance

  • none / low: Safe to proceed.
  • moderate: Consider splitting into smaller trades.
  • high / extreme: Large trade relative to available liquidity. Review carefully before proceeding. The priceImpactWarning field will contain a human-readable message.
Last modified on September 11, 2026