# Retrieve hopper

`GET https://api.cryptohopper.com/v1/hopper/{id}`

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

Returns one hopper with its subscription, status, exchange, base currency, open position count and start balance.

OAuth scope: `read`

last_loaded_config is a boolean that tells whether the hopper has a loaded config name, not the name itself.

## Headers

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

## Path parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `id` | string | yes | Hopper ID. |

## Example request

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

## Response

Example response (illustrative values):

```json
{
    "data": {
        "hopper": {
            "id": "123456",
            "name": "My BTC bot",
            "hopper_id": "123456",
            "subscription_id": "456789",
            "plan_id": "2",
            "payment_term": "month",
            "payment_method_id": "1",
            "start_time": "2026-09-01 10:00:00",
            "end_time": "2026-10-01 10:00:00",
            "subscription_status": "Active",
            "auto_renewal": "Yes",
            "subscription": "Adventure",
            "plan_name": "Adventure",
            "plan_description": "Adventure plan",
            "product_id": "None",
            "open_positions_count": "3",
            "bot_type": "0",
            "last_loaded_config": true,
            "exchange": "binance",
            "image": "https://cdn.cryptohopper.com/images/hoppers/binance-usdt.jpg",
            "base_currency": "USDT",
            "buying_enabled": 1,
            "selling_enabled": 1,
            "enabled": 1,
            "set_default": "1",
            "error_message": null,
            "last_signal": "",
            "allowed_coins": [
                "BTC",
                "ETH"
            ],
            "last_signal_encoding": "ASCII",
            "config_error": "0",
            "created": "2025-03-14 09:21:07",
            "total_cur": "1523.45000000",
            "user_id": "654321",
            "paper_trading": 0,
            "copy_manager": 0,
            "start_balance": "1000.00000000"
        }
    }
}
```

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