Passar para o conteúdo principal

API Pública LegalMail — Guia Completo de Integração

A API pública da LegalMail permite que sistemas externos se integrem à plataforma para gerenciar processos, petições, partes, protocolos, notificações e muito mais — tudo de forma programática.

Este artigo reúne toda a documentação necessária para utilizar a API, incluindo autenticação, limites de uso, boas práticas e a referência completa de todos os endpoints disponíveis.


Sumário


Autenticação

Todas as requisições exigem o parâmetro api_key na query string. A chave de API identifica o workspace e pode ser obtida no menu Integrações dentro da plataforma LegalMail.

Exemplo:

GET https://app.legalmail.com.br/api/v1/lawsuit/all?api_key=SUA_CHAVE_AQUI

Se a chave não for informada ou for inválida, a API retornará 401 — API key not provided ou 404 — API key not found.


Limites de Uso e Boas Práticas

A API possui um limite de 30 requisições por minuto. Requisições que ultrapassem esse limite recebem o status HTTP 429 — Too many requests.

⚠️ Política anti-polling:

  • A detecção de polling (requisições repetitivas automatizadas em loop) resultará no bloqueio do workspace por 7 dias.

  • Em caso de reincidência, o bloqueio será permanente.

Recomendações para evitar penalizações:

  • Utilize webhooks (quando disponíveis) em vez de consultar a API repetidamente.

  • Trate os erros HTTP adequadamente, especialmente o status 429.

  • Monitore o consumo de requisições para evitar bloqueios inesperados.

  • Implemente backoff exponencial ao receber erros de limite.


URL Base

https://app.legalmail.com.br/

Todos os endpoints descritos neste artigo utilizam esta URL como prefixo.


Processos (Lawsuits)

Listar todos os processos

Retorna todos os processos vinculados ao workspace.

GET /api/v1/lawsuit/all

Parâmetros de query:

Parâmetro

Obrigatório

Tipo

Descrição

api_key

Sim

string

Chave de API do workspace

offset

Não

integer

Posição inicial para paginação (padrão: 0)

limit

Não

integer

Quantidade de resultados, máximo 50 (padrão: 50)

Exemplo de resposta (200):

[   {     "idprocessos": 12,     "hash_processo": "abc123",     "numero_processo": "0000000-00.2024.8.26.0001",     "juizo": "1ª Vara Cível",     "valor_causa": "10000.00",     "data_distribuicao": "2024-01-10",     "tribunal": "TJSP",     "sistema_tribunal": "PJe",     "poloativo_nome": "Autor Exemplo",     "polopassivo_nome": "Réu Exemplo",     "abreviatura_classe": "PROC",     "nome_classe": "Procedimento Comum Cível",     "foro": "Foro Central",     "inbox_atual": "Arquivo",     "processo_tema": "Tema Exemplo",     "tema_nome": "Tema Exemplo",     "campos_personalizados": [       { "id": 1, "nome": "Origem", "valor": "Indicação" }     ]   } ]

Obter detalhes de um processo

Retorna os dados completos de um processo específico. Informe apenas um dos parâmetros numero_processo ou idprocesso.

GET /api/v1/lawsuit/detail

Parâmetros de query:

Parâmetro

Obrigatório

Tipo

Descrição

api_key

Sim

string

Chave de API do workspace

numero_processo

Não*

string

Número completo do processo

idprocesso

Não*

integer

ID interno do processo

* Informe um ou outro, não ambos.

Campos retornados na resposta (200):

O objeto retornado inclui: idprocessos, numero_processo, hash_processo, foro, last_import, valor_causa, data_distribuicao, data_prazo, poloativo_nome, polopassivo_nome, nome_classe, abreviatura_classe, inbox_atual, juizo, tribunal, processo_tema, sistema_tribunal.


Excluir processo

Exclui o processo e encerra o monitoramento de intimações. Opcionalmente, bloqueia o processo para impedir reimportação automática.

POST /api/v1/lawsuit/delete

Body (JSON):

{   "idprocessos": 123,   "block_process": true }

Campo

Obrigatório

Tipo

Descrição

idprocessos

Sim

integer

ID interno do processo

block_process

Não

boolean

Se true, bloqueia futuras intimações do processo

Um mesmo processo pode ser excluído no máximo 3 vezes. Após atingir esse limite, a API retorna erro.


Arquivar ou desarquivar processo

Alterna o estado de arquivo do processo. Quando arquivado, o prazo é removido; ao desarquivar, o processo retorna ao inbox de entrada.

POST /api/v1/lawsuit/archive

Body (JSON):

{   "fk_processo": 456 }

Encarregar usuário em processo

Vincula um usuário como responsável pelo processo.

POST /api/v1/lawsuit/assign

Body (JSON):

{   "idprocessos": 123,   "idusuarios": 42 }

Listar autos do processo

Retorna as movimentações classificadas como autos vinculadas a um processo.

GET /api/v1/lawsuit/case-files

Parâmetros de query:

Parâmetro

Obrigatório

Tipo

Descrição

api_key

Sim

string

Chave de API

idprocesso

Sim

integer

ID do processo

Exemplo de resposta (200):

[   {     "idmovimentacoes": 123,     "fk_processo": 456,     "titulo": "Petição inicial",     "data_movimentacao": "2024-05-01",     "tipo": "principal",     "hash_documento": "e3b0c44298fc1c149afbf4c8996fb924"   } ]

Obter URL do documento da movimentação

Retorna a URL pré-assinada (S3) do documento de uma movimentação específica, pronta para download.

GET /api/v1/lawsuit/docket-entry/url

Parâmetros de query:

Parâmetro

Obrigatório

Tipo

Descrição

api_key

Sim

string

Chave de API

idmovimentacoes

Sim

integer

ID da movimentação

Exemplo de resposta (200):

{   "status": "success",   "s3_url": "https://irbotfiles.s3.sa-east-1.amazonaws.com/uploads/processos/documento.pdf?X-Amz-Expires=86400&X-Amz-Signature=exemplo" }

Campos Personalizados

Os campos personalizados permitem adicionar informações extras aos processos, como origem do cliente, datas internas, etc.

Listar definições do workspace

Retorna o catálogo de campos personalizados ativos do workspace (sem valores por processo).

GET /api/v1/lawsuit/custom_fields/all

Consultar campos de um processo

Retorna os campos personalizados preenchidos para um processo específico.

GET /api/v1/lawsuit/custom_fields/get

Parâmetro

Obrigatório

Tipo

Descrição

api_key

Sim

string

Chave de API

fk_processo

Sim

integer

ID do processo

Inserir ou atualizar (upsert)

Cria ou atualiza campos personalizados. Se a definição (nome) não existir no workspace, ela é criada automaticamente.

POST /api/v1/lawsuit/custom_fields/upsert

Body (JSON):

{   "fk_processo": 581799,   "campos_personalizados": [     { "nome": "Origem", "tipo": "texto", "valor": "Site" },     { "nome": "Data de cadastro", "tipo": "data", "valor": "2025-03-01" }   ] }

Tipos disponíveis: texto, numero, data, email, booleano. Quando ausente, assume texto.

Editar valores existentes

Atualiza valores de campos já definidos no workspace. Identifique o campo por id ou por nome.

PUT /api/v1/lawsuit/custom_fields/edit

Body (JSON):

{   "fk_processo": 581799,   "campos_personalizados": [     { "id": 14, "valor": "Google Ads" },     { "nome": "Data de cadastro", "valor": "2025-03-09" }   ] }

Excluir definição de campo

Remove uma definição de campo personalizado e todos os vínculos com processos (cascade).

DELETE /api/v1/lawsuit/custom_fields/delete

O parâmetro fk_campo_personalizado pode ser enviado na query string ou no body JSON.


Importação de Processos (Uploads)

Permite solicitar a importação de processos para o workspace, de forma avulsa ou em lote.

Passo a passo recomendado

  1. Busque a classe processual em GET /api/v1/uploads/classes usando o parâmetro term e anote o id retornado.

  2. Descubra os sistemas compatíveis em GET /api/v1/uploads/allowed-systems informando o numero do processo e anote o value do sistema desejado.

  3. Envie a solicitação em POST /api/v1/uploads/request com os dados obtidos.

Buscar classes processuais

GET /api/v1/uploads/classes?api_key=...&term=Recurso

Exemplo de resposta:

[   { "id": 143, "nome": "Recurso", "abreviatura": "RC" } ]

Listar sistemas permitidos

Identifica o tribunal pelo número CNJ e retorna os sistemas cadastrados.

GET /api/v1/uploads/allowed-systems?api_key=...&numero=0000000-00.2024.8.26.0001

Exemplo de resposta:

{   "status": "success",   "tribunal": "TJSP",   "sistemas_permitidos": [     { "nome": "e-SAJ", "value": "esaj" },     { "nome": "e-Proc", "value": "eproc" }   ] }

Solicitar importação

POST /api/v1/uploads/request

Body (JSON):

{   "pedidos": [     {       "numero": "0000000-00.2024.1.00.0000",       "tribunal": "TJSP",       "sistema": "esaj",       "classe_id": "143",       "certificado_id": 10     }   ] }

Campo

Obrigatório

Tipo

Descrição

numero

Sim

string

Número completo do processo

tribunal

Sim

string

Sigla do tribunal (ex: TJSP)

sistema

Sim

string

Sistema do tribunal (pje, projudi, esaj, eproc)

classe_id

Sim

string

ID da classe (obtido em /uploads/classes)

certificado_id

Não

integer

ID do certificado a utilizar

Se o número estiver no padrão CNJ, ele deve corresponder ao tribunal informado. Caso já exista um pedido idêntico pendente, o item é retornado como warning sem duplicar.

Consultar status da importação

GET /api/v1/uploads/status?api_key=...&hash=abc123

Informe hash para buscar um lote inteiro ou numero para buscar por processo específico.

Cancelar pedidos pendentes

POST /api/v1/uploads/cancel

Body (JSON):

{ "hash": "abc123" }

Cancela pedidos com status 0 ou 10 (pendentes) do lote informado.


Autos do Processo (Case Files)

Solicitar atualização de autos

Solicita a sincronização de novos autos do processo. A chamada é recusada se já houver atualização pendente ou se houve solicitação nos últimos 3 dias.

POST /api/v1/lawsuit/case-files/update

Body (JSON):

{ "idprocessos": 123 }

Solicitar download completo dos autos

Enfileira a geração de um PDF único com todos os autos. O processamento ocorre em segundo plano.

POST /api/v1/lawsuit/case-files/download/request

Body (JSON):

{ "idprocessos": 456 }

Exemplo de resposta (200):

{   "status": "success",   "job_id": "merge_671234abcd",   "message": "Download dos autos solicitado. Salve o job_id para consultar o status..." }

É permitido apenas um download completo a cada 3 dias por processo.

Consultar status do download

GET /api/v1/lawsuit/case-files/download/status?api_key=...&idprocessos=456&job_id=merge_671234abcd

O campo job_id é opcional — se ausente, retorna o último job válido do processo. Quando concluído, o campo output_url traz a URL do PDF pronto para download.


Petições Iniciais (Complaints)

Criar petição inicial

Cria uma ou mais petições iniciais vinculadas ao workspace.

POST /api/v1/complaint

Body (JSON) — aceita objeto único ou array:

[   {     "tribunal": "TJSP",     "instancia": "1",     "sistema": "esaj",     "idpoloativo": [123, 789],     "idpolopassivo": [456]   } ]

Campo

Obrigatório

Tipo

Descrição

tribunal

Sim

string

Sigla do tribunal (deve corresponder a /complaintsandpleadings/courts)

instancia

Sim

string

1, 2 ou recursal

sistema

Não*

string

Sistema judicial (obrigatório se o tribunal tiver mais de um)

idpoloativo

Não

int ou array

IDs das partes do polo ativo

idpolopassivo

Não

int ou array

IDs das partes do polo passivo

Fluxo recomendado após criar:

  1. POST /api/v1/complaintsandpleadings/file — envie o PDF principal.

  2. POST /api/v1/complaintsandpleadings/attachments — envie anexos complementares (se necessário).

Consultar petição inicial

GET /api/v1/complaint?api_key=...&idpeticoes=337051

Retorna os dados normalizados da petição, incluindo todos os campos preenchidos e o payload original.

Atualizar petição inicial

PUT /api/v1/complaint?api_key=...&idpeticoes=337051

Permite editar todos os dados do processo associado à petição. Os mesmos campos aceitos na criação são validados. Quando tipo_distribuicao for Por dependência, é obrigatório enviar processo_referencia (formato CNJ) e fundamento_legal.

Deletar petição inicial

DELETE /api/v1/complaint?api_key=...&idpeticoes=337051

Remove a petição e o processo criado junto a ela.

Endpoints auxiliares da petição inicial

Todos os endpoints abaixo recebem api_key e idpeticoes como parâmetros obrigatórios e retornam listas de opções disponíveis com base nos dados já preenchidos na petição:

Endpoint

Descrição

GET /api/v1/complaint/district

Comarcas disponíveis

GET /api/v1/complaint/specialties

Especialidades (competências)

GET /api/v1/complaint/areas

Áreas do direito

GET /api/v1/complaint/procedures

Ritos processuais

GET /api/v1/complaint/justice-types

Tipos de justiça

GET /api/v1/complaint/classes

Classes processuais

GET /api/v1/complaint/subjects

Assuntos processuais

GET /api/v1/complaint/legal-priority-reasons

Motivos de prioridade legal

GET /api/v1/complaint/court-fee-waiver-reasons

Motivos de não recolhimento de custas

GET /api/v1/complaint/economic-activities

Atividades econômicas (apenas TRTs)

GET /api/v1/complaint/process-types

Tipos de processo (apenas TJGO)


Petições Intermediárias (Pleadings)

Criar petição intermediária

POST /api/v1/pleading

Body (JSON):

{   "fk_processo": 456,   "fk_certificado": 34,   "tutela_antecipada": 0,   "custas_recolhidas": 1,   "numero_guia": ["123456789", "987654321"] }

Campo

Obrigatório

Tipo

Descrição

fk_processo

Sim

integer

ID do processo existente no workspace

fk_certificado

Sim

integer

ID do certificado ativo

tutela_antecipada

Não

integer

Indicador de tutela antecipada

custas_recolhidas

Não

integer

Indicador de custas recolhidas

numero_guia

Não

array de strings

Numerações das guias de custas

Fluxo completo recomendado:

  1. (Opcional) GET /api/v1/pleading/notices-to-comply — consulte intimações pendentes de cumprimento.

  2. POST /api/v1/pleading — crie a petição e salve o idpeticoes retornado.

  3. POST /api/v1/complaintsandpleadings/file — envie o PDF principal.

  4. POST /api/v1/complaintsandpleadings/attachments — envie anexos (se necessário).

  5. POST /api/v1/pleading/send — protocole a petição, informando fk_peca e opcionalmente as intimacoes a cumprir.

Consultar intimações pendentes de cumprimento

GET /api/v1/pleading/notices-to-comply?api_key=...&idprocessos=456

Retorna dois arrays: intimacoes_prazo_fechado e intimacoes_prazo_aberto, cada um com os campos idintimacoes, data_intimacao, hora_intimacao, tipo_intimacao, tipo_prazo e texto_intimacao.

Protocolar petição intermediária

POST /api/v1/pleading/send

Parâmetros de query:

Parâmetro

Obrigatório

Tipo

Descrição

api_key

Sim

string

Chave de API

idpeticoes

Sim

integer

ID da petição

idprocessos

Sim

integer

ID do processo

fk_peca

Sim

integer

ID da peça selecionada

data_protocolo

Não

string

Agendamento (formato Y-m-d)

Body (JSON, opcional):

{   "intimacoes": [123, 456] }

O campo intimacoes permite marcar intimações como cumpridas ao protocolar.


Petições — Recursos Compartilhados

Estes endpoints são usados tanto para petições iniciais quanto intermediárias.

Enviar arquivo principal

Upload do PDF principal da petição. Somente arquivos PDF são aceitos.

POST /api/v1/complaintsandpleadings/file

Parâmetros de query: api_key, idpeticoes, idprocessos

Body: multipart/form-data com o campo file contendo o PDF.

Enviar anexos

Upload de documentos anexos à petição. Somente PDF.

POST /api/v1/complaintsandpleadings/attachments

Parâmetros de query: api_key, idpeticoes, fk_documentos_tipos

Body: multipart/form-data com o campo file.

O fk_documentos_tipos deve corresponder a um tipo retornado pelo endpoint abaixo.

Listar tipos de documento por petição

GET /api/v1/complaintsandpleadings/attachment/types?api_key=...&idpeticoes=123

Listar tipos de petição

GET /api/v1/complaintsandpleadings/types?api_key=...&idpeticoes=123

Retorna as peças disponíveis para a petição (ex: { "idpecas": 1, "nome": "Peca A" }).

Listar tribunais e sistemas disponíveis

GET /api/v1/complaintsandpleadings/courts?api_key=...

Exemplo de resposta:

[   { "tribunal": "TJSP", "sistemas": ["eproc", "esaj"] },   { "tribunal": "TRF-3", "sistemas": ["pje"] } ]

Consultar status da petição

POST /api/v1/complaintsandpleadings/status

Body (JSON):

{ "idpeticoes": 123 }

Retorna um inteiro representando o código de status da petição.


Partes do Processo (Parties)

Listar todas as partes

GET /api/v1/party?api_key=...&offset=0&limit=50

Retorna as partes cadastradas no workspace com todos os dados cadastrais: nome, documento (CPF/CNPJ), e-mail, celular, endereço completo, dados pessoais, profissão, entre outros.

Buscar partes

GET /api/v1/party/search

Parâmetro

Obrigatório

Tipo

Descrição

api_key

Sim

string

Chave de API

polo

Sim

string

ativo ou passivo

nome

Não*

string

Busca parcial por nome

documento

Não*

string

CPF (xxx.xxx.xxx-xx) ou CNPJ (xx.xxx.xxx/xxxx-xx)

* É obrigatório informar ao menos nome ou documento.

Criar parte

POST /api/v1/party

Campos obrigatórios no body: polo (ativo ou passivo), nome, documento.

Regras de validação:

  • documento: formato CPF (xxx.xxx.xxx-xx) ou CNPJ (xx.xxx.xxx/xxxx-xx)

  • celular: formato (xx) xxxxx-xxxx

  • data_nascimento: formato dd/mm/yyyy

  • endereco_cep: formato 00000-000

  • genero: MASCULINO ou FEMININO

  • nacionalidade: Brasileiro ou Estrangeiro

  • estado_civil: Solteiro(a), Casado(a), Em união estável, Viúvo(a), Separado(a) ou Divorciado(a)

  • personalidade: Pessoa jurídica, Pessoa física, Massa falida, Espólio ou Autoridade coatora

  • profissao: deve corresponder a uma profissão da rota GET /api/v1/party/professions

  • orgao: deve corresponder a um órgão da rota GET /api/v1/party/issuing-agencies

  • nit, pis, pasep: formato XXX.XXXXX.XX-X

  • citacao_online: aceito apenas para polo passivo, e só com valor 1 quando o nome for "INSTITUTO NACIONAL DO SEGURO SOCIAL" (ou "... - INSS")

Campos de órgão de vinculação (nome_orgao_vinculacao, cnpj_orgao_vinculacao, email_orgao_vinculacao): aceitos somente para polo passivo com personalidade "Autoridade Coatora" em sistemas PJe (exceto TRF-1 e TRF-5).

Editar parte

PUT /api/v1/party

Campos obrigatórios: id, polo, nome, documento. Campos não enviados permanecerão inalterados. Não é possível alterar o polo de uma parte já criada.

Deletar parte

DELETE /api/v1/party

Body (JSON):

{ "id": 10, "polo": "ativo" }

Listar profissões

GET /api/v1/party/professions?api_key=...

Listar órgãos expedidores

GET /api/v1/party/issuing-agencies?api_key=...

Protocolos (Filings)

Listar protocolos do workspace

Retorna a lista de protocolos com suporte a filtros e paginação.

GET /api/v1/filings

Filtros disponíveis (todos opcionais):

Parâmetro

Tipo

Descrição

offset

integer

Posição inicial (padrão: 0)

limit

integer

Resultados por página (1–50, padrão: 50)

tipo

string

avulsa (Petição Inicial) ou Intermediária

status

string

Em fila, Protocolando, Protocolado, Agendado, Cancelado ou Com pendências

processo

string

Busca textual livre (partes, tribunal, número)

enviado_por

integer

ID do usuário (obtido em GET /api/v1/users)

certificado_de

integer

ID do certificado (obtido em GET /api/v1/workspace/certificates)

enviado_em_inicio

date

Data início do envio (YYYY-MM-DD)

enviado_em_fim

date

Data fim do envio

protocolado_em_inicio

date

Data início do protocolo

protocolado_em_fim

date

Data fim do protocolo

cancelado_em_inicio

date

Data início do cancelamento

cancelado_em_fim

date

Data fim do cancelamento

Exemplo de resposta (200):

{   "total": 120,   "offset": 0,   "limit": 50,   "protocols": [     {       "id": 1,       "tipo": "avulsa",       "status": "Protocolado",       "processo": "0000000-00.2024.8.26.0000",       "enviado_por": 42,       "certificado_de": 15,       "enviado_em": "2024-03-15",       "protocolado_em": "2024-03-15",       "cancelado_em": null,       "mensagem_pendencia": null     },     {       "id": 2,       "tipo": "Intermediária",       "status": "Com pendências",       "mensagem_pendencia": "Certificado digital expirado. Renove o certificado e reenvie a petição."     }   ] }

O campo mensagem_pendencia é preenchido apenas quando o status for Com pendências.


Workspace e Notificações

Cadastrar endpoint para notificações (Webhook)

Registra uma URL para receber notificações automáticas sempre que houver atualização nos processos do workspace.

POST /api/v1/workspace/notifications/endpoint

Parâmetros de query:

Parâmetro

Obrigatório

Tipo

Descrição

api_key

Sim

string

Chave de API

endpoint

Sim

string

URL que receberá as notificações

nome_aplicacao

Sim

string

Nome da aplicação receptora

key_endpoint

Não

string

Chave de segurança opcional

Payload de notificação de intimação/movimentação:

Ao receber novas intimações, o LegalMail enviará um POST para o endpoint cadastrado com o seguinte formato:

{   "clientkey": "SUA_KEY_ENDPOINT",   "params": [     {       "inbox_id": "123456",       "inbox_uri": "https://app.legalmail.com.br/inbox/entrada?encryptedId=123456",       "tribunal": "TJSP",       "sistema_tribunal": "esaj",       "instancia": "1",       "uf": "SP",       "numero_processo": "0000000-00.2024.1.00.0000",       "classe_processo": "PROC",       "polo_ativo": "Autor Exemplo",       "polo_passivo": "Réu Exemplo",       "documento": [         {           "tipo": "text",           "link": "https://app.legalmail.com.br/documentos/123",           "text": "Texto da movimentação",           "intimation_date": "2024-01-01",           "title": "Título da movimentação",           "id": "123",           "movement_date": "2024-01-01"         }       ]     }   ] }

Em cada movimentação, o campo tipo indica o formato do conteúdo e pode ser text ou pdf.

Payload de notificação de protocolo finalizado:

{   "clientkey": "SUA_KEY_ENDPOINT",   "params": [     {       "event": "protocolo_finalizado",       "idpeticoes": 123,       "idprocessos": 456,       "numero_processo": "0000000-00.2024.8.26.0001",       "type": "Inicial",       "receipt_link": "https://..."     }   ] }

Listar certificados cadastrados

GET /api/v1/workspace/certificates?api_key=...

Exemplo de resposta:

[   {     "idcertificados": 1,     "advogado_nome": "Fulano de Tal",     "vencimento": "2025-12-31"   } ]

Usuários (Users)

Importante: Senhas devem ser enviadas criptografadas em MD5.

Listar usuários

GET /api/v1/users?api_key=...

Criar usuário

POST /api/v1/users

Campos obrigatórios: nome, email, senha (MD5), perfil (operador ou administrador), cpf, rg, orgao_expedidor, data_nascimento, telefone.

Campos opcionais: oab (6 dígitos), uf (2 letras maiúsculas).

Regras de validação:

  • email: endereço válido

  • cpf: formato xxx.xxx.xxx-xx, deve ser válido

  • telefone: formato (xx) xxxxx-xxxx

  • data_nascimento: formato dd/mm/yyyy

  • orgao_expedidor: deve corresponder a um valor de GET /api/v1/party/issuing-agencies

Atualizar usuário

PUT /api/v1/users

Campo obrigatório: idusuarios. Somente os campos enviados serão alterados.

Remover usuário

DELETE /api/v1/users

Body (JSON):

{ "idusuarios": 42 }

Gerador de Documentos (Docs Generator)

O gerador de documentos permite criar documentos com base em modelos pré-configurados no LegalMail (via Google Docs), substituindo variáveis por valores dinâmicos.

Listar modelos

GET /api/v1/docs/models?api_key=...

Retorna os modelos disponíveis com suas variáveis configuradas:

[   {     "idgerador_documentos_modelos": 1,     "nome": "Modelo base",     "json_variaveis": ["Nome do cliente", "Numero do processo"],     "created_at": "2024-01-01 10:00:00"   } ]

Criar documento a partir de modelo

POST /api/v1/docs

Body (JSON):

{   "idgerador_documentos_modelos": 1,   "nome": "Petição do caso Silva",   "variaveis": {     "Nome do cliente": "Maria da Silva",     "Numero do processo": "0000000-00.2024.1.00.0000",     "Valor da causa": "R$ 10.000,00",     "Vara": "2ª Vara Cível"   } }

Os nomes das variáveis no objeto variaveis devem corresponder exatamente aos nomes cadastrados no modelo (aqueles inseridos no texto como {{Nome da variavel}}).

Listar documentos gerados

GET /api/v1/docs?api_key=...

Baixar documento gerado

GET /api/v1/docs/download?api_key=...&id=10&format=pdf

Parâmetro

Obrigatório

Tipo

Descrição

id

Sim

integer

ID do documento gerado

format

Não

string

pdf (padrão) ou docx

Excluir documento

DELETE /api/v1/docs

Body: { "id": 10 }

Excluir modelo

DELETE /api/v1/docs/models

Body: { "idgerador_documentos_modelos": 1 }


Códigos de Erro Comuns

Código HTTP

Significado

Quando ocorre

400

Requisição inválida

Parâmetros ausentes, formato inválido ou erro de validação

401

Não autorizado

Chave de API não informada

404

Não encontrado

Chave de API inválida, processo/petição não encontrado

405

Método não permitido

Verbo HTTP incorreto para o endpoint

409

Conflito

Ação duplicada (ex: atualização já em andamento)

422

Entidade não processável

Dados obrigatórios não preenchidos ou inconsistentes

429

Limite excedido

Mais de 30 requisições por minuto

500

Erro interno

Falha no processamento do servidor


Documentação baseada na especificação OpenAPI v1.0.0 da LegalMail Public API.

Respondeu à sua pergunta?