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"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.
Comece em poucos minutos
Autentique no servidor e faça sua primeira chamada.
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.
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;Superfície V1
Cinco operações, cinco permissões explícitas.
/citiesDescobre as cidades publicadas e quais módulos cada cidade realmente suporta.
Scopecities:read/cities/{citySlug}/weatherRetorna a previsão meteorológica municipal preservando classe, fonte e validade do dado.
Scopeweather:read/cities/{citySlug}/alertsRetorna avisos oficiais do INMET para o município quando houver resposta publicável.
Scopealerts:read/cities/{citySlug}/statusExpõe estado técnico da integração separado da condição publicável do dado.
Scopestatus:read/cities/{citySlug}/hydrologyRetorna hidrologia somente quando a cidade anuncia suporte explícito no inventário.
Scopehydrology:readHidrologia é fail-closed: consulte /cities e só chame o módulo quando a cidade anunciar hydrology: true.
Menor privilégio
Emita cada chave somente com os scopes necessários.
cities:readDescoberta de cidades e módulos disponíveis.
weather:readPrevisão meteorológica municipal.
alerts:readAvisos meteorológicos oficiais.
status:readEstado das integrações e condição dos dados.
hydrology:readMedições hidrológicas em cidades com contrato explícito.
Integração resiliente
Use status HTTP, headers e requestId como parte do contrato.
Todas as respostas V1 anunciam X-API-Version: v1 e um header Link com rel="service-desc" apontando para o OpenAPI 3.1.
Chave ausente, inválida, revogada ou expirada. Não repita a mesma credencial.
Credencial válida sem permissão, cliente inativo ou PRO indisponível. Corrija autorização antes de repetir.
Respeite Retry-After e os headers X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset.
Dependência necessária indisponível. Use retry com backoff e mantenha o requestId para suporte.
Semântica do endpoint de status
Integração técnica e condição publicável são coisas diferentes.
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.
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.
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.
Kit de integração
Comece com uma receita pronta e mantenha a chave no servidor.
Fetch server-side com tratamento de requestId, Retry-After e erros da API.
Baixar exemplo .tscURL server-side com leitura de HTTP status, requestId e Retry-After.
Baixar exemplo .phpwp_remote_get com chave protegida no wp-config.php ou variável de ambiente.
Baixar exemplo WordPressColeção V1 com os cinco endpoints, base URL e apiKey como variáveis locais.
Baixar coleçãoValida operações, requestId, quotas, versão, service-desc e capability de hidrologia.
Baixar smoke .mjsNo 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.
Contrato e suporte
Automatize pelo OpenAPI e preserve o contexto de cada erro.
Contrato machine-readable da V1, incluindo schemas, scopes, erros e headers.
Chaves de integraçãoCriação, scopes, expiração, quotas e revogação na área autenticada.
Dados e fontesTransparência pública sobre origem, uso e estado das integrações.
Ao abrir um chamado, informe o requestId recebido na resposta. Nunca envie sua API key completa.
Telefones de emergência
Atalhos para atendimento imediato quando a situação exigir.
Cadastre gratuitamente uma área de interesse: envie um SMS para 40199 com o CEP que deseja acompanhar.
Cadastrar CEP por SMS