Upload a flight via API (CSV log verified method)

Aucun compte requis Vérifie, stocke & crée les graphiques

Présentation

Voici la version programmable de l’outil de téléversement web. Elle prend un journal de vol, le vérifie exactement comme le point de terminaison Vérification CSV, et si le journal est authentique et pas encore stocké, elle ajoute le vol au cloud, génère les vignettes de graphique et renvoie le nouveau vol.

Si le même vol a déjà été téléversé, il n’est pas ajouté de nouveau. Le vol existant est renvoyé à la place, avec l’indicateur duplicate activé. Cela correspond au comportement de l’outil web, donc renvoyer un journal est toujours sûr.

Point de terminaison

POST https://www.altimetercloud.com/fr/api/upload/ Paramètre : csv

Authentification

Aucune. Les téléversements sont anonymes, exactement comme l’outil web. La vérification cryptographique est le filtre : seuls les journaux authentiques et non modifiés d’un vrai Nano peuvent passer, et les doublons sont ignorés, de sorte qu’un point de terminaison ouvert ne stocke que des journaux légitimes. Un vol est associé à son appareil, et le propriétaire de l’appareil peut le revendiquer plus tard en ajoutant cet appareil à son compte Altimeter Cloud.

Requête

Envoyez le journal de vol, non modifié, sous forme de champ de fichier multipart nommé csv (ou flightlog), ou comme paramètre POST texte brut csv.

curl -X POST https://www.altimetercloud.com/fr/api/upload/ \
  -F "csv=@flight_1234.csv"

Réponse

L’API renvoie du JSON. Lorsque le vol est nouvellement ajouté, duplicate vaut false et les vignettes viennent d’être générées :

✓ Vérifié & téléversé
{
  "success": true,
  "verified": true,
  "duplicate": false,
  "verify_method": "Ed25519",
  "flight": {
    "id": 1234,
    "url": "https://www.altimetercloud.com/fr/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/fr/flightdata/4/1234.webp",
      "meters_large": "https://www.altimetercloud.com/fr/flightdata/4/1234_l.webp",
      "feet_small":   "https://www.altimetercloud.com/fr/flightdata/4/1234_ft.webp",
      "feet_large":   "https://www.altimetercloud.com/fr/flightdata/4/1234_l_ft.webp",
      "miles_small":  "https://www.altimetercloud.com/fr/flightdata/4/1234_mi.webp",
      "miles_large":  "https://www.altimetercloud.com/fr/flightdata/4/1234_l_mi.webp",
      "km_small":     "https://www.altimetercloud.com/fr/flightdata/4/1234_km.webp",
      "km_large":     "https://www.altimetercloud.com/fr/flightdata/4/1234_l_km.webp"
    }
  }
}

Lorsque le même vol existe déjà, il est renvoyé inchangé, avec duplicate à true et sans régénération des vignettes :

↻ Déjà stocké
{
  "success": true,
  "verified": true,
  "duplicate": true,
  "verify_method": "Ed25519",
  "flight": { "id": 1234, "url": "https://www.altimetercloud.com/fr/flights/1234/", "...": "..." }
}

Si le journal échoue à la vérification, il n’est pas stocké :

✗ Échec de la vérification
{
  "success": false,
  "verified": false,
  "error": { "code": "400", "message": "Flight log failed verification" }
}

Gestion des doublons

Un vol est considéré comme déjà stocké lorsque son appareil et son hash de signature correspondent à un vol déjà téléversé. Dans ce cas, rien n’est réajouté et aucun graphique n’est reconstruit ; vous recevez simplement l’identifiant du vol existant avec duplicate à true.

Champs de la réponse

ChampTypeDescription
successbooleanVrai si le journal a été accepté (nouvellement stocké ou déjà présent)
verifiedbooleanSi le journal a passé la vérification cryptographique
duplicatebooleanVrai si le vol existait déjà et n’a pas été réajouté
verify_methodstringMéthode utilisée : Ed25519, HMAC-SHA256 ou SHA-256
flight.idintegerL’identifiant du vol dans le cloud (nouveau ou existant)
flight.flight_unique_idstringLe hash de signature, utilisable avec le point de terminaison Infos de vol
flight.thumbnailsobjectURLs des images de graphique dans toutes les tailles
error.code / error.messagestringCode d’erreur et description (en cas d’échec)

Erreurs

CodeSignification
400 (vérification)Le journal a échoué à la vérification cryptographique et n’a pas été stocké
400 (pression)Le journal a échoué au contrôle croisé de pression et n’a pas été stocké
412Aucun journal de vol n’a été fourni dans la requête

Revendiquer un vol

Comme les téléversements sont anonymes, un vol n’est lié qu’à l’appareil qui l’a enregistré. Pour prendre possession des vols d’un appareil, ajoutez cet appareil à votre compte Altimeter Cloud ; ses vols, y compris ceux téléversés via cette API, sont alors revendiqués automatiquement.

Notes

La vérification est ici identique au point de terminaison de vérification CSV, donc tout journal qui s’y vérifie pourra être téléversé ici. La seule différence est que ce point de terminaison stocke aussi le vol et construit ses graphiques. Pour vérifier un journal sans le stocker, utilisez plutôt le point de terminaison Vérification CSV. Il n’y a pas de playground en direct sur cette page, car chaque appel réussi crée un vrai vol stocké.