Intégrez vos logiciels radioamateurs avec le carnet de trafic hambook.site
Pour travailler avec l'API, vous avez besoin d'une clé API personnelle (API Key). Toutes les requêtes API doivent être exécutées dans le contexte d'un utilisateur spécifique.
La transmission des données QSO se fait via une requête POST standard. La clé d'autorisation doit être transmise dans l'en-tête HTTP ou comme paramètre 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] |
Les données doivent être soumises au format application/x-www-form-urlencoded (requête POST classique).
| Parameter | Type | Required | Description / Example |
|---|---|---|---|
call |
string |
YES | Indicatif du correspondant (sera automatiquement converti en majuscules). Example: W1AW, R3TJL/3 |
my_call |
string |
No | Votre indicatif (station). Si vide, l'indicatif principal de l'utilisateur sera utilisé automatiquement. Example: R8LCA |
band |
string |
No | Bande de fréquence au format ADIF (sera automatiquement convertie en majuscules). Example: 20m, 40m, 2m |
mode |
string |
No | Type de modulation (mode) au format ADIF. Example: CW, SSB, FT8 |
submode |
string |
No | Sous-mode de modulation (pour FT4, PSK31, etc.). Example: FT4 |
freq |
float |
No | Fréquence exacte du QSO en MHz. Example: 14.074 |
qso_date |
string |
No | Date du QSO au format AAAAMMJJ. Si vide, la date actuelle sera utilisée. Example: 20260623 (YYYYMMDD) |
time_on |
string |
No | Heure de début du QSO au format HHMM (en UTC). Si vide, l'heure actuelle sera utilisée. Example: 1753 (HHMM, UTC) |
rst_sent |
string |
No | Rapport RST envoyé. Example: 599, -12 (Default: 59) |
rst_rcvd |
string |
No | Rapport RST reçu. Example: 59, -08 (Default: 59) |
gridsquare |
string |
No | Localisateur d'antenne (Grid) du correspondant. Example: FN31, LO06ff |
my_gridsquare |
string |
No | Votre localisateur d'antenne (Grid) pendant le QSO. Example: LO06ee |
qth |
string |
No | Ville/localisation du correspondant. Example: Nizhny Novgorod |
name |
string |
No | Nom du correspondant. Example: John |
comment |
string |
No | Commentaire personnalisé pour le QSO. Example: QRP 5W, dipole |
L'API hambook.site renvoie toujours une réponse au format JSON avec un statut HTTP 200, même en cas d'erreurs.
{
"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)