curl -L \
"https://api.fibrous.finance/{network}/v2/route?amount=1000000000000000000&tokenInAddress=0x0000000000000000000000000000000000000000&tokenOutAddress=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" \
--header "Accept: */*"
const axios = require('axios');
const params = {
amount: '1000000000000000000',
tokenInAddress: '0x0000000000000000000000000000000000000000',
tokenOutAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
};
// Optional: Add API key for integrator features
const headers = {
'X-API-Key': 'your-api-key-here'
};
axios.get('https://api.fibrous.finance/{network}/v2/route', { params, headers })
.then(response => {
console.log(`API Version: ${response.data.meta.apiVersion}`);
console.log(response.data);
})
.catch(error => console.error(error));
import requests
url = "https://api.fibrous.finance/{network}/v2/route"
params = {
"amount": "1000000000000000000",
"tokenInAddress": "0x0000000000000000000000000000000000000000",
"tokenOutAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
}
# Optional: Add API key for integrator features
headers = {
"X-API-Key": "your-api-key-here" # optional
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(f"API Version: {data['meta']['apiVersion']}")
print(data)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class FibrousRoute {
public static void main(String[] args) throws Exception {
String baseUrl = "https://api.fibrous.finance/{network}/v2/route";
String params = "amount=1000000000000000000" +
"&tokenInAddress=0x0000000000000000000000000000000000000000" +
"&tokenOutAddress=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(baseUrl + "?" + params))
.header("Accept", "*/*")
// Optional: Add API key for integrator features
.header("X-API-Key", "your-api-key-here")
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL := "https://api.fibrous.finance/{network}/v2/route"
params := url.Values{}
params.Add("amount", "1000000000000000000")
params.Add("tokenInAddress", "0x0000000000000000000000000000000000000000")
params.Add("tokenOutAddress", "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
req, err := http.NewRequest("GET", baseURL+"?"+params.Encode(), nil)
if err != nil {
panic(err)
}
req.Header.Set("Accept", "*/*")
// Optional: Add API key for integrator features
req.Header.Set("X-API-Key", "your-api-key-here")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println("Response:", string(body))
}
{
"success": true,
"routeSwapType": 0,
"inputToken": {
"name": "Wrapped Ether",
"address": "0x4200000000000000000000000000000000000006",
"decimals": 18,
"price": 2949.717076112869
},
"inputAmount": "1000000000000000000",
"outputToken": {
"name": "USD Coin",
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"decimals": 6,
"price": 0.999597487941284
},
"outputAmount": "2951108576",
"time": 3.285,
"estimatedGasUsed": "0",
"estimatedGasUsedInUsd": 0,
"route": [
{
"percent": "35%",
"swaps": [
[
{
"protocol": 3,
"poolName": "Aerodrome Slipstream",
"poolAddress": "0xb2cc224c1c9fee385f8ad6a55b4d94e92359dc59",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "48.57%",
"extraData": {
"tickSpacing": 100
}
},
{
"protocol": 9,
"poolName": "PancakeSwap V3",
"poolAddress": "0x72ab388e2e2f6facef59e3c3fa2c4e29011c2d38",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "51.43%",
"extraData": {
"fee": 100
}
}
]
]
},
{
"percent": "65%",
"swaps": [
[
{
"protocol": 3,
"poolName": "Aerodrome Slipstream",
"poolAddress": "0x70acdf2ad0bf2402c957154f944c19ef4e1cbae1",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"percent": "53.00%",
"extraData": {
"tickSpacing": 100
}
},
{
"protocol": 9,
"poolName": "PancakeSwap V3",
"poolAddress": "0xc211e1f853a898bd1302385ccde55f33a8c4b3f3",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"percent": "47.00%",
"extraData": {
"fee": 100
}
}
],
[
{
"protocol": 9,
"poolName": "PancakeSwap V3",
"poolAddress": "0xb94b22332abf5f89877a14cc88f2abc48c34b3df",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "75.00%",
"extraData": {
"fee": 100
}
},
{
"protocol": 52,
"poolName": "Hydrex",
"poolAddress": "0x0ba69825c4c033e72309f6ac0bde0023b15cc97c",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "6.00%",
"extraData": null
},
{
"protocol": 57,
"poolName": "Quickswap Algebra",
"poolAddress": "0xacc2874ed22e811afdc47979c7b7985cced53b29",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "18.00%",
"extraData": null
},
{
"protocol": 55,
"poolName": "PancakeSwap Infinity",
"poolAddress": "0xa0FfB9c1CE1Fe56963B0321B32E7A0302114058b",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "1.00%",
"extraData": {
"poolId": "0x2a597b8f49af109cebd39704508265dc0083b4bf95ff4b184fb082ae7d71192e",
"token0": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"token1": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"fee": 61,
"tickSpacing": 1,
"hooks": "0x0000000000000000000000000000000000000000"
}
}
]
]
}
],
"bestQuotesByProtocols": [],
"initial": false,
"meta": {
"apiVersion": "2.0",
"timestamp": "2026-01-24T21:46:39.518Z"
}
}
Core Endpoints V2
Get Route (V2)
Find the optimal trading route with V2 API features
GET
/
{network}
/
v2
/
route
curl -L \
"https://api.fibrous.finance/{network}/v2/route?amount=1000000000000000000&tokenInAddress=0x0000000000000000000000000000000000000000&tokenOutAddress=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" \
--header "Accept: */*"
const axios = require('axios');
const params = {
amount: '1000000000000000000',
tokenInAddress: '0x0000000000000000000000000000000000000000',
tokenOutAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
};
// Optional: Add API key for integrator features
const headers = {
'X-API-Key': 'your-api-key-here'
};
axios.get('https://api.fibrous.finance/{network}/v2/route', { params, headers })
.then(response => {
console.log(`API Version: ${response.data.meta.apiVersion}`);
console.log(response.data);
})
.catch(error => console.error(error));
import requests
url = "https://api.fibrous.finance/{network}/v2/route"
params = {
"amount": "1000000000000000000",
"tokenInAddress": "0x0000000000000000000000000000000000000000",
"tokenOutAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
}
# Optional: Add API key for integrator features
headers = {
"X-API-Key": "your-api-key-here" # optional
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(f"API Version: {data['meta']['apiVersion']}")
print(data)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class FibrousRoute {
public static void main(String[] args) throws Exception {
String baseUrl = "https://api.fibrous.finance/{network}/v2/route";
String params = "amount=1000000000000000000" +
"&tokenInAddress=0x0000000000000000000000000000000000000000" +
"&tokenOutAddress=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(baseUrl + "?" + params))
.header("Accept", "*/*")
// Optional: Add API key for integrator features
.header("X-API-Key", "your-api-key-here")
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL := "https://api.fibrous.finance/{network}/v2/route"
params := url.Values{}
params.Add("amount", "1000000000000000000")
params.Add("tokenInAddress", "0x0000000000000000000000000000000000000000")
params.Add("tokenOutAddress", "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
req, err := http.NewRequest("GET", baseURL+"?"+params.Encode(), nil)
if err != nil {
panic(err)
}
req.Header.Set("Accept", "*/*")
// Optional: Add API key for integrator features
req.Header.Set("X-API-Key", "your-api-key-here")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println("Response:", string(body))
}
{
"success": true,
"routeSwapType": 0,
"inputToken": {
"name": "Wrapped Ether",
"address": "0x4200000000000000000000000000000000000006",
"decimals": 18,
"price": 2949.717076112869
},
"inputAmount": "1000000000000000000",
"outputToken": {
"name": "USD Coin",
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"decimals": 6,
"price": 0.999597487941284
},
"outputAmount": "2951108576",
"time": 3.285,
"estimatedGasUsed": "0",
"estimatedGasUsedInUsd": 0,
"route": [
{
"percent": "35%",
"swaps": [
[
{
"protocol": 3,
"poolName": "Aerodrome Slipstream",
"poolAddress": "0xb2cc224c1c9fee385f8ad6a55b4d94e92359dc59",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "48.57%",
"extraData": {
"tickSpacing": 100
}
},
{
"protocol": 9,
"poolName": "PancakeSwap V3",
"poolAddress": "0x72ab388e2e2f6facef59e3c3fa2c4e29011c2d38",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "51.43%",
"extraData": {
"fee": 100
}
}
]
]
},
{
"percent": "65%",
"swaps": [
[
{
"protocol": 3,
"poolName": "Aerodrome Slipstream",
"poolAddress": "0x70acdf2ad0bf2402c957154f944c19ef4e1cbae1",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"percent": "53.00%",
"extraData": {
"tickSpacing": 100
}
},
{
"protocol": 9,
"poolName": "PancakeSwap V3",
"poolAddress": "0xc211e1f853a898bd1302385ccde55f33a8c4b3f3",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"percent": "47.00%",
"extraData": {
"fee": 100
}
}
],
[
{
"protocol": 9,
"poolName": "PancakeSwap V3",
"poolAddress": "0xb94b22332abf5f89877a14cc88f2abc48c34b3df",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "75.00%",
"extraData": {
"fee": 100
}
},
{
"protocol": 52,
"poolName": "Hydrex",
"poolAddress": "0x0ba69825c4c033e72309f6ac0bde0023b15cc97c",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "6.00%",
"extraData": null
},
{
"protocol": 57,
"poolName": "Quickswap Algebra",
"poolAddress": "0xacc2874ed22e811afdc47979c7b7985cced53b29",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "18.00%",
"extraData": null
},
{
"protocol": 55,
"poolName": "PancakeSwap Infinity",
"poolAddress": "0xa0FfB9c1CE1Fe56963B0321B32E7A0302114058b",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "1.00%",
"extraData": {
"poolId": "0x2a597b8f49af109cebd39704508265dc0083b4bf95ff4b184fb082ae7d71192e",
"token0": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"token1": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"fee": 61,
"tickSpacing": 1,
"hooks": "0x0000000000000000000000000000000000000000"
}
}
]
]
}
],
"bestQuotesByProtocols": [],
"initial": false,
"meta": {
"apiVersion": "2.0",
"timestamp": "2026-01-24T21:46:39.518Z"
}
}
Overview
Route V2 endpoint provides the same routing functionality as V1, with additional features including integrator support, enhanced metadata, and improved response structure. Currently available on EVM networks.V2 API is currently available on Evm networks. V1 endpoints remain available for backward compatibility.
Endpoint
- EVM networks
https://api.fibrous.finance/{network}/v2/route
What’s New in V2
Integrator Support
Monetize your integration with fees or surplus sharing
Enhanced Metadata
All responses include API version and timestamp
Better Tracking
Track output amounts before and after fees
API Key Support
Use API keys for higher rate limits and integrator features
Query Parameters
string
required
The amount of input tokens in wei format. For tokens with 18 decimals, multiply the amount by 10^18.Example:
"1000000000000000000" for 1 tokenstring
required
The address of the input token.Example:
"0x0000000000000000000000000000000000000000" for native tokenstring
required
The address of the output token.Example:
"0x3bd359c1119da7da1d913d1c4d2b7c461115433a" for wrapped tokenboolean
Not supported yet - reserved for future use. Default:
falseboolean
If true, only direct swaps between the input and output tokens will be considered. Default:
falsestring
Comma-separated list of protocol IDs to exclude from routing (e.g., “1,2,3”). Default:
""string
Integrator wallet address to receive fees or surplus. Requires API key authentication.
number
Integrator fee percentage in basis points (0-500, maximum 5%). Cannot be used together with integratorSurplusPercentageBps.
number
Integrator surplus percentage in basis points (0-5000, maximum 50%). Cannot be used together with integratorFeePercentageBps.
API Key Required: Integrator features (integratorAddress, integratorFeePercentageBps, integratorSurplusPercentageBps) require an API key. Generate and manage your API keys at the Fibrous Partnership Portal. Include the API key in the request headers as
X-API-Key.Response
boolean
Indicates if the request was successful.
number
Type of swap route (0: ETH to Token, 1: Token to ETH, 2: Token to Token).
object
string
The input amount in wei format.
object
Details about the output token (same structure as inputToken).
string
The estimated amount of output tokens in wei format.
string
The output amount after integrator fee deduction (if integrator fee is used).
string
Estimated gas cost for the swap in wei.
number
Estimated gas cost in USD.
array
Array of route segments with detailed swap information.
Show child attributes
Show child attributes
string
Percentage of input amount going through this route
string
Integrator address (if provided).
number
Integrator fee percentage in basis points (if applicable).
number
Integrator surplus percentage in basis points (if applicable).
string
Integrator name from API key (if applicable).
object
required
curl -L \
"https://api.fibrous.finance/{network}/v2/route?amount=1000000000000000000&tokenInAddress=0x0000000000000000000000000000000000000000&tokenOutAddress=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" \
--header "Accept: */*"
const axios = require('axios');
const params = {
amount: '1000000000000000000',
tokenInAddress: '0x0000000000000000000000000000000000000000',
tokenOutAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
};
// Optional: Add API key for integrator features
const headers = {
'X-API-Key': 'your-api-key-here'
};
axios.get('https://api.fibrous.finance/{network}/v2/route', { params, headers })
.then(response => {
console.log(`API Version: ${response.data.meta.apiVersion}`);
console.log(response.data);
})
.catch(error => console.error(error));
import requests
url = "https://api.fibrous.finance/{network}/v2/route"
params = {
"amount": "1000000000000000000",
"tokenInAddress": "0x0000000000000000000000000000000000000000",
"tokenOutAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
}
# Optional: Add API key for integrator features
headers = {
"X-API-Key": "your-api-key-here" # optional
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(f"API Version: {data['meta']['apiVersion']}")
print(data)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class FibrousRoute {
public static void main(String[] args) throws Exception {
String baseUrl = "https://api.fibrous.finance/{network}/v2/route";
String params = "amount=1000000000000000000" +
"&tokenInAddress=0x0000000000000000000000000000000000000000" +
"&tokenOutAddress=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(baseUrl + "?" + params))
.header("Accept", "*/*")
// Optional: Add API key for integrator features
.header("X-API-Key", "your-api-key-here")
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL := "https://api.fibrous.finance/{network}/v2/route"
params := url.Values{}
params.Add("amount", "1000000000000000000")
params.Add("tokenInAddress", "0x0000000000000000000000000000000000000000")
params.Add("tokenOutAddress", "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
req, err := http.NewRequest("GET", baseURL+"?"+params.Encode(), nil)
if err != nil {
panic(err)
}
req.Header.Set("Accept", "*/*")
// Optional: Add API key for integrator features
req.Header.Set("X-API-Key", "your-api-key-here")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println("Response:", string(body))
}
{
"success": true,
"routeSwapType": 0,
"inputToken": {
"name": "Wrapped Ether",
"address": "0x4200000000000000000000000000000000000006",
"decimals": 18,
"price": 2949.717076112869
},
"inputAmount": "1000000000000000000",
"outputToken": {
"name": "USD Coin",
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"decimals": 6,
"price": 0.999597487941284
},
"outputAmount": "2951108576",
"time": 3.285,
"estimatedGasUsed": "0",
"estimatedGasUsedInUsd": 0,
"route": [
{
"percent": "35%",
"swaps": [
[
{
"protocol": 3,
"poolName": "Aerodrome Slipstream",
"poolAddress": "0xb2cc224c1c9fee385f8ad6a55b4d94e92359dc59",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "48.57%",
"extraData": {
"tickSpacing": 100
}
},
{
"protocol": 9,
"poolName": "PancakeSwap V3",
"poolAddress": "0x72ab388e2e2f6facef59e3c3fa2c4e29011c2d38",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "51.43%",
"extraData": {
"fee": 100
}
}
]
]
},
{
"percent": "65%",
"swaps": [
[
{
"protocol": 3,
"poolName": "Aerodrome Slipstream",
"poolAddress": "0x70acdf2ad0bf2402c957154f944c19ef4e1cbae1",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"percent": "53.00%",
"extraData": {
"tickSpacing": 100
}
},
{
"protocol": 9,
"poolName": "PancakeSwap V3",
"poolAddress": "0xc211e1f853a898bd1302385ccde55f33a8c4b3f3",
"fromTokenAddress": "0x4200000000000000000000000000000000000006",
"toTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"percent": "47.00%",
"extraData": {
"fee": 100
}
}
],
[
{
"protocol": 9,
"poolName": "PancakeSwap V3",
"poolAddress": "0xb94b22332abf5f89877a14cc88f2abc48c34b3df",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "75.00%",
"extraData": {
"fee": 100
}
},
{
"protocol": 52,
"poolName": "Hydrex",
"poolAddress": "0x0ba69825c4c033e72309f6ac0bde0023b15cc97c",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "6.00%",
"extraData": null
},
{
"protocol": 57,
"poolName": "Quickswap Algebra",
"poolAddress": "0xacc2874ed22e811afdc47979c7b7985cced53b29",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "18.00%",
"extraData": null
},
{
"protocol": 55,
"poolName": "PancakeSwap Infinity",
"poolAddress": "0xa0FfB9c1CE1Fe56963B0321B32E7A0302114058b",
"fromTokenAddress": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"toTokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"percent": "1.00%",
"extraData": {
"poolId": "0x2a597b8f49af109cebd39704508265dc0083b4bf95ff4b184fb082ae7d71192e",
"token0": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"token1": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"fee": 61,
"tickSpacing": 1,
"hooks": "0x0000000000000000000000000000000000000000"
}
}
]
]
}
],
"bestQuotesByProtocols": [],
"initial": false,
"meta": {
"apiVersion": "2.0",
"timestamp": "2026-01-24T21:46:39.518Z"
}
}
Integrator Features
API Key Required: To use integrator features, partners must obtain an API key from Fibrous. Generate and manage your API keys at the Fibrous Partnership Portal.
const headers = {
'X-API-Key': 'your-api-key-here'
};
const params = {
amount: '1000000000000000000',
tokenInAddress: '0x0000000000000000000000000000000000000000',
tokenOutAddress: '0x3bd359c1119da7da1d913d1c4d2b7c461115433a',
integratorAddress: '0xYourWalletAddress',
integratorFeePercentageBps: 100 // 1% fee
};
const response = await fetch('https://api.fibrous.finance/{network}/v2/route?' + new URLSearchParams(params), {
headers
});
You cannot use both
integratorFeePercentageBps and integratorSurplusPercentageBps in the same request. Choose one monetization method.Differences from V1
| Feature | V1 | V2 |
|---|---|---|
| Meta field | ❌ | ✅ Always present |
| Integrator support | ❌ | ✅ With API key |
| outputAmountAfterFee | ❌ | ✅ When fee is used |
| API version tracking | ❌ | ✅ In meta field |
Best Practices
- Always check meta.apiVersion to ensure you’re using the expected API version
- Use API keys for production integrations to access integrator features
- Monitor meta.timestamp for debugging and tracking response times
- Handle outputAmountAfterFee when using integrator fees to show accurate amounts to users
Related Endpoints
- Route V1 - Original route endpoint
- Route and Calldata V2 - Get route and calldata in one call
- Calldata V2 - Generate calldata from route
- V2 Migration Guide - Complete migration guide
⌘I