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 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
Os registos de voo CSV produzidos pelos nossos altímetros incluem uma assinatura de verificação criptográfica. Esta API verifica se um registo de voo é autêntico e exatamente como foi escrito pelo altímetro, ou se foi modificado.
A assinatura é gerada dentro do altímetro por firmware cifrado com AES-256, tornando a sua falsificação computacionalmente inviável. O firmware 1.52 e posterior assina o registo com uma assinatura Ed25519; o firmware mais antigo usa um hash baseado em SHA-256. Em ambos os casos, tanto os dados de voo como as definições do cabeçalho têm de permanecer inalterados para passar na verificação.
Atualmente suporta o altímetro Nano, com suporte para todos os dispositivos em breve. Também pode verificar registos com a ferramenta de envio.
Ponto final
csv
Envie por POST todo o registo de voo CSV, sem edições, para o ponto final acima. O conteúdo CSV deve ser enviado sob o parâmetro csv.
Resposta
A API devolve JSON. Em caso de sucesso, recebe o método de verificação usado e os detalhes do voo analisados:
{
"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"
}
Se o registo de voo não passar na verificação ou o pedido estiver vazio:
{
"success": false,
"log_lines": 825,
"error": {
"code": "400",
"message": "Flight log failed verification (STEP=SHA256)"
}
}
{
"success": false,
"error": {
"code": "412",
"message": "No flight log supplied as a POST using the parameter csv="
}
}
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
success | boolean | Se o registo de voo passou na verificação |
verify_method | string | Método que verificou o registo: Ed25519 (firmware 1.52+), HMAC-SHA256 (1.50 a 1.51) ou SHA-256 (mais antigo) |
log_lines | integer | Número de linhas de dados no registo de voo |
input_bytes | integer | Tamanho do registo submetido em bytes |
firmware | string | Versão do firmware a partir do cabeçalho do registo |
hardware | string | Revisão de hardware a partir do cabeçalho do registo |
device_tag | string | A etiqueta do dispositivo a partir do registo |
competitor_tag | string | A etiqueta de concorrente, se presente (firmware 1.51+) |
apogee | float | Altitude máxima em metros |
apogee_time | integer | Momento do apogeu em milissegundos |
max_velocity | float | Velocidade máxima de subida em metros por segundo |
landing_m | float | Altura de aterragem em metros |
landing_t | float | Hora de aterragem em segundos |
flight_unique_id | string | O hash de assinatura do registo. Passe-o ao ponto final Informações de voo como hash. Tem 128 carateres hexadecimais para firmware 1.52+ (Ed25519), ou 64 para registos mais antigos |
error.code | string | Código de erro ao estilo HTTP (em caso de falha) |
error.message | string | Descrição de erro legível (em caso de falha) |
Zona de testes da API
Teste a API ao vivo. Pré-carregámos abaixo um registo de voo de exemplo de um Nano V1. Clique em Executar para o verificar, ou edite os dados para testar uma verificação falhada.
csvCrediting 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.



















