GET
https://api.cryptohopper.com/v1/backtest
Returns your backtests, newest first, with their template, markets, settings, profit and whether they are completed.
OAuth scope:
read About scopes
Requires an active subscription or trial; otherwise the request is refused with 403. markets is a JSON string.
Example request
curl "https://api.cryptohopper.com/v1/backtest" \
-H "access-token: YOUR_ACCESS_TOKEN"
const response = await fetch('https://api.cryptohopper.com/v1/backtest', {
method: 'GET',
headers: {
"access-token": "YOUR_ACCESS_TOKEN"
}
});
const data = await response.json();
import requests
response = requests.get(
"https://api.cryptohopper.com/v1/backtest",
headers={
"access-token": "YOUR_ACCESS_TOKEN"
},
)
data = response.json()
$ch = curl_init('https://api.cryptohopper.com/v1/backtest');
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. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit |
string | Optional | Maximum number of backtests, default 100, maximum 500. |
Response
{
"data": [
{
"id": "45120",
"template_type": "market",
"template_id": "8812",
"exchange": "binance",
"quote_currency": "USDT",
"markets": "[\"BTCUSDT\",\"ETHUSDT\"]",
"profit": "4.25",
"history_total_assets": [
[
1754006400,
1000
],
[
1754017200,
1003.2
]
],
"created": "2026-09-01 10:00:00",
"updated": "2026-09-01 10:45:00",
"total_loops": "120",
"completed": "1",
"start_date": "2026-08-01 00:00:00",
"end_date": "2026-08-31 00:00:00",
"backtest_settings": {
"start_amount": 1000,
"subscription_id": 3,
"start_date": "2026-08-01 00:00:00",
"end_date": "2026-08-31 00:00:00"
}
}
]
}