Documentação da API
Base URL: https://api.ragjur.com.br
Autenticação
Todas as requisições requerem uma API key enviada no header X-API-Key.
curl -X POST https://api.ragjur.com.br/api/julgados \
-H "X-API-Key: rj_live_abc123..." \
-H "Content-Type: application/json" \
-d '{"query": "dano moral por negativação indevida"}'Obter sua chave: Crie uma conta gratuita em ragjur.com.br e receba sua API key por e-mail. O plano Free inclui 100 queries/mês.
Rate Limits
| Plano | Requests/min | Queries/mês |
|---|---|---|
| Free | 10 | 100 |
| Starter | 60 | 5.000 |
| Growth | 300 | 50.000 |
| Scale | 1.000 | 200.000 |
| Enterprise | Custom | Custom |
Quando o rate limit é excedido, a API retorna 429 Too Many Requests com header Retry-After.
Endpoints
POST
/api/julgadosBusca jurisprudência por texto livre (BM25 + embeddings)
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| query | string | Sim | Texto de busca em linguagem natural |
| tribunais | string[] | Não | Filtro por tribunal. Ex: ["STJ","TJ-SP"] |
| data_inicio | string | Não | Data mínima (YYYY-MM-DD) |
| data_fim | string | Não | Data máxima (YYYY-MM-DD) |
| limit | number | Não | Máximo de resultados (padrão: 10, máx: 50) |
Resposta
{
"results": [
{
"tribunal": "STJ",
"numero_processo": "REsp 1.234.567/SP",
"relator": "Min. Fulano de Tal",
"data_julgamento": "2025-08-15",
"ementa": "CIVIL. RESPONSABILIDADE...",
"score": 0.92
}
],
"total": 3847,
"took_ms": 180
}POST
/api/doutrinasBusca em corpus doutrinário
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| query | string | Sim | Texto de busca |
| autor | string | Não | Filtro por autor |
| limit | number | Não | Máximo de resultados (padrão: 10) |
Resposta
{
"results": [
{
"titulo": "Manual de Direito Civil",
"autor": "Flávio Tartuce",
"trecho": "A responsabilidade civil...",
"pagina": 342,
"score": 0.88
}
],
"took_ms": 95
}POST
/api/verificar-citacaoValida se um processo existe e retorna metadados
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| numero_processo | string | Sim | Número CNJ do processo |
Resposta
{
"encontrado": true,
"tribunal": "STJ",
"numero_processo": "REsp 1.234.567/SP",
"relator": "Min. Fulano de Tal",
"data_julgamento": "2025-08-15",
"ementa": "CIVIL. RESPONSABILIDADE..."
}POST
/api/questoesBusca questões de OAB e concursos
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| query | string | Sim | Texto de busca |
| banca | string | Não | Filtro por banca (FGV, CESPE, etc.) |
| ano | number | Não | Filtro por ano |
| limit | number | Não | Máximo de resultados (padrão: 10) |
Resposta
{
"results": [
{
"enunciado": "Sobre a responsabilidade civil...",
"alternativas": ["A) ...", "B) ...", "C) ...", "D) ..."],
"gabarito": "C",
"banca": "FGV",
"ano": 2024,
"prova": "OAB XXXIX"
}
],
"took_ms": 65
}POST
/api/contexto-pecaRAG combinado (julgados + doutrina) para grounding de LLM
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| query | string | Sim | Tese ou argumento para fundamentar |
| tipo_peca | string | Não | Tipo de peça (petição, recurso, parecer) |
| limit | number | Não | Máximo de resultados por fonte (padrão: 5) |
Resposta
{
"jurisprudencia": [...],
"doutrina": [...],
"contexto_formatado": "## Fundamentação Jurisprudencial\n...",
"took_ms": 250
}POST
/api/doutrinas/peticaoDoutrina formatada para inserção em petições
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| query | string | Sim | Tema doutrinário |
| formato | string | Não | ABNT ou livre (padrão: ABNT) |
Resposta
{
"citacoes": [
{
"texto": "Conforme leciona Tartuce...",
"referencia_abnt": "TARTUCE, Flávio. Manual de Direito Civil. 13. ed. São Paulo: Método, 2023. p. 342.",
"score": 0.91
}
],
"took_ms": 110
}Códigos de erro
| Código | Significado | Solução |
|---|---|---|
| 400 | Parâmetro inválido | Verifique os campos obrigatórios |
| 401 | API key inválida ou ausente | Verifique o header X-API-Key |
| 403 | Quota excedida | Faça upgrade do plano ou aguarde o próximo ciclo |
| 429 | Rate limit excedido | Aguarde conforme Retry-After header |
| 500 | Erro interno | Tente novamente ou contate suporte |