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.
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).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/maternidadesO 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/diasOs 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.
O campo classe normaliza o estado em texto livre do SNS:
aberta — a funcionar.condicionada — aberta, mas é preciso ligar primeiro ao SNS 24.referenciada — só recebe quem o INEM encaminha. Não contes isto como aberta: ninguém se deve deslocar por iniciativa própria.fechada — não está a receber.info — desconhecido. Nunca interpretes como aberta.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": "..."
}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.
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.
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.pyPara 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.