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 minutesHourDay
Without a key606005,000
With a key1,00010,00050,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.

Bez limitu zapytań Publiczne, bez uwierzytelniania

Przegląd

Dzienniki lotu CSV tworzone przez nasze wysokościomierze zawierają kryptograficzny podpis weryfikacyjny. To API sprawdza, czy dziennik lotu jest autentyczny i dokładnie taki, jak zapisał go wysokościomierz, czy też został zmodyfikowany.

Podpis jest generowany wewnątrz wysokościomierza przez oprogramowanie szyfrowane AES-256, co czyni jego sfałszowanie obliczeniowo niewykonalnym. Oprogramowanie 1.52 i nowsze podpisuje dziennik podpisem Ed25519; starsze oprogramowanie używa skrótu opartego na SHA-256. W obu przypadkach zarówno dane lotu, jak i ustawienia nagłówka muszą pozostać niezmienione, aby przejść weryfikację.

Obecnie obsługiwany jest wysokościomierz Nano, a obsługa wszystkich urządzeń pojawi się wkrótce. Dzienniki możesz też zweryfikować za pomocą narzędzia przesyłania.

Punkt końcowy

POST https://www.altimetercloud.com/po/api/csv_verify/ Parametr: csv

Wyślij metodą POST cały dziennik lotu CSV, niezmieniony, do powyższego punktu końcowego. Treść CSV należy wysłać pod parametrem csv.

Odpowiedź

API zwraca JSON. W przypadku powodzenia otrzymasz użytą metodę weryfikacji oraz odczytane szczegóły lotu:

✓ Zweryfikowano
{
  "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"
}

Jeśli dziennik lotu nie przejdzie weryfikacji lub żądanie jest puste:

✗ Niepowodzenie
{
  "success": false,
  "log_lines": 825,
  "error": {
    "code": "400",
    "message": "Flight log failed verification (STEP=SHA256)"
  }
}
✗ Brak danych
{
  "success": false,
  "error": {
    "code": "412",
    "message": "No flight log supplied as a POST using the parameter csv="
  }
}

Pola odpowiedzi

PoleTypOpis
successbooleanCzy dziennik lotu przeszedł weryfikację
verify_methodstringMetoda, która zweryfikowała dziennik: Ed25519 (oprogramowanie 1.52+), HMAC-SHA256 (1.50 do 1.51) lub SHA-256 (starsze)
log_linesintegerLiczba wierszy danych w dzienniku lotu
input_bytesintegerRozmiar przesłanego dziennika w bajtach
firmwarestringWersja oprogramowania z nagłówka dziennika
hardwarestringWersja sprzętu z nagłówka dziennika
device_tagstringEtykieta urządzenia z dziennika
competitor_tagstringEtykieta zawodnika, jeśli obecna (oprogramowanie 1.51+)
apogeefloatMaksymalna wysokość w metrach
apogee_timeintegerCzas apogeum w milisekundach
max_velocityfloatMaksymalna prędkość wznoszenia w metrach na sekundę
landing_mfloatWysokość lądowania w metrach
landing_tfloatCzas lądowania w sekundach
flight_unique_idstringHash podpisu dziennika. Przekaż go do punktu końcowego Informacje o locie jako hash. Ma 128 znaków szesnastkowych dla oprogramowania 1.52+ (Ed25519) lub 64 dla starszych dzienników
error.codestringKod błędu w stylu HTTP (w razie niepowodzenia)
error.messagestringCzytelny opis błędu (w razie niepowodzenia)

Środowisko testowe API

Przetestuj API na żywo. Poniżej wczytaliśmy przykładowy dziennik lotu Nano V1. Kliknij Uruchom, aby go zweryfikować, lub zmień dane, aby przetestować nieudaną weryfikację.

Treść POST parametr: csv
https://www.altimetercloud.com/po/api/csv_verify/

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.