Última leitura conhecida da estação
const url = 'https://api.radar-sandbox.kitelife.com.br/v1/stations/stn_barra-da-tijuca-01/readings/latest';const options = {method: 'GET', headers: {'X-Api-Key': '<X-Api-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.radar-sandbox.kitelife.com.br/v1/stations/stn_barra-da-tijuca-01/readings/latest \ --header 'X-Api-Key: <X-Api-Key>'A leitura mais recente que a plataforma recebeu. Confira observedAt
antes de exibir o valor: uma estação offline continua respondendo aqui,
com o último dado que chegou a produzir.
Authorizations
Seção intitulada “Authorizations”Parameters
Seção intitulada “Parameters”Path Parameters
Seção intitulada “Path Parameters”Identificador público da estação.
Example
stn_barra-da-tijuca-01Responses
Seção intitulada “Responses”A leitura mais recente.
Uma leitura meteorológica de uma estação, em um instante. Este é o objeto canônico do produto: o mesmo corpo é retornado pela API REST, empurrado pelo WebSocket e entregue pelo relay AMQP. Toda grandeza carrega a unidade no próprio nome do campo, vento em nós é o padrão náutico do produto e a fonte de erro mais provável para quem integra.
object
Identificador público e estável da estação. É desvinculado do hardware: trocar o equipamento de uma estação não altera este valor.
Instante da medição, sempre UTC com sufixo Z. É a chave temporal de toda série histórica e, junto de stationId, a chave de deduplicação.
Confiabilidade do horário em observedAt.
station: carimbado pela própria estação, com relógio válido. É o caso normal e o único em que observedAt é exato.
reconstructed: a estação estava sem relógio no momento da medição, e a plataforma datou a leitura a partir de outra leitura da mesma sessão que tinha hora. A precisão fica na ordem de segundos, suficiente para série temporal, insuficiente para correlacionar com eventos externos ao segundo exato.
unanchored: sem relógio e sem nenhuma referência de hora na sessão inteira. observedAt vem como LIMITE SUPERIOR: a medição ocorreu em algum momento antes desse instante, por uma duração desconhecida. O que se preserva é a ORDEM entre leituras, não a data. Se o seu uso depende de quando exatamente algo aconteceu, descarte estes pontos.
Uma estação sem relógio não deixa de medir, e a leitura nunca é descartada por falta de hora, daí este campo existir.
Instante em que a plataforma recebeu a leitura. Difere de observedAt quando a estação ficou sem link e retransmitiu depois. Serve para medir atraso, nunca para ordenar a série.
Velocidade média do vento, em nós. Medida pelo sensor no intervalo de amostragem, não é a média móvel de 10 minutos. Para essa, consulte a rota de histórico com resolution=10m.
Maior rajada observada no intervalo de amostragem, em nós. Reportada pelo próprio sensor. Ausente quando a estação não reporta esta grandeza; ver Station.measurements.
Direção de onde o vento sopra, em graus verdadeiros. 0 = norte, 90 = leste. Não há correção de alinhamento de mastro aplicada.
Temperatura do ar, em graus Celsius. Ausente quando a estação não reporta esta grandeza; ver Station.measurements.
Umidade relativa do ar, em porcentagem. Ausente quando a estação não reporta esta grandeza; ver Station.measurements.
Pressão atmosférica medida na altitude da estação, em hectopascais. NÃO é reduzida ao nível do mar. Duas estações em altitudes diferentes mostram valores diferentes sob o mesmo tempo, e a diferença é altitude, não descalibração. Para comparar estações entre si, use pressureSeaLevelHpa.
Pressão reduzida ao nível do mar (QNH), em hectopascais. É o valor comparável entre estações e o que sustenta leitura de tendência barométrica ao longo da costa. Derivado pela plataforma a partir da pressão absoluta, da altitude e da temperatura da estação: ausente quando a altitude da estação não é conhecida.
Taxa de precipitação instantânea, em milímetros por hora. É uma taxa, não um acumulado: integrá-la ao longo do tempo é responsabilidade de quem consome. Ausente quando a estação não reporta esta grandeza; ver Station.measurements.
Índice UV, adimensional. Ausente quando a estação não reporta esta grandeza; ver Station.measurements.
Examples
Vento de tarde na Barra
{ "stationId": "stn_barra-da-tijuca-01", "observedAt": "2026-08-26T17:42:08Z", "timeSource": "station", "receivedAt": "2026-08-26T17:42:09Z", "windSpeedKnots": 18.2, "windGustKnots": 24.6, "windDirectionDegrees": 118, "temperatureCelsius": 27.4, "humidityPercent": 71, "pressureAbsoluteHpa": 1012.4, "pressureSeaLevelHpa": 1012.9, "rainRateMmPerHour": 0, "uvIndex": 3.1}Chave ausente, inválida ou revogada.
Corpo de erro conforme RFC 9457 (Problem Details for HTTP APIs). Toda resposta 4xx e 5xx da API usa este formato, com Content-Type application/problem+json. O código de negócio viaja na extensão code, no formato Recurso.Motivo.
object
URI que identifica o tipo do erro. Estável: é nele que o integrador deve programar, nunca no texto de title.
Resumo legível do tipo do erro.
Explicação específica desta ocorrência.
Identificador da requisição. Cite-o ao abrir um chamado de suporte.
Presente apenas em 422: erros de validação agrupados por campo.
object
Código de negócio no formato Recurso.Motivo. É o valor a usar em lógica condicional quando o type não for específico o bastante. Presente em erros de regra de negócio; ausente em falhas genéricas de protocolo.
Example
{ "type": "https://docs.radar.kitelife.com.br/errors/unauthorized", "title": "Credencial inválida", "status": 401, "code": "ApiKey.NotRecognized", "detail": "A chave enviada em X-Api-Key não foi reconhecida."}Estação inexistente, ou existente porém sem nenhuma leitura registrada.
O campo type do corpo distingue os dois casos.
Corpo de erro conforme RFC 9457 (Problem Details for HTTP APIs). Toda resposta 4xx e 5xx da API usa este formato, com Content-Type application/problem+json. O código de negócio viaja na extensão code, no formato Recurso.Motivo.
object
URI que identifica o tipo do erro. Estável: é nele que o integrador deve programar, nunca no texto de title.
Resumo legível do tipo do erro.
Explicação específica desta ocorrência.
Identificador da requisição. Cite-o ao abrir um chamado de suporte.
Presente apenas em 422: erros de validação agrupados por campo.
object
Código de negócio no formato Recurso.Motivo. É o valor a usar em lógica condicional quando o type não for específico o bastante. Presente em erros de regra de negócio; ausente em falhas genéricas de protocolo.
Example
{ "type": "https://docs.radar.kitelife.com.br/errors/station-not-found", "traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01", "code": "Station.NotFound"}