GET
https://api.cryptohopper.com/v1/hopper/{id}/signal/last
Returns the log output of the last signal the hopper handled, as plain text.
OAuth scope:
read About scopes
Returns the text "No signals matching your config received yet." when the hopper has not handled a signal. Not available for arbitrage, market maker, copy trading, grid and AI bots.
Example request
curl "https://api.cryptohopper.com/v1/hopper/HOPPER_ID/signal/last" \
-H "access-token: YOUR_ACCESS_TOKEN"
const response = await fetch('https://api.cryptohopper.com/v1/hopper/HOPPER_ID/signal/last', {
method: 'GET',
headers: {
"access-token": "YOUR_ACCESS_TOKEN"
}
});
const data = await response.json();
import requests
response = requests.get(
"https://api.cryptohopper.com/v1/hopper/HOPPER_ID/signal/last",
headers={
"access-token": "YOUR_ACCESS_TOKEN"
},
)
data = response.json()
$ch = curl_init('https://api.cryptohopper.com/v1/hopper/HOPPER_ID/signal/last');
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. |
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | Required | Hopper ID. |
Response
{
"data": "2026-09-25 10:15:02 UTC - INFO - Received SELL signal from: Example Signals for coin: BTC, rate: 65000\n2026-09-25 10:15:02 UTC - INFO - Sell signal is already handled/received. Stopping here.\n"
}