Pairs
Exact pair metadata and counterpart-token search (GET /v1/pairs, GET /v1/pairs/search)
Returns metadata for one exact direction. All four query fields are required: fromToken, fromNetwork, toToken, toNetwork.
Each pair includes availableEngines (on-chain / off-chain / private), provider slugs, minAmount and maxAmount ("0" when the catalog has no max).
Unknown token/network combinations that still pass validation return { tokenPairs: [], totalPairs: 0 } (200), not 404.
Successful lookups are cached for 5 minutes. To list counterpart tokens for a single side, use GET /v1/pairs/search.
Source token ticker. Must be provided together with fromNetwork.
ETHSource chain slug (GET /v1/chains → id)
ETHTarget token ticker. Must be provided together with toNetwork.
USDCTarget chain slug (GET /v1/chains → id)
ETHMatching token pairs (often 0 or 1) with engines and limits
Total number of token pairs found
1Missing required field or unknown query parameter
WORKFLOW_TIMEOUT (20s pair workflow)
TOKEN_PAIRS_ERROR or workflow failure
GET /v1/pairs?fromToken=ETH&fromNetwork=ETH&toToken=USDC&toNetwork=ETH HTTP/1.1
Host: api.yifi.io
Accept: */*
{
"tokenPairs": [
{
"fromToken": "ETH",
"fromNetwork": "ETH",
"toToken": "USDC",
"toNetwork": "ETH",
"availableEngines": [
"on-chain",
"off-chain",
"private"
],
"providers": [
"lifi",
"quickex",
"houdini"
],
"minAmount": "0.01",
"maxAmount": "100"
}
],
"totalPairs": 1
}Paginated counterpart tokens for building a pair picker. Response shape matches GET /v1/tokens.
How filters are applied (no 400 for a lone ticker/network):
fromTokenandfromNetworkboth set → tokens you can receive (thetoside of catalog pairs). OptionaltoNetworkfurther restricts those counterparts.toTokenandtoNetworkboth set → tokens you can send (thefromside). OptionalfromNetworkfurther restricts those counterparts.Only one side of a pair (
fromTokenwithoutfromNetwork, etc.) is treated as not set.Neither complete side → the counterpart set is empty (
tokens: [],total: 0). This endpoint does not dump the full catalog.
search ranks within the counterpart set (ticker / name / address). Default page: limit=20, offset=0. Coin-set cache TTL: 5 minutes.
Source token ticker. Used only when fromNetwork is also set; otherwise ignored.
ETHSource chain slug. Used only when fromToken is also set; otherwise ignored.
ETHTarget token ticker. Used only when toNetwork is also set; otherwise ignored.
USDCTarget chain slug. Used only when toToken is also set; otherwise ignored.
ETHSearch by ticker or token name within the results
BTCNumber of results per page. Maximum 100.
20Example: 20Pagination offset
0Example: 0Paginated counterpart tokens
Number of token objects in this response page (matches tokens.length)
Page size for this response
Pagination offset
Total tokens matching filters before pagination
Invalid pagination or unknown query parameter
WORKFLOW_TIMEOUT (20s pair workflow)
TOKEN_PAIRS_ERROR or workflow failure
GET /v1/pairs/search HTTP/1.1
Host: api.yifi.io
Accept: */*
{
"tokens": [
{
"uuid": "4f2e6d6b-6e15-4f47-8b6e-2a3d3c5b9d10",
"network": "ETH",
"ticker": "ETH",
"name": "Ethereum",
"supportsFixedRate": false,
"contractAddress": null,
"engineSupport": [
"on-chain",
"off-chain"
],
"logoUrlCoin": "text",
"regexAddress": "^0x[a-fA-F0-9]{40}$",
"explorerAddressUrl": "text",
"explorerTransactionUrl": "text",
"decimals": {},
"logoUrlsNetwork": {},
"coingeckoCoinId": "ethereum",
"currentPriceUsd": "2397.32"
}
],
"totalTokens": 1,
"limit": 1,
"offset": 1,
"total": 1
}Last updated
Was this helpful?