--- 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 1. Clone o repositório 2. Instale as dependências: ```bash pip install flask playwright requests certifi urllib3 ``` 1. Instale os navegadores do Playwright: ```bash playwright install chromium ``` 2. Execute a aplicação: ```bash python app.py ``` 3. 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: ```bash curl "https://caarleexx-stf.hf.space/api/busca-multipla?q=dano%20moral&acordaos=true&decisoes=true&page=1&page_size=10" ``` Exemplo de resposta: ```json { "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: ```bash 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: ```json { "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.