title: API BUSCA JURISPRUDENCIA STF
emoji: 📈
colorFrom: yellow
colorTo: indigo
sdk: docker
pinned: false
license: agpl-3.0
⚖️ PARA AI - Busca na Jurisprudência do STF
Aplicação web e API para pesquisa de jurisprudência no Supremo Tribunal Federal (STF). Permite buscar acórdãos e decisões monocráticas, com paginação, visualização detalhada e links para o inteiro teor.
🚀 Funcionalidades
- Busca textual em ementas, decisões e acórdãos/atas.
- Seleção das bases: Acórdãos e/ou Decisões Monocráticas.
- Paginação dos resultados (10, 20, 50 ou 100 itens por página).
- Visualização detalhada de cada documento em página própria.
- Links diretos para o inteiro teor (PDF/HTML).
- Interface responsiva e amigável.
- Cache automático de token AWS WAF (Playwright).
📦 Tecnologias
- Python 3.9+
- Flask (backend e templates)
- Playwright (obtenção do token)
- Requests (comunicação com a API do STF)
🔧 Instalação
- Clone o repositório
- Instale as dependências:
pip install flask playwright requests certifi urllib3
1. Instale os navegadores do Playwright:
```bash
playwright install chromium
- Execute a aplicação:
python app.py - Acesse no navegador: https://caarleexx-stf.hf.space/
📚 Endpoints da API
GET /api/busca-multipla
Busca documentos com os filtros selecionados.
Parâmetros:
Nome Tipo Obrigatório Descrição Padrão q string sim Termo de busca - acordaos bool não Incluir acórdãos (true/false) true decisoes bool não Incluir decisões monocráticas (true/false) true page int não Número da página 1 page_size int não Resultados por página (10,20,50,100) 20
Exemplo de requisição:
curl "https://caarleexx-stf.hf.space/api/busca-multipla?q=dano%20moral&acordaos=true&decisoes=true&page=1&page_size=10"
Exemplo de resposta:
{
"q": "dano moral",
"bases": ["acordaos", "decisoes"],
"page": 1,
"page_size": 10,
"total": 42,
"total_acordaos": 35,
"total_decisoes": 7,
"resultados": [
{
"id": "sjur123456",
"titulo": "RE 123456 AgR",
"processo": "RE 123456 AgR",
"relator": "MIN. NOME",
"orgao": "Segunda Turma",
"data": "2023-01-15",
"publicacao": "2023-02-10",
"ementa": "EMENTA: ...",
"decisao_texto": "...",
"acordao_ata": "...",
"url_documento": "https://portal.stf.jus.br/jurisprudencia/obterInteiroTeor.asp?idDocumento=...",
"base": "acordaos",
"score": 12.34
}
]
}
GET /api/documento/
Retorna os dados completos de um documento específico.
Exemplo:
curl "http://localhost:7860/api/documento/sjur123456"
Resposta similar ao item individual do endpoint anterior.
GET /api/health
Verifica o status da aplicação e do token.
Exemplo:
{
"status": "healthy",
"playwright_ready": true,
"token_cached": true
}
🌐 Interface Web
Acesse a raiz (/) para utilizar a interface gráfica.
· Selecione as bases desejadas. · Digite os termos de busca. · Clique em PESQUISAR ou pressione Enter. · Navegue pelos resultados com os botões de paginação. · Clique em "Ver detalhes completos" para abrir a página individual. · Use os links "Inteiro teor" para acessar o documento original no site do STF.
⚙️ Configuração de ambiente
Variável Descrição Padrão PORT Porta do servidor Flask 7860
📝 Notas
· O token AWS WAF é obtido automaticamente via Playwright e armazenado em cache por 10 minutos. · Em caso de falha de token, a aplicação tenta renová-lo automaticamente uma vez. · A API do STF utilizada é https://jurisprudencia.stf.jus.br/api/search/search.
📄 Licença
Este projeto é de código aberto. Sinta-se à vontade para contribuir.
Desenvolvido por PARA AI - convergent law technologies.