Skip to main content
Composer uses the standard LI.FI quote parameters; it has no dedicated endpoint or extra required parameter. This page lists the parameters that matter for Composer and how to identify and filter Composer routes. For every parameter, see GET /quote and POST /advanced/routes; for the base URL, authentication and rate limits, see the API overview.

How toToken selects Composer

When toToken is a supported vault, staking or deposit token, the routing engine builds a Composer route (a swap and bridge to the underlying asset if needed, then the protocol deposit) and simulates it. It compares that route with other routes into the same token, such as a DEX that buys the vault token directly, and returns the best one with a ready-to-sign transactionRequest. The Composer part of a route has at most two hops, and a swap can only be the first hop: for example, a swap from USDC to USDe followed by a deposit into sUSDe. A target that needs a longer path returns no Composer route.

Composer-relevant parameters

These parameters belong to the standard GET /quote and POST /advanced/routes endpoints.

Identifying Composer routes

The Composer tool name

Composer’s tool identifier is "composer". It appears as a step in includedSteps:
The top-level quote.tool is "composer" only when Composer is the route’s main step, as in a same-chain deposit that Composer won. In a cross-chain route it names the bridge (for example "across"), and in a route where a DEX buys the vault token it names the DEX. Always detect Composer through includedSteps.

Detecting Composer routes in your application

For a GET /quote response:
For routes from POST /advanced/routes, check every step: route.steps.some((step) => step.includedSteps.some((s) => s.tool === "composer")). In a two-transaction cross-chain route, Composer is the second step.

Filtering Composer routes

Composer is a protocol, not a bridge or an exchange, so it has its own filters. composer is the only value they accept; any other value returns HTTP 400.
  • Require Composer: not possible. Composer always competes with DEX routes into the same token.
  • allowExchanges and denyExchanges reject composer with HTTP 400 and error code 1011, because Composer is not an exchange.
The protocol filters are not yet listed in the full API reference; this page is their reference.