GET
https://api.cryptohopper.com/v1/hopper/{id}/output
Returns the output log of the hopper for a period, newest first by default.
OAuth scope:
read About scopes
log_type is info, warning or error and log_time is a Unix timestamp in seconds. offset and count only apply to log lines from before 22 December 2018; for newer lines narrow dateFrom and dateTo instead. The request body in the model is not read; use the query parameters.
Example request
curl "https://api.cryptohopper.com/v1/hopper/HOPPER_ID/output" \
-H "access-token: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"search_opts":[{"date_from":"string","date_to":"string","entry_type":"error","sort_field":"entry_date","sort_order":"asc","page":0,"perPage":0}]}'
const response = await fetch('https://api.cryptohopper.com/v1/hopper/HOPPER_ID/output', {
method: 'GET',
headers: {
"access-token": "YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"search_opts": [
{
"date_from": "string",
"date_to": "string",
"entry_type": "error",
"sort_field": "entry_date",
"sort_order": "asc",
"page": 0,
"perPage": 0
}
]
})
});
const data = await response.json();
import requests
response = requests.get(
"https://api.cryptohopper.com/v1/hopper/HOPPER_ID/output",
headers={
"access-token": "YOUR_ACCESS_TOKEN"
},
json={
"search_opts": [
{
"date_from": "string",
"date_to": "string",
"entry_type": "error",
"sort_field": "entry_date",
"sort_order": "asc",
"page": 0,
"perPage": 0
}
]
},
)
data = response.json()
$ch = curl_init('https://api.cryptohopper.com/v1/hopper/HOPPER_ID/output');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'access-token: YOUR_ACCESS_TOKEN',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'search_opts' => [
[
'date_from' => 'string',
'date_to' => 'string',
'entry_type' => 'error',
'sort_field' => 'entry_date',
'sort_order' => 'asc',
'page' => 0,
'perPage' => 0,
],
],
]),
]);
$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. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
sortOrder |
string | Optional | ASC or DESC. Default DESC. |
count |
string | Optional | Maximum number of log lines, 1 to 500. Default 500. |
offset |
string | Optional | Number of log lines to skip. Default 0. |
dateTo |
string | Optional | End of the period as a date and time, e.g. 2026-09-25 10:00:00. Default now. |
dateFrom |
string | Optional | Start of the period as a date and time, e.g. 2026-09-25 08:00:00. Default two hours ago. |
entryType |
string | Optional | info returns all lines, error returns only errors. Default info. |
sortBy |
string | Optional | entry_date or entry_type. Default entry_date. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
search_opts | array of object | Optional | |
date_from | string | Optional | |
date_to | string | Optional | |
entry_type | string | Optional | One of: error, info. |
sort_field | string | Optional | One of: entry_date, entry_type. |
sort_order | string | Optional | One of: asc, desc. |
page | integer | Optional | |
perPage | integer | Optional |
Response
{
"data": [
{
"log_type": "info",
"log_output": "Checking open positions.",
"log_time": 1758794100.512
},
{
"log_type": "warning",
"log_output": "Not enough balance to buy ETH.",
"log_time": 1758794040.103
}
]
}