# Get signals in hopper

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

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

Returns the active signallers the hopper is subscribed to, with the subscription config of each.

OAuth scope: `read`

name and description are HTML-escaped. The values in config are strings; config is null when the subscription has no config. Not available for arbitrage, market maker, copy trading and AI bots.

## 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/signal" \
  -H "access-token: YOUR_ACCESS_TOKEN"
```

## Response

Example response (illustrative values):

```json
{
    "data": {
        "signals": [
            {
                "signal_id": "1234",
                "plan_id": "0",
                "name": "Example Signals",
                "description": "Spot signals for the major USDT markets.",
                "logo": "https://cdn.example.com/signallers/logo_1234.png",
                "type": "signal",
                "feature_image": "https://cdn.example.com/signallers/feature_1234.png",
                "subscription_fee_currency": "USD",
                "subscription_fee": "19.99",
                "exchanges": "binance,kucoin",
                "performance_pct": "12.40",
                "rating": "4.5000",
                "total_votes": "18",
                "link": "https://www.cryptohopper.com/signaller?signaller_id=1234",
                "config": {
                    "market_order": "1",
                    "buy_amount": "50",
                    "follow_sell_signals": "1"
                }
            }
        ]
    }
}
```

| Field | Type | Description |
|---|---|---|
| `search_opts` | array of object |  |
| &nbsp;&nbsp;`date_from` | string |  |
| &nbsp;&nbsp;`date_to` | string |  |
| &nbsp;&nbsp;`entry_type` | string | One of: error, info. |
| &nbsp;&nbsp;`sort_field` | string | One of: entry_date, entry_type. |
| &nbsp;&nbsp;`sort_order` | string | One of: asc, desc. |
| &nbsp;&nbsp;`page` | integer |  |
| &nbsp;&nbsp;`perPage` | integer |  |

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.
