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 |
| Sim | string | Chave de API do workspace |
| Não | integer | Posição inicial para paginação (padrão: 0) |
| 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 |
| Sim | string | Chave de API do workspace |
| Não* | string | Número completo do processo |
| 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 |
| Sim | integer | ID interno do processo |
| Não | boolean | Se |
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 |
| Sim | string | Chave de API |
| 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 |
| Sim | string | Chave de API |
| 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 |
| Sim | string | Chave de API |
| 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
Busque a classe processual em
GET /api/v1/uploads/classesusando o parâmetroterme anote oidretornado.Descubra os sistemas compatíveis em
GET /api/v1/uploads/allowed-systemsinformando onumerodo processo e anote ovaluedo sistema desejado.Envie a solicitação em
POST /api/v1/uploads/requestcom 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 |
| Sim | string | Número completo do processo |
| Sim | string | Sigla do tribunal (ex: TJSP) |
| Sim | string | Sistema do tribunal (pje, projudi, esaj, eproc) |
| Sim | string | ID da classe (obtido em |
| 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 |
| Sim | string | Sigla do tribunal (deve corresponder a |
| Sim | string |
|
| Não* | string | Sistema judicial (obrigatório se o tribunal tiver mais de um) |
| Não | int ou array | IDs das partes do polo ativo |
| Não | int ou array | IDs das partes do polo passivo |
Fluxo recomendado após criar:
POST /api/v1/complaintsandpleadings/file— envie o PDF principal.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 |
| Comarcas disponíveis |
| Especialidades (competências) |
| Áreas do direito |
| Ritos processuais |
| Tipos de justiça |
| Classes processuais |
| Assuntos processuais |
| Motivos de prioridade legal |
| Motivos de não recolhimento de custas |
| Atividades econômicas (apenas TRTs) |
| 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 |
| Sim | integer | ID do processo existente no workspace |
| Sim | integer | ID do certificado ativo |
| Não | integer | Indicador de tutela antecipada |
| Não | integer | Indicador de custas recolhidas |
| Não | array de strings | Numerações das guias de custas |
Fluxo completo recomendado:
(Opcional)
GET /api/v1/pleading/notices-to-comply— consulte intimações pendentes de cumprimento.POST /api/v1/pleading— crie a petição e salve oidpeticoesretornado.POST /api/v1/complaintsandpleadings/file— envie o PDF principal.POST /api/v1/complaintsandpleadings/attachments— envie anexos (se necessário).POST /api/v1/pleading/send— protocole a petição, informandofk_pecae opcionalmente asintimacoesa 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 |
| Sim | string | Chave de API |
| Sim | integer | ID da petição |
| Sim | integer | ID do processo |
| Sim | integer | ID da peça selecionada |
| Não | string | Agendamento (formato |
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 |
| Sim | string | Chave de API |
| Sim | string |
|
| Não* | string | Busca parcial por nome |
| Não* | string | CPF ( |
* É 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-xxxxdata_nascimento: formatodd/mm/yyyyendereco_cep: formato00000-000genero:MASCULINOouFEMININOnacionalidade:BrasileiroouEstrangeiroestado_civil:Solteiro(a),Casado(a),Em união estável,Viúvo(a),Separado(a)ouDivorciado(a)personalidade:Pessoa jurídica,Pessoa física,Massa falida,EspólioouAutoridade coatoraprofissao: deve corresponder a uma profissão da rotaGET /api/v1/party/professionsorgao: deve corresponder a um órgão da rotaGET /api/v1/party/issuing-agenciesnit,pis,pasep: formatoXXX.XXXXX.XX-Xcitacao_online: aceito apenas para polo passivo, e só com valor1quando 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 |
| integer | Posição inicial (padrão: 0) |
| integer | Resultados por página (1–50, padrão: 50) |
| string |
|
| string |
|
| string | Busca textual livre (partes, tribunal, número) |
| integer | ID do usuário (obtido em |
| integer | ID do certificado (obtido em |
| date | Data início do envio ( |
| date | Data fim do envio |
| date | Data início do protocolo |
| date | Data fim do protocolo |
| date | Data início do cancelamento |
| 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 |
| Sim | string | Chave de API |
| Sim | string | URL que receberá as notificações |
| Sim | string | Nome da aplicação receptora |
| 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álidocpf: formatoxxx.xxx.xxx-xx, deve ser válidotelefone: formato(xx) xxxxx-xxxxdata_nascimento: formatodd/mm/yyyyorgao_expedidor: deve corresponder a um valor deGET /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 |
| Sim | integer | ID do documento gerado |
| Não | string |
|
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 |
| Requisição inválida | Parâmetros ausentes, formato inválido ou erro de validação |
| Não autorizado | Chave de API não informada |
| Não encontrado | Chave de API inválida, processo/petição não encontrado |
| Método não permitido | Verbo HTTP incorreto para o endpoint |
| Conflito | Ação duplicada (ex: atualização já em andamento) |
| Entidade não processável | Dados obrigatórios não preenchidos ou inconsistentes |
| Limite excedido | Mais de 30 requisições por minuto |
| Erro interno | Falha no processamento do servidor |
Documentação baseada na especificação OpenAPI v1.0.0 da LegalMail Public API.