Início

API pública

O estado diário das urgências de obstetrícia e ginecologia do SNS, em JSON, para quem quiser construir algo com isto. Aberta, gratuita e sem chave de acesso.

Estes dados são médicos e perecíveis. Se os usares, mostra sempre a hora da última atualização (campo atualizado_iso) e o aviso de que a informação é informal e deve ser confirmada — o campo aviso vem em todas as respostas precisamente para isso. Nunca apresentes um estado como garantido, e não escondas o 112 nem o SNS 24 (808 24 24 24).

Endpoints

GET /api/urgencias?dia=

O estado de cada maternidade num dia. dia aceita Hoje, Amanhã ou uma data dd/mm/aaaa; sem parâmetro, devolve hoje.

Dias já passados vêm com historico: true — são um registo, não dizem nada sobre o estado de agora. Se a fonte falhar, responde 503 com erro e sem lista: a app nunca devolve dados em que não confia, e tu também não devias.

GET /api/maternidades

O diretório estável: nome, região (ULS), tipos de urgência, coordenadas, telefone e o endereço da ficha. Não muda ao longo do dia — junta-se ao anterior pelo campo hospital.

GET /api/dias

Os dias disponíveis, com etiquetas. Traz passado e hoje — não assumas que o primeiro da lista é hoje, porque os dias já passados vêm à esquerda.

GET /api/historico?dia=

Quando é que o estado desse dia mudou, a partir dos registos guardados.

Estados possíveis

O campo classe normaliza o estado em texto livre do SNS:

Exemplo

curl https://maternidadesabertas.pt/api/urgencias?dia=Hoje
{
  "dia": "Hoje",
  "atualizado": "13:40",
  "atualizado_iso": "2026-10-09T13:40:12+01:00",
  "hospitais": [
    {
      "hospital": "Hospital de Cascais Dr. José de Almeida",
      "uls": "Serviço não integrado em ULS",
      "tipo": "Obstetrícia e Ginecologia",
      "estado": "Aberta / Contacto Prévio SNS 24",
      "classe": "condicionada",
      "horario": "00:00 - 24:00",
      "faixas": [ ... ],
      "sem_partos": [],
      "telefone": "214 653 000"
    }
  ],
  "fonte": "...", "aviso": "...", "licenca": "...", "docs": "..."
}

Licença e atribuição

Os dados de origem são do portal do SNS. O que esta API acrescenta — a descodificação, a normalização dos estados e o histórico — pode ser usado livremente sob CC BY 4.0: usa à vontade, inclusive comercialmente, desde que atribuas a maternidadesabertas.pt.

Limites

Não há chave nem registo. Há um limite de 120 pedidos por minuto por endereço IP; acima disso a resposta é 429 com um cabeçalho Retry-After. É folgado de propósito — não deves notá-lo em uso normal.

As respostas podem ser guardadas em cache durante 60 segundos (o cabeçalho Cache-Control diz isso) e os dados só são recolhidos algumas vezes por hora: não vale a pena consultar mais do que de minuto a minuto. Se precisares de volume alto ou de uso continuado, escreve antes para geral@maternidadesabertas.pt — é um projeto pessoal num servidor pequeno.

Para assistentes de IA

Há um servidor MCP pronto a usar, com duas ferramentas: o estado das maternidades num dia, e a maternidade a funcionar mais perto de umas coordenadas. Serve para ligar o Claude, o ChatGPT ou outro assistente a estes dados.

Descarregar o servidor MCP (Python, ficheiro único). Precisa de Python 3.10+ e do SDK oficial:

pip install "mcp>=2"
python servidor.py

Para o usar no Claude Desktop, acrescenta isto à configuração de MCP (Definições → Developer → Edit Config) e reinicia:

{
  "mcpServers": {
    "maternidades-abertas": {
      "command": "python",
      "args": ["/caminho/para/servidor.py"]
    }
  }
}

Para leitura automática há também o /llms.txt.

112EmergênciaSNS 24808 24 24 24