CSV Flight log verification API
Access & limitsPublic, no key needed · Upload & verify▾
Open to everyone. A free API key from your profile raises the limits: send it in an X-API-Key header, or as api_key= in the address.
| 5 minutes | Hour | Day | |
|---|---|---|---|
| Without a key | 60 | 600 | 5,000 |
| With a key | 1,000 | 10,000 | 50,000 |
Log in to create a free key on your profile page.
Every answer carries X-RateLimit-Remaining and X-RateLimit-Reset. Over a limit, the answer is error 429 with retry_after in seconds. Refused requests do not count.
Overview
CSV flight logs produced by our altimeters include a cryptographic verification signature. This API verifies whether a flight log is genuine and exactly as written by the altimeter, or whether it has been modified.
The signature is generated inside the altimeter by AES-256 encrypted firmware, making it computationally infeasible to forge. Firmware 1.52 and later sign the log with an Ed25519 signature; earlier firmware uses a SHA-256 based hash. Either way, both the flight data and the header settings must be unchanged to pass verification.
This currently supports the Nano Altimeter, with support for all devices coming soon. You can also verify logs using the upload tool.
Endpoint
csv
POST the entire CSV flight log, unedited, to the endpoint above. The CSV content should be sent under the parameter csv.
Response
The API returns JSON. On success you will receive the verification method used and the parsed flight details:
{
"success": true,
"log_lines": 825,
"input_bytes": 4187,
"verify_method": "SHA-256",
"firmware": "1.43b",
"hardware": "2",
"device_tag": "MyNano",
"competitor_tag": "",
"apogee": 2.54,
"apogee_time": 826,
"max_velocity": 5.910,
"landing_m": 0.784,
"landing_t": 2.253,
"flight_unique_id": "e1eb3e800d780a0b69670f03a88e2f45c592b6e79065fc08cf83241530a60c5a"
}
If the flight log fails verification or the request is empty:
{
"success": false,
"log_lines": 825,
"error": {
"code": "400",
"message": "Flight log failed verification (STEP=SHA256)"
}
}
{
"success": false,
"error": {
"code": "412",
"message": "No flight log supplied as a POST using the parameter csv="
}
}
Response fields
| Field | Type | Description |
|---|---|---|
success | boolean | Whether the flight log passed verification |
verify_method | string | Method that verified the log: Ed25519 (firmware 1.52+), HMAC-SHA256 (1.50–1.51) or SHA-256 (older) |
log_lines | integer | Number of data lines in the flight log |
input_bytes | integer | Size of the submitted log in bytes |
firmware | string | Firmware version from the log header |
hardware | string | Hardware revision from the log header |
device_tag | string | The device tag from the log |
competitor_tag | string | The competitor tag, if present (firmware 1.51+) |
apogee | float | Peak altitude in metres |
apogee_time | integer | Time of apogee in milliseconds |
max_velocity | float | Maximum ascent velocity in metres per second |
landing_m | float | Landing height in metres |
landing_t | float | Landing time in seconds |
flight_unique_id | string | The log's signature hash. Pass this to the Flight Info endpoint as hash. It is 128 hex characters for firmware 1.52+ (Ed25519), or 64 hex for older logs |
error.code | string | HTTP-style error code (on failure) |
error.message | string | Human-readable error description (on failure) |
API Playground
Test the API live. We've pre-loaded a sample Nano V1 flight log below — click Run to verify it, or edit the data to test a failed verification.
csvCrediting AltimeterCloud
Free to use. If you use this API, or anything made from the answers, in a commercial product or service, credit AltimeterCloud with a link to www.altimetercloud.com at the point of use: on the screen, page or printout where the data appears, for example “Data from AltimeterCloud.com”. Any credits the data's own sources ask for, listed on this page, apply as well.



















