📚 Documentação da API
Guia completo para integração com a Tábua de Marés API
Visão Geral
A Tábua de Marés API fornece dados precisos sobre as marés do litoral brasileiro. Uma API REST completa para desenvolvedores, pesquisadores e entusiastas do mar.
🌐 Base URL: https://tabuamare.devtu.qzz.io//api/v1
📊 Formato: JSON
🚀 Status: Ativo e gratuito
✨ Características
- 🌊 Cobertura completa: Dados de marés para todo o litoral brasileiro
- 📍 17 estados costeiros: Informações detalhadas por localização
- ⚡ Respostas rápidas: API otimizada para performance
- 🔒 Confiável: Dados oficiais e atualizados
Autenticação
🎉 Uso Livre: Esta API não requer autenticação e é de uso público.
⚡ Limite: 500 requisições por minuto por IP para garantir qualidade do serviço.
Estrutura de Resposta
Todas as respostas seguem o mesmo padrão JSON:
{{code_estrutura_default}}
💡 Observações:
-
O campo
errorsó aparece quando há erro na requisição
Endpoints
Listar Estados
GETRetorna a lista de todos os estados costeiros do Brasil disponíveis na API.
📝 Exemplo de Requisição:
curl -X GET "https://tabuamare.devtu.qzz.io//api/v1/states" -H "Accept: application/json"
✅ Resposta de Sucesso (200):
{{code_resposta_states}}
🗺️ Estados Disponíveis:
Listar Portos por Estado
GETRetorna uma lista com os nomes dos portos de um estado específico.
📋 Parâmetros:
- state (string): Sigla do estado em minúsculo (ex: sp, rj, sc, pb)
📝 Exemplo de Requisição:
# Listar portos da Paraíba
curl -X GET "https://tabuamare.devtu.qzz.io//api/v1/harbor_names/pb"
✅ Exemplo de Resposta:
{{code_resposta_harbor_names}}
Obter Portos por IDs
GETRetorna informações detalhadas de um/mais portos específico pelo seu ID.
📋 Parâmetros:
- ids (integer): IDs únicos dos portos separados por vírgula (ex: [1,2,3])
📝 Exemplo de Requisição:
# Obter informações do porto ID 1
curl -X GET "https://tabuamare.devtu.qzz.io//api/v1/harbor/1"
✅ Exemplo de Resposta:
{{code_resposta_harbor_by_id}}
Obter Tábua de Maré por Período
GETRetorna os dados da tábua de maré para um porto específico em um mês e dias determinados.
📋 Parâmetros:
- harbor (integer): ID único do porto
- month (integer): Mês desejado (1-12)
- days (string): Array de dias no formato "[1,2,10-30]", dias específicos separados por vírgula (ex: 1,30,27) e/ou um período (ex: 1,5-13).
📝 Exemplo de Requisição:
# Obter tábua de maré do porto ID 1 para janeiro, dias 1, 2 e 3
curl -X GET "https://tabuamare.devtu.qzz.io//api/v1/tabua-mare/1/1/[1,2,3]"
# Obter tábua de maré para múltiplos dias
curl -X GET "https://tabuamare.devtu.qzz.io//api/v1/tabua-mare/5/3/[15,16,17,18]"
✅ Exemplo de Resposta:
{{code_resposta_tabua_mare}}
Porto mais próximo (estado)
GETRetorna o porto mais próximo das coordenadas informadas dentro do estado especificado.
📋 Parâmetros:
- state (string): Sigla do estado (ex: pb, rj, sp).
- lat_lng (string): Coordenadas no formato
[lat,lng].
📝 Exemplo de Requisição:
curl -X GET "https://tabuamare.devtu.qzz.io//api/v1/nearested-harbor/pb/[-7.11509,-34.864]"
🧪 Exemplo com Fetch:
fetch(`https://tabuamare.devtu.qzz.io//api/v1/nearested-harbor/pb/[-7.11509,-34.864]`).then(r => r.json())
Porto mais próximo (independente)
GETRetorna o porto mais próximo das coordenadas informadas sem restringir por estado.
📋 Parâmetros:
- lat_lng (string): Coordenadas no formato
[lat,lng].
📝 Exemplo de Requisição:
curl -X GET "https://tabuamare.devtu.qzz.io//api/v1/nearest-harbor-independent-state/[-7.11509,-34.864]"
🧪 Exemplo com Fetch:
fetch(`https://tabuamare.devtu.qzz.io//api/v1/nearest-harbor-independent-state/[-7.11509,-34.864]`).then(r => r.json())
Tábua de Maré por Geolocalização
GETObtém a tábua de maré do porto mais próximo dentro de um estado, informando apenas coordenadas e período.
📋 Parâmetros:
- lat_lng (string): Coordenadas
[lat,lng]. - state (string): Sigla do estado (ex: pb, rj, sp).
- month (integer): Mês (1-12).
- days (string): Dias e/ou intervalos (ex:
[1,2,10-30]).
📝 Exemplo de Requisição:
curl -X GET "https://tabuamare.devtu.qzz.io//api/v1/geo-tabua-mare/[-7.11509,-34.864]/pb/1/[1,2,3]"
🧪 Exemplo com Fetch:
fetch(`https://tabuamare.devtu.qzz.io//api/v1/geo-tabua-mare/[-7.11509,-34.864]/pb/1/[1,2,3]`).then(r => r.json())
⚙️ Detalhes técnicos
lat_lngé parseado no servidor por um tipo dedicado e suporta negativos e decimais.daysaceita dias e intervalos; o servidor expande e deduplica valores.- O porto é escolhido pela menor distância às coordenadas, respeitando o estado.
🌐 Exemplo: obter sigla do estado com Nominatim
-----AQUI---------
Códigos de Erro
🚨 Códigos HTTP
- 400 - Bad Request: Requisição malformada ou parâmetros inválidos
- 404 - Not Found: Recurso não encontrado
- 500 - Internal Server Error: Erro interno do servidor
📄 Formato de Erro:
{{code_formato_erro}}