Get available chains
curl --request GET \
--url https://api-partner.houdiniswap.com/v2/chains \
--header 'Authorization: <api-key>'import requests
url = "https://api-partner.houdiniswap.com/v2/chains"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api-partner.houdiniswap.com/v2/chains', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-partner.houdiniswap.com/v2/chains",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-partner.houdiniswap.com/v2/chains"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-partner.houdiniswap.com/v2/chains")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-partner.houdiniswap.com/v2/chains")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"chains": [
{
"id": "507f1f77bcf86cd799439011",
"name": "Bitcoin",
"shortName": "bitcoin",
"explorerUrl": "https://blockchair.com/bitcoin/transaction/{txHash}",
"addressUrl": "https://blockchair.com/bitcoin/address/{address}",
"kind": "bitcoin",
"addressValidation": "^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,59}$",
"tokenAddressValidation": "^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,59}$",
"memoNeeded": false,
"icon": "https://api.houdiniswap.com/assets/networks/BTC.png",
"priority": 2,
"chainId": 1
}
],
"total": 123,
"totalPages": 123
}{
"message": "<string>",
"code": "<string>",
"fields": {},
"requestId": "<string>"
}{
"message": "<string>",
"code": "<string>",
"requestId": "<string>"
}Chains
Get available chains
Get the list of available enabled blockchain networks/chains for both CEX and DEX swaps.
Use the shortName field as the chain parameter in endpoints.
GET
/
chains
Get available chains
curl --request GET \
--url https://api-partner.houdiniswap.com/v2/chains \
--header 'Authorization: <api-key>'import requests
url = "https://api-partner.houdiniswap.com/v2/chains"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api-partner.houdiniswap.com/v2/chains', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-partner.houdiniswap.com/v2/chains",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-partner.houdiniswap.com/v2/chains"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-partner.houdiniswap.com/v2/chains")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-partner.houdiniswap.com/v2/chains")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"chains": [
{
"id": "507f1f77bcf86cd799439011",
"name": "Bitcoin",
"shortName": "bitcoin",
"explorerUrl": "https://blockchair.com/bitcoin/transaction/{txHash}",
"addressUrl": "https://blockchair.com/bitcoin/address/{address}",
"kind": "bitcoin",
"addressValidation": "^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,59}$",
"tokenAddressValidation": "^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,59}$",
"memoNeeded": false,
"icon": "https://api.houdiniswap.com/assets/networks/BTC.png",
"priority": 2,
"chainId": 1
}
],
"total": 123,
"totalPages": 123
}{
"message": "<string>",
"code": "<string>",
"fields": {},
"requestId": "<string>"
}{
"message": "<string>",
"code": "<string>",
"requestId": "<string>"
}Authorizations
Query Parameters
Filter chains that support CEX swaps
Filter chains that support DEX swaps
Filter by chain kind, exact match against the kind field returned by this endpoint (e.g., "evm", "sol", "bitcoin", "xmr", "ltc"). Call this endpoint without filters to discover available kinds. Each value must be 16 characters or less.
Maximum array length:
10Chain kind filter value (exact match against the kind field).
Maximum string length:
16Filter by chain name (case-insensitive search in name, shortName)
Maximum string length:
50Page number
Required range:
1 <= x <= 10000Page size
Required range:
1 <= x <= 100Filter by numeric EVM chain ID (e.g. 1 for Ethereum, 42161 for Arbitrum)
Required range:
x >= 1Filter chains by whether they require a destination memo/tag