Інтеграція вашого радіоаматорського софту з апаратним журналом hambook.site
Для роботи з API вам необхідний персональний ключ API Key. Усі запити до API повинні виконуватися в контексті конкретного користувача сайту.
Передача даних QSO виконується стандартним POST-запитом. Ключ авторизації повинен передаватися в HTTP-заголовку або у вигляді GET-параметра.
| Method | POST |
| Endpoint URL | https://hambook.site/api/v1/qso/ |
| Auth Header | X-Hambook-Key: [your_api_key] |
| Alternative GET Auth | https://hambook.site/api/v1/qso/?key=[your_api_key] |
Дані повинні передаватися у форматі application/x-www-form-urlencoded (звичайний POST-запит з форми).
| Parameter | Type | Required | Description / Example |
|---|---|---|---|
call |
string |
YES | Позивний кореспондента (буде автоматично переведений у верхній регістр). Example: W1AW, R3TJL/3 |
my_call |
string |
No | Ваш позивний (станція). Якщо порожній — автоматично підставиться основний позивний користувача з профілю. Example: R8LCA |
band |
string |
No | Діапазон зв'язку в ADIF-форматі (буде автоматично переведений у верхній регістр). Example: 20m, 40m, 2m |
mode |
string |
No | Вид модуляції (вид роботи) в ADIF-форматі. Example: CW, SSB, FT8 |
submode |
string |
No | Підвид модуляції (для FT4, PSK31 та ін.). Example: FT4 |
freq |
float |
No | Точна частота зв'язку в МГц. Example: 14.074 |
qso_date |
string |
No | Дата проведення зв'язку у форматі РРРРММДД. Якщо порожня — підставиться поточна дата. Example: 20260623 (YYYYMMDD) |
time_on |
string |
No | Час початку зв'язку у форматі ГГХХ (за UTC). Якщо порожній — підставиться поточний час. Example: 1753 (HHMM, UTC) |
rst_sent |
string |
No | Переданий RST (рапорт). Example: 599, -12 (Default: 59) |
rst_rcvd |
string |
No | Отриманий RST (рапорт). Example: 59, -08 (Default: 59) |
gridsquare |
string |
No | QTH-локатор кореспондента. Example: FN31, LO06ff |
my_gridsquare |
string |
No | Ваш QTH-локатор під час зв'язку. Example: LO06ee |
qth |
string |
No | Місто/місцезнаходження кореспондента. Example: Nizhny Novgorod |
name |
string |
No | Ім'я кореспондента. Example: John |
comment |
string |
No | Довільний коментар до QSO. Example: QRP 5W, dipole |
API hambook.site завжди повертає відповідь у форматі JSON з HTTP-статусом 200, навіть у разі помилок.
{
"status": "success",
"id": 471295
}
{
"status": "success",
"message": "Duplicate ignored",
"id": 471294
}
{
"status": "error",
"message": "Invalid API Key"
}
<?php
$ch = curl_init('https://hambook.site/api/v1/qso/');
$data = [
'call' => 'W1AW',
'band' => '20m',
'mode' => 'CW',
'rst_sent' => '599',
'rst_rcvd' => '599',
'comment' => 'Logged via API'
];
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-Hambook-Key: YOUR_API_KEY_HERE'
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
print_r($result);
?>
import requests
url = 'https://hambook.site/api/v1/qso/'
headers = {
'X-Hambook-Key': 'YOUR_API_KEY_HERE'
}
data = {
'call': 'W1AW',
'band': '20m',
'mode': 'CW',
'rst_sent': '599',
'rst_rcvd': '599',
'comment': 'Logged via Python API'
}
response = requests.post(url, headers=headers, data=data)
result = response.json()
print(result)