| For Developers
api.dxqso.net · v1.4.0

The Ham Radio Logbook Sync API

Give your ham radio application a cloud logbook backend in hours, not months. The DxQSO Ham Logbook Sync™ API lets any logging app upload QSOs in real time, download complete logbooks in JSON or ADIF, and sync incrementally — all through a simple REST API hosted on AWS API Gateway.

REST / JSON
Protocol
api.dxqso.net
Base URL
2,000 QSOs
Per batch upload
AWS Gateway
Infrastructure
Bearer Token
Authentication
What you can build

A cloud logbook backend
for your application

The DxQSO API handles the infrastructure — cloud storage, deduplication, LoTW® and QRZ sync, achievement tracking, and mobile access — so you can focus on building a great logging experience.

☁️

Instant Cloud Logbook

Add a cloud logbook repository to your application without building any backend infrastructure. DxQSO stores, deduplicates, and indexes every QSO you upload on behalf of your users.

Real-Time QSO Upload

Push QSOs to the cloud the moment they are logged. The POST /upload endpoint accepts up to 2,000 QSOs per request in JSON format or raw ADIF — whichever your application already produces.

🔄

Incremental Sync

The GET /logbook/download endpoint supports a Modified Since filter so your app can pull only QSOs changed since the last sync — keeping bandwidth and processing overhead minimal.

📄

JSON & ADIF Output

Download logbooks in JSON for in-app display or ADIF for file export. Full ADIF field support means every field your users have logged is preserved and retrievable.

📃

Pagination Built In

Large logbooks are paginated automatically using the X-Next-Token response header. Pass it back in the next request to retrieve the following page — no offset math, no missed records.

🔍

Filtering & Querying

Filter downloads by date range, band, and mode. Your application can surface relevant QSOs without pulling an entire logbook — reducing latency and payload size.

🔔

LoTW® & QRZ Sync Included

Every QSO uploaded through your application is automatically synced with LoTW® and QRZ Logbook according to the user's DxQSO preferences. QSL confirmations flow back without any additional work from your app.

🏆

Achievement Alerts for Your Users

QSOs uploaded through your application contribute to each user's DXCC, WAS, and grid tracking. When a new milestone is confirmed, DxQSO notifies the user — no extra work required from your application.

🔒

Simple Two-Token Auth

Authentication uses two Bearer tokens: a long-lived vendor token that identifies your application, and a per-user station token that the user generates from their DxQSO account. Simple, secure, and stateless.

API at a Glance

Endpoint
Method
Description
/upload
POST
Upload QSOs — up to 2,000 per request in JSON or ADIF format
/logbook/download
GET
Download logbook in JSON or ADIF with optional date, band, and mode filters
/logbook/download
GET
Incremental sync — pass qso_since to fetch only records modified after a timestamp
/logbook/station/station_info/
GET
Fetch authenticated user's station details and callsign information

All requests require: Authorization: Bearer <vendor_token> · dxqso-station-token: Bearer <station_token>

Get started in minutes

Code examples available in Python, C#/.NET, C++, Swift, and cURL in the API Demo.

Upload a QSO · cURL
# Upload a single QSO
curl -X POST https://api.dxqso.net/upload \
     -H "Authorization: Bearer $VENDOR_TOKEN" \
     -H "dxqso-station-token: Bearer $STATION_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"qsos":[{"call":"VK2ABC","band":"40m","mode":"FT8","qso_date":"20240802","time_on":"015115"}]}'
# → returns each record's stable qso_id:
#   {"inserted":1,"updated":0,"rejected":0,"results":[{"action":"inserted","qso_id":"898193a7-…"}]}
#   Store qso_id to reference (or later update) the record.

# Upload an ADIF file (up to 2000 QSOs)
curl -X POST https://api.dxqso.net/upload \
     -H "Authorization: Bearer $VENDOR_TOKEN" \
     -H "dxqso-station-token: Bearer $STATION_TOKEN" \
     -H "Content-Type: text/plain" \
     --data-binary @my_log.adi

# Incremental sync — fetch only QSOs changed since a date
curl "https://api.dxqso.net/logbook/download?format=json&qso_since=2025-01-01T00:00:00" \
     -H "Authorization: Bearer $VENDOR_TOKEN" \
     -H "dxqso-station-token: Bearer $STATION_TOKEN"

How to get started

1

Request a Vendor Token

Email support@dxqso.net to request a vendor token for your application. Vendor tokens are long-lived and identify your app in every API call.

2

Try the Demo

Use the interactive API demo to test upload and download operations against a live DxQSO account before writing any code.

3

Read the API Docs

The API documentation covers every endpoint, authentication model, request/response formats, and pagination in detail.

4

Integrate & Ship

Code examples are provided in Python, C#/.NET, C++, Swift, and cURL. Most integrations are live within a day. Contact us if you need help with your specific platform.

Built for ham radio application developers

📱
Mobile Logging Apps

Give iOS and Android logging apps a cloud backend so users can access their logs on any device without managing ADIF files.

💻
Desktop Logbook Apps

Add real-time cloud sync to Windows and Mac logging apps. Users get automatic backup and access from other devices.

🏁
Contest Logging Software

Upload contest QSOs to users' DxQSO repositories so contest contacts contribute to their lifetime DXCC and award progress automatically.

🌲
POTA & SOTA Apps

Let field activators upload QSOs in real time from the park or summit directly to their cloud logbook, with automatic LoTW® and QRZ forwarding.

📶
Digital Mode Apps

FT8, FT4, WSPR, and other digital mode tools can upload contacts to DxQSO in real time so users get achievement alerts and QSL tracking.

📡
SDR & Remote Station Software

Remote and SDR-based operating platforms can send QSOs to DxQSO as they are made, keeping remote logs in sync with the user's central repository.

Ready to integrate?

Request a vendor token, explore the demo, and start building. Most integrations are live in a day.