# List backtests

`GET https://api.cryptohopper.com/v1/backtest`

Part of [Backtesting](https://www.cryptohopper.com/api-documentation/api-reference/backtesting.md) in the Cryptohopper API reference.

Returns your backtests, newest first, with their template, markets, settings, profit and whether they are completed.

OAuth scope: `read`

Requires an active subscription or trial; otherwise the request is refused with 403. markets is a JSON string.

## Headers

| Name | Type | Required | Description |
|---|---|---|---|
| `access-token` | string | yes | The OAuth access token of the user. |

## Query parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `limit` | string | no | Maximum number of backtests, default 100, maximum 500. |

## Example request

```bash
curl "https://api.cryptohopper.com/v1/backtest" \
  -H "access-token: YOUR_ACCESS_TOKEN"
```

## Response

Example response (illustrative values):

```json
{
    "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"
            }
        }
    ]
}
```

Status codes: 200. Errors return JSON with `status`, `error` and `message`, plus a numeric `code` when the error comes from the API itself rather than the gateway.
