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.
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
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:
{
"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:
{
"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:
{
"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
| Campo | Tipo | Descrição |
|---|---|---|
success | boolean | Verdadeiro se o registo foi aceite (recém-armazenado ou já presente) |
verified | boolean | Se o registo passou na verificação criptográfica |
duplicate | boolean | Verdadeiro se o voo já existia e não foi readicionado |
verify_method | string | Método usado: Ed25519, HMAC-SHA256 ou SHA-256 |
flight.id | integer | O id do voo na nuvem (novo ou existente) |
flight.flight_unique_id | string | O hash de assinatura, utilizável com o ponto final Informações de voo |
flight.thumbnails | object | URLs das imagens de gráfico em todos os tamanhos |
error.code / error.message | string | Código de erro e descrição (em caso de falha) |
Erros
| Código | Significado |
|---|---|
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 |
412 | Nã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.
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.



















