Upload a flight via API (CSV log verified method)

Não requer conta Verifica, armazena e cria gráficos

Visão geral

Esta é a versão programática da ferramenta web de envio. Recebe um registo de voo, verifica-o exatamente como o ponto final de Verificação CSV e, se o registo for autêntico e ainda não estiver armazenado, adiciona o voo à nuvem, gera as miniaturas dos gráficos e devolve o novo voo.

Se o mesmo voo já tiver sido enviado, não é adicionado novamente. Em vez disso, é devolvido o voo existente, com o indicador duplicate ativado. Isto corresponde ao comportamento da ferramenta web, pelo que reenviar um registo é sempre seguro.

Ponto final

POST https://www.altimetercloud.com/pt/api/upload/ Parâmetro: csv

Autenticação

Nenhuma. Os envios são anónimos, tal como na ferramenta web. A verificação criptográfica é o filtro: apenas registos autênticos e não editados de um Nano real podem passar, e os duplicados são ignorados, pelo que um ponto final aberto só armazena registos legítimos. Um voo é associado ao seu dispositivo, e o proprietário do dispositivo pode reclamá-lo mais tarde adicionando esse dispositivo à sua conta Altimeter Cloud.

Pedido

Envie o registo de voo, sem edições, como campo de ficheiro multipart com o nome csv (ou flightlog), ou como parâmetro POST de texto simples csv.

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

Resposta

A API devolve JSON. Quando o voo é adicionado pela primeira vez, duplicate é false e as miniaturas acabaram de ser geradas:

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

Quando o mesmo voo já existe, é devolvido sem alterações, com duplicate a true e sem regenerar as miniaturas:

↻ Já armazenado
{
  "success": true,
  "verified": true,
  "duplicate": true,
  "verify_method": "Ed25519",
  "flight": { "id": 1234, "url": "https://www.altimetercloud.com/pt/flights/1234/", "...": "..." }
}

Se o registo não passar na verificação, não é armazenado:

✗ Falha na verificação
{
  "success": false,
  "verified": false,
  "error": { "code": "400", "message": "Flight log failed verification" }
}

Tratamento de duplicados

Um voo é considerado já armazenado quando o seu dispositivo e o seu hash de assinatura correspondem a um voo já enviado. Nesse caso, nada é readicionado e nenhum gráfico é reconstruído; recebe simplesmente o id do voo existente com duplicate a true.

Campos da resposta

CampoTipoDescrição
successbooleanVerdadeiro se o registo foi aceite (recém-armazenado ou já presente)
verifiedbooleanSe o registo passou na verificação criptográfica
duplicatebooleanVerdadeiro se o voo já existia e não foi readicionado
verify_methodstringMétodo usado: Ed25519, HMAC-SHA256 ou SHA-256
flight.idintegerO id do voo na nuvem (novo ou existente)
flight.flight_unique_idstringO hash de assinatura, utilizável com o ponto final Informações de voo
flight.thumbnailsobjectURLs das imagens de gráfico em todos os tamanhos
error.code / error.messagestringCódigo de erro e descrição (em caso de falha)

Erros

CódigoSignificado
400 (verificação)O registo não passou na verificação criptográfica e não foi armazenado
400 (pressão)O registo não passou na verificação cruzada de pressão e não foi armazenado
412Não foi fornecido nenhum registo de voo no pedido

Reclamar um voo

Como os envios são anónimos, um voo está ligado apenas ao dispositivo que o registou. Para assumir a posse dos voos de um dispositivo, adicione esse dispositivo à sua conta Altimeter Cloud; os seus voos, incluindo os enviados através desta API, são então reclamados automaticamente.

Notas

A verificação aqui é idêntica à do ponto final de verificação CSV, pelo que qualquer registo que se verifique aí poderá ser enviado aqui. A única diferença é que este ponto final também armazena o voo e constrói os seus gráficos. Para verificar um registo sem o armazenar, use antes o ponto final de Verificação CSV. Não existe zona de testes ao vivo nesta página, porque cada chamada bem-sucedida cria um voo armazenado real.