Upload a flight via API (CSV log verified method)
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.
Überblick
Dies ist die programmatische Variante des Web-Upload-Werkzeugs. Sie nimmt ein Flugprotokoll entgegen, verifiziert es genau wie der Endpunkt CSV-Überprüfung, und wenn das Protokoll echt und noch nicht gespeichert ist, fügt sie den Flug der Cloud hinzu, erzeugt die Diagramm-Vorschaubilder und gibt den neuen Flug zurück.
Wurde derselbe Flug bereits hochgeladen, wird er nicht erneut hinzugefügt. Stattdessen wird der vorhandene Flug zurückgegeben, mit gesetztem duplicate-Kennzeichen. Das entspricht dem Verhalten des Web-Uploaders, sodass das erneute Senden eines Protokolls immer sicher ist.
Endpunkt
csv
Authentifizierung
Keine. Uploads sind anonym, genau wie beim Web-Upload-Werkzeug. Die kryptografische Verifizierung ist die Schranke: nur echte, unveränderte Protokolle eines echten Nano können sie passieren, und Duplikate werden ignoriert, sodass ein offener Endpunkt nur legitime Protokolle speichert. Ein Flug wird seinem Gerät zugeordnet, und der Geräteeigentümer kann ihn später beanspruchen, indem er dieses Gerät seinem Altimeter-Cloud-Konto hinzufügt.
Anfrage
Senden Sie das Flugprotokoll unverändert als Multipart-Dateifeld mit dem Namen csv (oder flightlog) oder als reinen Text-POST-Parameter csv.
curl -X POST https://www.altimetercloud.com/de/api/upload/ \
-F "csv=@flight_1234.csv"
Antwort
Die API liefert JSON. Wenn der Flug neu hinzugefügt wird, ist duplicate gleich false und die Vorschaubilder wurden soeben erzeugt:
{
"success": true,
"verified": true,
"duplicate": false,
"verify_method": "Ed25519",
"flight": {
"id": 1234,
"url": "https://www.altimetercloud.com/de/flights/1234/",
"firmware": "1.52",
"hardware": "4",
"device_tag": "MY-NANO",
"competitor_tag": "C-07",
"apogee": 246.4,
"apogee_time": 5.21,
"max_velocity": 98.3,
"samples": 3210,
"flight_unique_id": "a1b2c3...",
"thumbnails": {
"meters_small": "https://www.altimetercloud.com/de/flightdata/4/1234.webp",
"meters_large": "https://www.altimetercloud.com/de/flightdata/4/1234_l.webp",
"feet_small": "https://www.altimetercloud.com/de/flightdata/4/1234_ft.webp",
"feet_large": "https://www.altimetercloud.com/de/flightdata/4/1234_l_ft.webp",
"miles_small": "https://www.altimetercloud.com/de/flightdata/4/1234_mi.webp",
"miles_large": "https://www.altimetercloud.com/de/flightdata/4/1234_l_mi.webp",
"km_small": "https://www.altimetercloud.com/de/flightdata/4/1234_km.webp",
"km_large": "https://www.altimetercloud.com/de/flightdata/4/1234_l_km.webp"
}
}
}
Existiert derselbe Flug bereits, wird er unverändert zurückgegeben, mit duplicate gleich true und ohne neu erzeugte Vorschaubilder:
{
"success": true,
"verified": true,
"duplicate": true,
"verify_method": "Ed25519",
"flight": { "id": 1234, "url": "https://www.altimetercloud.com/de/flights/1234/", "...": "..." }
}
Besteht das Protokoll die Verifizierung nicht, wird es nicht gespeichert:
{
"success": false,
"verified": false,
"error": { "code": "400", "message": "Flight log failed verification" }
}
Umgang mit Duplikaten
Ein Flug gilt als bereits gespeichert, wenn sein Gerät und sein Signatur-Hash mit einem bereits hochgeladenen Flug übereinstimmen. In diesem Fall wird nichts erneut hinzugefügt und keine Diagramme werden neu erstellt; Sie erhalten einfach die vorhandene Flug-ID mit duplicate gleich true.
Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
success | boolean | True, wenn das Protokoll angenommen wurde (neu gespeichert oder bereits vorhanden) |
verified | boolean | Ob das Protokoll die kryptografische Verifizierung bestanden hat |
duplicate | boolean | True, wenn der Flug bereits vorhanden war und nicht erneut hinzugefügt wurde |
verify_method | string | Verwendete Methode: Ed25519, HMAC-SHA256 oder SHA-256 |
flight.id | integer | Die Cloud-Flug-ID (neu oder vorhanden) |
flight.flight_unique_id | string | Der Signatur-Hash, verwendbar mit dem Endpunkt Flugdaten |
flight.thumbnails | object | Diagramm-Bild-URLs in allen Größen |
error.code / error.message | string | Fehlercode und Beschreibung (bei Fehlschlag) |
Fehler
| Code | Bedeutung |
|---|---|
400 (Verifizierung) | Das Protokoll hat die kryptografische Verifizierung nicht bestanden und wurde nicht gespeichert |
400 (Druck) | Das Protokoll hat die zusätzliche Druck-Gegenprüfung nicht bestanden und wurde nicht gespeichert |
412 | In der Anfrage wurde kein Flugprotokoll übermittelt |
Einen Flug beanspruchen
Da Uploads anonym sind, ist ein Flug nur mit dem Gerät verknüpft, das ihn aufgezeichnet hat. Um die Flüge eines Geräts zu übernehmen, fügen Sie dieses Gerät Ihrem Altimeter-Cloud-Konto hinzu; seine Flüge, auch die über diese API hochgeladenen, werden dann automatisch beansprucht.
Hinweise
Die Verifizierung ist hier identisch mit dem CSV-Überprüfungs-Endpunkt, sodass jedes dort verifizierte Protokoll auch hier hochgeladen werden kann. Der einzige Unterschied ist, dass dieser Endpunkt den Flug zusätzlich speichert und seine Diagramme erstellt. Um ein Protokoll zu prüfen, ohne es zu speichern, verwenden Sie stattdessen den Endpunkt CSV-Überprüfung. Auf dieser Seite gibt es keinen Live-Playground, da jeder erfolgreiche Aufruf einen echten gespeicherten Flug erzeugt.
Crediting 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.



















