Aggregator API(V4)

V4 is currently in beta version.

Quote

  • URL: https://open-api.openocean.finance/v4/:chain/quote

  • Method: get

  • Params:

Example:

  • Request

https://open-api.openocean.finance/v4/bsc/quote?inTokenAddress=0x55d398326f99059ff775485246999027b3197955&outTokenAddress=0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d&amount=5&gasPrice=3
  • Response:

{
"code": 200,
"data": {
    "chainId": 56,
    "inToken": {
        "symbol": "USDT",
        "name": "Binance-Peg USD (T)",
        "decimals": 18,
        "address": "0x55d398326f99059ff775485246999027b3197955"
    },
    "outToken": {
        "symbol": "USDC",
        "name": "Binance-Peg USD Coin",
        "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
        "decimals": 18
    },
    "inAmount": "5000000000000000000",
    "outAmount": "4993413181575034654",
    "estimatedGas": "140856",
    "dexes": [
        {
            "dexIndex": 0,
            "dexCode": "Pancake",
            "swapAmount": "4986163246460338735"
        },
        {
            "dexIndex": 1,
            "dexCode": "PancakeV2",
            "swapAmount": "4982455151723443863"
        },
        {
            "dexIndex": 3,
            "dexCode": "Bakery",
            "swapAmount": "756300375579893355"
        },
        ...
    ],
    "path": {
        "from": "0x55d398326f99059fF775485246999027B3197955",
        "to": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
        "parts": 10,
        "routes": [
            {
                "parts": 10,
                "percentage": 100,
                "subRoutes": [
                    {
                        "from": "0x55d398326f99059fF775485246999027B3197955",
                        "to": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
                        "parts": 20,
                        "dexes": [
                            {
                                "dex": "Nomiswap",
                                "id": "0xfC3a2AEfF7141D6ce7C2AfB2db6a9e676C2E18A7",
                                "parts": 20,
                                "percentage": 100
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
}

JavaScript Demo

const axios = require('axios');
const chain = 'bsc';
const url = `https://open-api.openocean.finance/v4/${chain}/quote`;
const params = {
    inTokenAddress: '0x55d398326f99059ff775485246999027b3197955', // USDT token address
    outTokenAddress: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d',// USDC token address
    amount: 1,   // without decimals
    gasPrice: 3  // without decimals
}
async function main() {
    try {
        const { data } = await axios.get(url, { params })
        if (data?.code === 200) console.log('quote success');

    } catch (error) {
        console.log(data);

    }
}
main();

Python Demo

import requests

chain = 'bsc'
url = f'https://open-api.openocean.finance/v4/{chain}/quote'
params = {
    'inTokenAddress': '0x55d398326f99059ff775485246999027b3197955',
    'outTokenAddress': '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d',
    'amount': 1,
    'gasPrice': 3
}

def main():
    response = requests.get(url, params=params)
    
    if response.status_code == 200:
        data = response.json()
        print(data)
    else:
        print("Error occurred:", response.text)

if __name__ == "__main__":
    main()

Go Demo

package main

import (
	"fmt"
	"net/http"
	"encoding/json"
)

func main() {
	chain := "bsc"
	url := fmt.Sprintf("https://open-api.openocean.finance/v4/%s/quote", chain)
	params := map[string]string{
		"inTokenAddress":  "0x55d398326f99059ff775485246999027b3197955",
		"outTokenAddress": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
		"amount":          "1",
		"gasPrice":        "3",
	}

	resp, err := http.Get(url)
	if err != nil {
		fmt.Println("quote fail")
		return
	}
	defer resp.Body.Close()

	var data map[string]interface{}
	json.NewDecoder(resp.Body).Decode(&data)

	code, ok := data["code"].(float64)
	if !ok {
		fmt.Println("quote fail")
		return
	}

	if code == 200 {
		fmt.Println("quote success")
	} else {
		fmt.Println("quote fail")
	}
}

JAVA Demo

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {
    public static void main(String[] args) {
        String chain = "bsc";
        String url = "https://open-api.openocean.finance/v4/" + chain + "/quote";
        
        Map<String, Object> params = new HashMap<>();
        params.put("inTokenAddress", "0x55d398326f99059ff775485246999027b3197955");
        params.put("outTokenAddress", "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d");
        params.put("amount", 1);
        params.put("gasPrice", 3);
        
        try {
            URL apiUrl = new URL(url);
            HttpURLConnection connection = (HttpURLConnection) apiUrl.openConnection();
            connection.setRequestMethod("GET");
            
            ObjectMapper mapper = new ObjectMapper();
            JsonNode data = mapper.readTree(connection.getInputStream());
            
            if (data.has("code") && data.get("code").asInt() == 200) {
                System.out.println("quote success");
            } else {
                System.out.println("quote fail");
            }
        } catch (IOException e) {
            System.out.println("quote fail");
        }
    }
}

Swap_Quote

  • URL: https://open-api.openocean.finance/v4/:chain/swap

  • Method: get

  • Params:

Example:

  • request:

https://open-api.openocean.finance/v4/bsc/swap?inTokenAddress=0x55d398326f99059ff775485246999027b3197955&outTokenAddress=0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d&amount=5&gasPrice=3&slippage=1&account=0x2FF855378Cd29f120CDF9d675E959cb5422ec5f2
  • response:

{
"code": 200,
"data": {
    "chainId": 56,
    "inToken": {
        "symbol": "USDT",
        "name": "Binance-Peg USD (T)",
        "decimals": 18,
        "address": "0x55d398326f99059ff775485246999027b3197955"
    },
    "outToken": {
        "symbol": "USDC",
        "name": "Binance-Peg USD Coin",
        "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
        "decimals": 18
    },
    "inAmount": "5000000000000000000",
    "outAmount": "4993413181575034654",
    "estimatedGas": "140816",
    "minOutAmount": "4943479049759284308",
    "from": "0x2FF855378Cd29f120CDF9d675E959cb5422ec5f2",
    "to": "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64",
    "value": "0",
    "gasPrice": "3000000000",
    "data": "0x90411a32...000000000",
    "gmxFee": "0"
}
}

Get TokenList

  • URL: https://open-api.openocean.finance/v4/:chain/tokenList

  • Method: get

  • Params:

Example:

  • Request:

https://open-api.openocean.finance/v4/bsc/tokenList
  • Response:

{
"code": 200,
"data": [ {       
    "id":2737,
    "code":"minu",
    "name":"Minu",
    "address":"0xf48f91df403976060cc05dbbf8a0901b09fdefd4",
    "decimals":18,"symbol":"Minu",
    "icon":"https://s3.openocean.finance/token_logos/logos/1708980043911_24176891326005867.jpg",
    "chain":"bsc","createtime":"2024-02-26T20:40:57.000Z",
    "hot":null,"sort":"2024-02-26T20:40:57.000Z",
    "chainId":null,
    "customSymbol":null,
    "customAddress":null,
    "usd":"6.38459e-7"}
    ...
    ]
}

Get GasPrice

  • URL: https://open-api.openocean.finance/v4/:chain/gasPrice

  • Method: get

  • Params:

Example:

  • Request:

https://open-api.openocean.finance/v4/bsc/gasPrice
  • Response:

{
  "code": 200,
  "data": {
"standard": 3000000000,
"fast": 3000000000,
"instant": 3000000000
  }
}

Get Transaction

  • URL: https://open-api.openocean.finance/v4/:chain/getTransaction

  • Method: get

  • Params:

Example:

  • Request:

https://open-api.openocean.finance/v4/bsc/getTransaction?hash=0x756b98a89714be5c640ea9922aba12e0c94bc30e5a17e111d1aa40373cc24782
  • Response:

{
  "code": 200,
  "data":  {
"id": 1194505,
"tx_id": null,
"block_number": 37495567,
"tx_index": 153,
"address": "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64",
"tx_hash": "0x756b98a89714be5c640ea9922aba12e0c94bc30e5a17e111d1aa40373cc24782",
"tx_hash_url": "https://bscscan.com/tx/0x756b98a89714be5c640ea9922aba12e0c94bc30e5a17e111d1aa40373cc24782",
"sender": "0xB3cbefF0336BaA4863Cb51238bD6C35BDAaB3D84",
"receiver": "0xB3cbefF0336BaA4863Cb51238bD6C35BDAaB3D84",
"in_token_address": "0x8ea5219a16c2dbF1d6335A6aa0c6bd45c50347C5",
"in_token_symbol": "OOE",
"out_token_address": "0x55d398326f99059fF775485246999027B3197955",
"out_token_symbol": "USDT",
"referrer": "0x3487Ef9f9B36547e43268B8f0E2349a226c70b53",
"in_amount": "276240675000000000000",
"out_amount": "5913781972337104042",
"fee": "",
"referrer_fee": "",
"usd_valuation": 5.89409756,
"create_at": "2024-04-02T02:23:04.000Z",
"update_at": "2024-04-02T02:23:04.000Z",
"tx_fee": "0.000238858",
"tx_fee_valuation": "0.13744845",
"in_token_decimals": 18,
"out_token_decimals": 18,
"in_amount_value": "276.240675",
"out_amount_value": "5.913781972337104042",
"tx_profit": "0",
"tx_profit_valuation": "0"
  }
}

DecodeInputData

  • URL: https://open-api.openocean.finance/v4/:chain/decodeInputData

  • Method: get

  • Params:

Example:

  • Request:

https://open-api.openocean.finance/v4/bsc/decodeInputData?data={000000xxxxxx}&method=swap
  • response:

  {
  "caller": "0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121",
  "desc": {
"srcToken": "0x8ea5219a16c2dbF1d6335A6aa0c6bd45c50347C5",
"dstToken": "0x55d398326f99059fF775485246999027B3197955",
"srcReceiver": "0xcE07D794FD313a1792E9bdef9912a949DfE99D75",
"dstReceiver": "0xB3cbefF0336BaA4863Cb51238bD6C35BDAaB3D84",
"amount": "276240675000000000000",
"minReturnAmount": "5854644152613733002",
"guaranteedAmount": "5913781972337104042",
"flags": "2",
"referrer": "0x3487Ef9f9B36547e43268B8f0E2349a226c70b53",
"permit": "0x"
  },
  "calls": [
{
  "target": "0",
  "gasLimit": "0",
  "value": "0",
  "data": "0xcac460ee00000000000000003b7c4580ce07d794fd313a1792e9bdef9912a949dfe99d750000000000000000000000008ea5219a16c2dbf1d6335a6aa0c6bd45c50347c50000000000000000000000008e50d726e2ea87a27fa94760d4e65d58c3ad8b44"
},
{
  "target": "0",
  "gasLimit": "0",
  "value": "0",
  "data": "0xcac460ee80000000000000003b8b87c08e50d726e2ea87a27fa94760d4e65d58c3ad8b44000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d5600000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121"
},
{
  "target": "0",
  "gasLimit": "0",
  "value": "0",
  "data": "0x8a6a1e8500000000000000000000000055d398326f99059ff775485246999027b3197955000000000000000000000000353c1f0bc78fbbc245b3c93ef77b1dcc5b77d2a00000000000000000000000000000000000000000000000005211f95f0c4314aa"
},
{
  "target": "0",
  "gasLimit": "0",
  "value": "0",
  "data": "0x9f86542200000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d1660f9900000000000000000000000055d398326f99059ff775485246999027b3197955000000000000000000000000b3cbeff0336baa4863cb51238bd6c35bdaab3d84000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000"
}
  ]
}

Last updated