curl --request GET \
--url https://api-partner.houdiniswap.com/v2/swaps \
--header 'Authorization: <api-key>'import requests
url = "https://api-partner.houdiniswap.com/v2/swaps"
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/swaps', 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/swaps",
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/swaps"
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/swaps")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-partner.houdiniswap.com/v2/swaps")
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[
{
"id": "6421c1bb38a32da00696b9bc",
"name": "ChangeNow",
"shortName": "cn",
"txUrl": "https://changenow.io/exchange/txs/",
"enabled": true,
"isDex": false,
"deprecated": false,
"markupSupported": false,
"slippageSupported": false,
"logoUrl": "https://api.houdiniswap.com/assets/logos/changenow.png"
},
{
"id": "661fbcfbe0197bc93edf8d59",
"name": "Changelly",
"shortName": "cl",
"txUrl": "https://changelly.com/transaction/",
"enabled": true,
"isDex": false,
"deprecated": false,
"markupSupported": false,
"slippageSupported": false,
"logoUrl": "https://api.houdiniswap.com/assets/logos/changelly.jpg"
},
{
"id": "67d93eb4fef3c27b53393519",
"name": "Uniswap",
"shortName": "un",
"txUrl": "https://etherscan.io/tx/",
"enabled": true,
"isDex": true,
"deprecated": false,
"markupSupported": false,
"slippageSupported": true,
"logoUrl": "https://api.houdiniswap.com/assets/logos/uniswap-uo9q0r.png"
}
]{
"message": "<string>",
"code": "<string>",
"requestId": "<string>"
}{}{
"message": "<string>",
"code": "<string>",
"fields": {},
"requestId": "<string>"
}{
"message": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"message": "<string>",
"code": "<string>",
"requestId": "<string>"
}Get swap providers
Returns the list of available swap providers, for both CEX and DEX swaps. Filter with isDex.
curl --request GET \
--url https://api-partner.houdiniswap.com/v2/swaps \
--header 'Authorization: <api-key>'import requests
url = "https://api-partner.houdiniswap.com/v2/swaps"
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/swaps', 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/swaps",
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/swaps"
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/swaps")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-partner.houdiniswap.com/v2/swaps")
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[
{
"id": "6421c1bb38a32da00696b9bc",
"name": "ChangeNow",
"shortName": "cn",
"txUrl": "https://changenow.io/exchange/txs/",
"enabled": true,
"isDex": false,
"deprecated": false,
"markupSupported": false,
"slippageSupported": false,
"logoUrl": "https://api.houdiniswap.com/assets/logos/changenow.png"
},
{
"id": "661fbcfbe0197bc93edf8d59",
"name": "Changelly",
"shortName": "cl",
"txUrl": "https://changelly.com/transaction/",
"enabled": true,
"isDex": false,
"deprecated": false,
"markupSupported": false,
"slippageSupported": false,
"logoUrl": "https://api.houdiniswap.com/assets/logos/changelly.jpg"
},
{
"id": "67d93eb4fef3c27b53393519",
"name": "Uniswap",
"shortName": "un",
"txUrl": "https://etherscan.io/tx/",
"enabled": true,
"isDex": true,
"deprecated": false,
"markupSupported": false,
"slippageSupported": true,
"logoUrl": "https://api.houdiniswap.com/assets/logos/uniswap-uo9q0r.png"
}
]{
"message": "<string>",
"code": "<string>",
"requestId": "<string>"
}{}{
"message": "<string>",
"code": "<string>",
"fields": {},
"requestId": "<string>"
}{
"message": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"message": "<string>",
"code": "<string>",
"requestId": "<string>"
}Authorizations
Send Authorization: <ApiKey>:<ApiSecret> — joined by a colon, raw. No Bearer prefix, no base64.
Query Parameters
Filter providers by type: true for DEX (onchain) providers, false for CEX providers
Filter providers by whether they support partner markup
Filter providers by whether they support slippage configuration. DEX providers only — CEX providers never do, so true returns DEX providers alone.
Response
Success
Internal id of the provider record. Use shortName to refer to a provider.
Display name, e.g. Changelly.
Short code identifying the provider, e.g. cl. This is the value returned as swap on a quote, and the one to pass in swaps, inLegIncludedSwaps and the other provider filters.
False when the provider is temporarily not routing swaps.
Prefix for viewing a transaction with this provider — append the transaction hash to it.
True for DEX providers, false for CEX providers.
True when the provider is being retired and should not be relied on.
True when the provider can apply partner markup.
DEX providers only. True when the provider honours the slippage parameter.
DEX providers only. True when the provider can pick the slippage for you when you omit slippage.
Provider logo, ready to show in your UI.