# Get signal

`GET https://api.cryptohopper.com/v1/market/signals/{signal_id}`

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

Returns a signal provider from the marketplace with its reviews, rating, subscriber count and buy and sell results of the past week.

Private signals and signals that do not accept subscribers return a 400 error. performance holds one row per day with buy signals (up to 30 days, newest first): signal_time is a unix time in seconds, result_sum the summed result and result_sum_perct the average result per signal, in percent. signal_details covers the past 7 days.

## Headers

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

## Path parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `signal_id` | string | yes | Signal provider ID. |

## Example request

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

## Response

Example response (illustrative values):

```json
{
    "data": {
        "id": "42",
        "performance": [
            {
                "signal_time": "1758672000",
                "result_sum": "8.40",
                "result_sum_perct": "1.200000"
            }
        ],
        "name": "Alpha Signals",
        "description": "Momentum signals on major USDT pairs.",
        "logo": "https://cdn.cryptohopper.com/images/signals/42.png",
        "type": "signal",
        "reviews": {
            "status": 1,
            "data": [
                {
                    "id": "5501",
                    "user_id": "123456",
                    "reply_to": "0",
                    "review_name": "Steady results",
                    "review": "Running it on Binance for two months without issues.",
                    "rating": "4.0",
                    "created": "2026-08-14 10:22:31",
                    "replies": [
                        {
                            "id": "5507",
                            "user_id": "654321",
                            "reply_to": "5501",
                            "review_name": "Thanks",
                            "review": "Thanks for the feedback!",
                            "rating": "0.1",
                            "created": "2026-08-15 08:03:12"
                        }
                    ]
                }
            ],
            "total": 1
        },
        "feature_image": "https://cdn.cryptohopper.com/images/signals/42_feature.png",
        "subscription_fee_currency": "USD",
        "subscription_fee": "29.00",
        "exchanges": "binance,kucoin",
        "performance_pct": "12.50",
        "signal_details": {
            "Average profit buy signals": "1.25 %",
            "Total buy signals": "42",
            "Average profit sell signals": "0.80 %",
            "Total sell signals": "38"
        },
        "price": "29.00",
        "price_id": "12",
        "plan_id": "55",
        "seller_id": "321",
        "seller_name": "Example Trading",
        "seller_logo": "https://cdn.cryptohopper.com/images/marketplace/sellers/321.png",
        "risk_level": "medium",
        "is_refundable": 0,
        "link": "https://www.cryptohopper.com/signaller?signaller_id=42",
        "available_in_app": "1",
        "total_reviews": "8",
        "total_subs": "37",
        "rating_total_votes": "8",
        "rating_value": 4.25
    }
}
```

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