GET
https://api.cryptohopper.com/v1/hopper/{id}/arbitrage/exchange/history/{start}/{limit}
Returns the finished exchange arbitrages (completed, cancelled or failed) of an arbitrage bot, most recently completed first, one page at a time.
OAuth scope:
read About scopes
Example request
curl "https://api.cryptohopper.com/v1/hopper/HOPPER_ID/arbitrage/exchange/history/START/LIMIT" \
-H "access-token: YOUR_ACCESS_TOKEN"
const response = await fetch('https://api.cryptohopper.com/v1/hopper/HOPPER_ID/arbitrage/exchange/history/START/LIMIT', {
method: 'GET',
headers: {
"access-token": "YOUR_ACCESS_TOKEN"
}
});
const data = await response.json();
import requests
response = requests.get(
"https://api.cryptohopper.com/v1/hopper/HOPPER_ID/arbitrage/exchange/history/START/LIMIT",
headers={
"access-token": "YOUR_ACCESS_TOKEN"
},
)
data = response.json()
$ch = curl_init('https://api.cryptohopper.com/v1/hopper/HOPPER_ID/arbitrage/exchange/history/START/LIMIT');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'access-token: YOUR_ACCESS_TOKEN',
],
]);
$data = json_decode(curl_exec($ch), true);
Parameters
Headers
| Name | Type | Required | Description |
|---|---|---|---|
access-token |
string | Required | The OAuth access token of the user. |
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit |
string | Required | Maximum number of arbitrages to return, at most 500. |
start |
string | Required | Number of arbitrages to skip (offset), 0 for the first page. |
id |
string | Required | Hopper ID of an arbitrage bot. |
Response
{
"data": [
{
"id": "2396990",
"base_currency": "USDT",
"currency": "ETH",
"buy_exchange": "binance",
"buy_pair": "ETHUSDT",
"buy_order_id": "55120001",
"buy_trade_id": "88100001",
"buy_order_type": "limit",
"buy_amount": "0.05",
"buy_amount_filled": "0.05",
"buy_rate": "2480.1",
"buy_cost": "124.005",
"buy_fee": "0.124",
"sell_exchange": "kraken",
"sell_pair": "ETH/USDT",
"sell_order_id": "55120002",
"sell_trade_id": "88100002",
"sell_order_type": "limit",
"sell_amount": "0.05",
"sell_amount_filled": "0.05",
"sell_rate": "2493.2",
"sell_cost": "124.66",
"sell_fee": "0.324",
"found_date": "2026-09-24 18:00:00",
"completed_date": "2026-09-24 18:02:10",
"order_trigger": "exchange-arbitrage",
"arbitrage_values": {
"cur": "ETH",
"base_cur": "USDT",
"percentage": "0.53",
"lowest": {
"ex_key": "binance",
"rate": "2480.10000000",
"pair": "ETHUSDT",
"base_cur": "USDT",
"cur": "ETH"
},
"highest": {
"ex_key": "kraken",
"rate": "2493.20000000",
"pair": "ETH/USDT",
"base_cur": "USDT",
"cur": "ETH"
}
},
"market_order": "0",
"result_message": null,
"profit": "0.21",
"completed": "1",
"cancelled": "0",
"failed": "0",
"reversed": "0"
}
]
}