Tempo Pelotas
Tempo Pelotas
Tempo Pelotas API PRO

Dados meteorológicos com contrato claro para integrar.

Uma API versionada para aplicações, automações e produtos que precisam consumir meteorologia, avisos, status de integração e hidrologia sem depender da interface do portal.

01

Comece em poucos minutos

Autentique no servidor e faça sua primeira chamada.

Trate a chave como segredo.

Tokens tp_live_* não devem ser embutidos em JavaScript entregue ao navegador, aplicativos públicos ou repositórios. Em frontend, faça a chamada através do seu próprio backend.

cURLCredencial ilustrativa
curl --request GET \
  --url "https://tempopelotas.com.br/api/v1/cities/pelotas-rs/weather" \
  --header "Authorization: Bearer tp_live_SEU_TOKEN" \
  --header "Accept: application/json"
JavaScriptNode / server-side
const response = await fetch(
  "https://tempopelotas.com.br/api/v1/cities/pelotas-rs/status",
  {
    headers: {
      Authorization: `Bearer ${process.env.TEMPO_PELOTAS_API_KEY}`,
      Accept: "application/json",
    },
  },
);

if (response.status === 429) {
  const retryAfter = response.headers.get("Retry-After");
  throw new Error(`Limite atingido. Tente novamente em ${retryAfter ?? "alguns"} segundos.`);
}

const payload = await response.json();

if (!response.ok) {
  console.error("Tempo Pelotas API", {
    status: response.status,
    error: payload.error,
    requestId: payload.requestId,
  });
}

return payload;
02

Superfície V1

Cinco operações, cinco permissões explícitas.

GET/cities

Descobre as cidades publicadas e quais módulos cada cidade realmente suporta.

Scope cities:read
GET/cities/{citySlug}/weather

Retorna a previsão meteorológica municipal preservando classe, fonte e validade do dado.

Scope weather:read
GET/cities/{citySlug}/alerts

Retorna avisos oficiais do INMET para o município quando houver resposta publicável.

Scope alerts:read
GET/cities/{citySlug}/status

Expõe estado técnico da integração separado da condição publicável do dado.

Scope status:read
GET/cities/{citySlug}/hydrology

Retorna hidrologia somente quando a cidade anuncia suporte explícito no inventário.

Scope hydrology:read

Hidrologia é fail-closed: consulte /cities e só chame o módulo quando a cidade anunciar hydrology: true.

03

Menor privilégio

Emita cada chave somente com os scopes necessários.

cities:read

Descoberta de cidades e módulos disponíveis.

weather:read

Previsão meteorológica municipal.

alerts:read

Avisos meteorológicos oficiais.

status:read

Estado das integrações e condição dos dados.

hydrology:read

Medições hidrológicas em cidades com contrato explícito.

04

Integração resiliente

Use status HTTP, headers e requestId como parte do contrato.

Descoberta em cada resposta.

Todas as respostas V1 anunciam X-API-Version: v1 e um header Link com rel="service-desc" apontando para o OpenAPI 3.1.

401

Chave ausente, inválida, revogada ou expirada. Não repita a mesma credencial.

403

Credencial válida sem permissão, cliente inativo ou PRO indisponível. Corrija autorização antes de repetir.

429

Respeite Retry-After e os headers X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset.

503

Dependência necessária indisponível. Use retry com backoff e mantenha o requestId para suporte.

05

Semântica do endpoint de status

Integração técnica e condição publicável são coisas diferentes.

integration.state

O que o Tempo Pelotas conseguiu verificar.

Representa o estado da integração local, incluindo sucesso, restrições e falhas da nossa própria coleta.

dataCondition.state

O que pode ser afirmado sobre o dado.

Representa a condição publicável da medição, previsão ou série quando existe semântica suficiente para isso.

Regra de integração:

HTTP 403, timeout, erro de parsing ou falha de coleta do Tempo Pelotas não provam que o provedor público esteja globalmente fora do ar. Não transforme esses eventos em “fonte offline” no seu produto.

06

Kit de integração

Comece com uma receita pronta e mantenha a chave no servidor.

Node + TypeScript

Fetch server-side com tratamento de requestId, Retry-After e erros da API.

Baixar exemplo .ts
Postman

Coleção V1 com os cinco endpoints, base URL e apiKey como variáveis locais.

Baixar coleção
Smoke client

Valida operações, requestId, quotas, versão, service-desc e capability de hidrologia.

Baixar smoke .mjs
Smoke oficial do contrato.

No repositório, configure TEMPO_PELOTAS_API_KEY no ambiente do servidor e execute npm run api:smoke. Para limitar scopes, use TEMPO_PELOTAS_SMOKE_MODULES, por exemplo cities,weather,status. O script não imprime a chave.

Estes arquivos são receitas mínimas, não SDKs versionados. Para geração automática de clientes, use os operationId estáveis do OpenAPI 3.1.

07

Contrato e suporte

Automatize pelo OpenAPI e preserve o contexto de cada erro.

Ao abrir um chamado, informe o requestId recebido na resposta. Nunca envie sua API key completa.

Serviço público

Telefones de emergência

Atalhos para atendimento imediato quando a situação exigir.

Defesa Civil do Rio Grande do Sul
Alertas oficiais · Defesa Civil RS

Receba avisos diretamente no celular

Portal oficial
Serviço público

Telefones de emergência

Atalhos para atendimento imediato quando a situação exigir.

Defesa Civil do Rio Grande do Sul
Alertas oficiais · Defesa Civil RS

Receba avisos diretamente no celular

Portal oficial