Busca pelo significado
Consulta em linguagem natural, sem operadores booleanos nem lista de sinônimos.
Busca semântica em mais de 42 milhões de decisões por uma chamada HTTP. A resposta vem em JSON, com jurisprudência, precedentes vinculantes e legislação.
TOKEN=$(curl -s https://juri.onrender.com/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "integracao@suaempresa.com.br",
"password": "SUA_SENHA"}' \
| jq -r .accessToken)
curl https://juri.onrender.com/jurisearch/search \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"consulta": "dano moral por inscrição indevida no SPC",
"filtros": { "tribunais": ["STJ"] },
"paginacao": { "resultadosPorPagina": 10 }
}'
import requests
API = "https://juri.onrender.com"
token = requests.post(f"{API}/auth/login", json={
"email": "integracao@suaempresa.com.br",
"password": SENHA,
}).json()["accessToken"]
busca = {
"consulta": "dano moral por inscrição indevida no SPC",
"filtros": {"tribunais": ["STJ"]},
"paginacao": {"resultadosPorPagina": 10},
}
resposta = requests.post(
f"{API}/jurisearch/search",
headers={"Authorization": f"Bearer {token}"},
json=busca,
).json()
const API = "https://juri.onrender.com";
const { accessToken } = await fetch(`${API}/auth/login`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
email: "integracao@suaempresa.com.br",
password: SENHA,
}),
}).then((r) => r.json());
const resposta = await fetch(`${API}/jurisearch/search`, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${accessToken}`,
},
body: JSON.stringify({
consulta: "dano moral por inscrição indevida no SPC",
filtros: { tribunais: ["STJ"] },
paginacao: { resultadosPorPagina: 10 },
}),
}).then((r) => r.json());
var http = HttpClient.newHttpClient();
var json = new ObjectMapper();
var login = HttpRequest.newBuilder()
.uri(URI.create(API + "/auth/login"))
.header("Content-Type", "application/json")
.POST(BodyPublishers.ofString("""
{"email": "integracao@suaempresa.com.br",
"password": "%s"}
""".formatted(SENHA)))
.build();
var corpo = http.send(login, BodyHandlers.ofString()).body();
var token = json.readTree(corpo).get("accessToken").asText();
var busca = HttpRequest.newBuilder()
.uri(URI.create(API + "/jurisearch/search"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + token)
.POST(BodyPublishers.ofString("""
{"consulta": "dano moral por inscrição indevida no SPC",
"filtros": {"tribunais": ["STJ"]},
"paginacao": {"resultadosPorPagina": 10}}
"""))
.build();
var resposta = http.send(busca, BodyHandlers.ofString());
Você envia a pergunta em linguagem natural e recebe os resultados ordenados por relevância.
Consulta em linguagem natural, sem operadores booleanos nem lista de sinônimos.
As três fontes voltam na mesma resposta, cada item com a sua pontuação de relevância.
Restrinja a busca por tribunal, período, órgão julgador e relator.
Tribunal, processo, relator, órgão julgador, data, citação e link para o inteiro teor.
REST e JSON. Qualquer cliente HTTP funciona, sem SDK.
Depois de uma conversa de 30 minutos sobre o seu caso, criamos o usuário de integração e liberamos credenciais de teste.
POST /auth/login devolve o token que vai no header Authorization.
POST /jurisearch/search com a consulta. O consumo aparece em GET /usage.
{
"jurisprudencias": [
{
"tribunal": "STJ",
"numeroProcesso": "REsp 1.234.567/SP",
"orgaoJulgador": "Terceira Turma",
"relator": "…",
"dataJulgamento": "…",
"ementa": "Responsabilidade civil. Inscrição indevida…",
"citacao": "…",
"urlInteiroTeor": "https://…",
"scoreRelevancia": 0.94
}
],
"precedentesVinculantes": [ … ],
"legislacao": [ … ],
"paginacao": { "pagina": 1, "totalPaginas": 5 }
}
A mesma integração serve a produtos diferentes.
Use a API como etapa de busca antes da geração: o modelo responde a partir de decisões que existem, com link para a fonte.
Ofereça busca de jurisprudência no seu sistema sem indexar tribunais nem manter uma coleta própria.
Reúna as decisões de um tema filtrando por tribunal, período, órgão julgador e relator.
POST /auth/login e recebe um accessToken e um refreshToken. O accessToken vai no header Authorization: Bearer de cada chamada, e a sessão é renovada em POST /auth/refresh.GET /usage mostra o plano atual, esse limite e o histórico de buscas.tribunais), período (dataInicial e dataFinal), órgão julgador (orgaosJulgadores) e relator (relatores). Todos são opcionais: só a consulta é obrigatória.pagina, resultadosPorPagina e maxResultados.GET /tribunais, e o volume de decisões de cada tribunal aparece no mapa da página inicial.Prefere ler antes?
Ver documentação