API Documentation
The club has an API that allows the upload of QSOs from a member's logbook. The API has a single endpoint for QSO upload, and authentication is via a header X-API-Key that must be sent with the request, containing the member's API key generated via the profile page.
POST https://qo100dx.club/api/qso
This endpoint accepts either application/json
or text/plain
data.
In the examples bellow, the fields in bold are mandatory, and the same rules apply to regular file upload. All the field names comply with the ADIF specification.
JSON
For application/json
the request must be formed as a JSON object with properties
corresponding to the
required ADIF fields.
Example:
{ "QSO_DATE": "20210405", "TIME_ON": "104258", "STATION_CALLSIGN": "AB1CDE", "CALL": "FG2HIJ", "MODE": "SSB", "BAND": "13cm", "SAT_NAME": "QO-100", "PROP_MODE": "SAT", "GRIDSQUARE": "IM58", "VUCC_GRIDS": "IM58,IM59", "MY_GRIDSQUARE": "IM58", "MY_VUCC_GRIDS": "IM58,IM59" }
Plain Text
For text/plain
the request is in text format and must conform to the ADI format as described
in the ADIF specification.
Example:
<QSO_DATE:8>20210405 <TIME_ON:6>104258 <STATION_CALLSIGN:6>AB1CDE <CALL:6>FG2HIJ <MODE:3>SSB <BAND:4>13cm <SAT_NAME:6>QO-100 <PROP_MODE:3>SAT <GRIDSQUARE:4>IM58 <VUCC_GRIDS:9>IM58,IM59 <MY_GRIDSQUARE:4>IM58 <MY_VUCC_GRIDS:9>IM58,IM59 <EOR>
Response
In case of success the server returns a 200
HTTP status code and an empty response.
In case of error the appropriate HTTP status code is returned, in some cases with an error message. If the
request had the application/json
content type, the response will be a JSON structure with a
single property with the error messages, example:
{ 'errors' => [ "Can't decode JSON data" ] }
The possible returned codes are:
Code | Explanation |
---|---|
405 Method Not Allowed | The API only supports POST requests and it has received some other verb. |
406 Not Acceptable | Content type must be either application/json or text/plain . |
401 Unauthorized | Either the API key wasn't supplied in the X-API-Header or is not valid.
Reasons for not being valid include invalid or deleted key, or user not found.
|
400 Bad Request | More information is supplied in the response, reasons include a malformed JSON/ADI record, mandatory fields missing, etc. |