Schema de dados
Schema: objeto Praia
Retornado em /api/v1/praias e /api/v1/praias/{id}
| Campo | Tipo | Descrição |
|---|---|---|
| id | string | Identificador único (ex.: AL:1). |
| praia | string | Nome do ponto de monitoramento. |
| cidade | string | Município. |
| estado | string (UF) | Sigla do estado (ex.: AL, SP). |
| regiao | string | Região geográfica (Norte, Nordeste…). |
| lat | number | Latitude decimal. |
| lon | number | Longitude decimal. |
| categoria | "propria" | "impropria" | Resultado da última coleta. |
| coletaEm | string (DD/MM/AAAA) | Data da última coleta. |
| fonte | string | Sigla do órgão ambiental (ex.: IMA-AL). |
| fonteUrl | string (URL) | URL do órgão de origem. |
| tempC | number | undefined | Temperatura da água em °C (quando disponível). |
| chuva | number | undefined | Chuva acumulada em mm (quando disponível). |
| hora | string | undefined | Hora da coleta HH:mm (quando disponível). |
Endpoints
/api/v1/praiasLista paginada de pontos de monitoramento de balneabilidade. Filtre por estado, cidade, status e texto livre.
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| estado | string | não | Sigla do estado (ex.: AL, SP, RJ). |
| cidade | string | não | Nome da cidade (ex.: Santos, Maceió). |
| status | "propria" | "impropria" | não | Filtra pelo resultado da última coleta. |
| q | string | não | Busca textual pelo nome da praia. |
| limit | number | não | Máximo de resultados por página. Padrão: 50, máximo: 500. |
| offset | number | não | Deslocamento para paginação. Padrão: 0. |
Exemplo de requisição
curl -G "https://praiaemdia.com.br/api/v1/praias" \
--data-urlencode "estado=AL" \
--data-urlencode "status=propria" \
--data-urlencode "limit=10"Exemplo de resposta
{
"total": 42,
"limit": 10,
"offset": 0,
"pontos": [
{
"id": "AL:1",
"praia": "Pajuçara",
"cidade": "Maceió",
"estado": "AL",
"regiao": "Nordeste",
"lat": -9.6658,
"lon": -35.7172,
"categoria": "propria",
"coletaEm": "10/06/2025",
"fonte": "IMA-AL",
"fonteUrl": "https://ima.al.gov.br/balneabilidade",
"tempC": 28.5,
"chuva": 0,
"hora": "08:00"
}
// ...
]
}/api/v1/praias/{id}Retorna os dados completos de um único ponto de monitoramento. O id segue o padrão {UF}:{numero} (ex.: AL:1, SP:42).
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| id | string | sim | Identificador único do ponto no formato UF:numero (ex.: AL:1). |
Exemplo de requisição
curl "https://praiaemdia.com.br/api/v1/praias/AL:1"Exemplo de resposta
{
"id": "AL:1",
"praia": "Pajuçara",
"cidade": "Maceió",
"estado": "AL",
"regiao": "Nordeste",
"lat": -9.6658,
"lon": -35.7172,
"categoria": "propria",
"coletaEm": "10/06/2025",
"fonte": "IMA-AL",
"fonteUrl": "https://ima.al.gov.br/balneabilidade",
"tempC": 28.5,
"chuva": 0,
"hora": "08:00"
}/api/v1/estadosResumo dos estados cobertos pela plataforma, com contagem total de pontos e breakdown própria/imprópria.
Exemplo de requisição
curl "https://praiaemdia.com.br/api/v1/estados"Exemplo de resposta
{
"total": 9,
"estados": [
{
"uf": "AL",
"nome": "Alagoas",
"total": 47,
"propria": 39,
"impropria": 8
},
{
"uf": "BA",
"nome": "Bahia",
"total": 120,
"propria": 95,
"impropria": 25
}
// ...
]
}/api/serieSérie histórica de coletas de um ponto específico. Retorna todas as entradas disponíveis com data e categoria.
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| id | string | sim | Identificador do ponto no formato UF:numero (ex.: AL:1). |
Exemplo de requisição
curl "https://praiaemdia.com.br/api/serie?id=AL:1"Exemplo de resposta
{
"id": "AL:1",
"serie": [
{ "coletaEm": "10/06/2025", "categoria": "propria" },
{ "coletaEm": "03/06/2025", "categoria": "propria" },
{ "coletaEm": "27/05/2025", "categoria": "impropria" },
{ "coletaEm": "20/05/2025", "categoria": "propria" }
]
}/api/openapiEspecificação OpenAPI 3.0 completa da API em formato JSON. Importe em Swagger UI, Insomnia, Postman, ou qualquer cliente compatível.
Exemplo de requisição
curl "https://praiaemdia.com.br/api/openapi" | python3 -m json.toolExemplo de resposta
{
"openapi": "3.0.3",
"info": {
"title": "Praia em Dia API",
"version": "1.0.0",
"description": "API de balneabilidade das praias do Brasil"
},
"paths": {
"/api/v1/praias": { ... },
"/api/v1/praias/{id}": { ... },
"/api/v1/estados": { ... },
"/api/serie": { ... }
}
}Usar via Inteligência Artificial
Usar via Inteligência Artificial
Há um prompt Markdown pronto em /api/ai-prompt.md que descreve a API ao seu assistente de IA de forma estruturada. Aponte qualquer LLM (ChatGPT, Claude, Gemini, etc.) para essa URL e ele saberá consultar os dados de balneabilidade diretamente.
Como usar
- 1Copie a URL do prompt abaixo e cole como contexto ou instrução de sistema do seu assistente.
- 2O assistente lerá o prompt e saberá como consultar a API para responder perguntas como “Quais praias de Maceió estão próprias para banho hoje?”
- 3Para agentes com acesso à internet: referencie a URL diretamente. Para ambientes sem acesso, copie e cole o conteúdo do arquivo como contexto.
# Instrução para o assistente
Consulte o prompt da API em: https://praiaemdia.com.br/api/ai-prompt.md
Use a API descrita para responder perguntas sobre balneabilidade das praias do Brasil.Boas práticas
Boas práticas e atribuição
- CORS liberado — todas as rotas respondem com
Access-Control-Allow-Origin: *, então você pode consumir a API direto do browser sem proxy. - Cite a fonte — ao exibir os dados, deixe visível um crédito a “Praia em Dia” com link para
praiaemdia.com.br. - Dados oficiais — as informações vêm diretamente de órgãos ambientais estaduais. Sempre oriente o usuário final a confirmar na fonte original antes de entrar na água. O campo
fonteUrlaponta para o órgão de origem. - Paginação — use
limiteoffsetpara não sobrecarregar a API. O valor máximo delimité 500. - Resolução CONAMA 274/2000 — os critérios de classificação própria/imprópria seguem esta resolução federal. Consulte-a para detalhes técnicos sobre os limites microbiológicos adotados.