Transforme seus documentos com facilidade e eficiência com nossa API
Para facilitar a integração e o teste da nossa API, disponibilizamos um arquivo Insomnia que contém todas as rotas necessárias. Esse arquivo permite que você experimente nossas funcionalidades de forma rápida e eficiente.
Você pode baixar o arquivo Insomnia clicando no link abaixo:
Abaixo, detalhamos todas as rotas e como utilizá-la:
V1: https://apiia.uxdoc.com.br
PATCH /oneclick/analyze-clause-and-design
Converte um contrato em formato DOCX para um documento com Legal Design e retorna um link temporário para download (PDF, DOCX ou PPTX).
Autenticação
Authorization: Bearer <JWT>
Cabeçalhos obrigatórios
Header | Valor |
Authorization | Bearer <seu-token> |
Content-Type | multipart/form-data (com boundary gerado automaticamente pela lib/cliente HTTP) |
Query Parameters
Parâmetro | Tipo | Obrigatório | Descrição |
ux_writing | boolean | Sim | Otimiza o texto segundo boas práticas de UX Writing. |
main_color | string | Sim | Cor predominante do documento em hexadecimal (ex.: #DB003C). |
logo_url | string (URL) | Não | URL pública (HTTP/HTTPS) da logo em PNG ou JPG para inserir no cabeçalho. |
download_type | string | Sim | Formato de saída: pdf, docx ou pptx. |
is_summary | boolean | Sim | Gera sumário clicável (índice) no documento final. |
highlights | boolean | Sim | Aplica destaques visuais (cores, caixas, ícones) às cláusulas principais. |
Body (multipart/form-data)
Campo | Tipo | Obrigatório | Descrição |
docx | Arquivo .docx | Sim | Contrato a ser convertido. |
Estrutura do documento
O arquivo deve conter apenas títulos, cláusulas e partes. Certifique-se de evitar os seguintes elementos no documento:
Exemplo de requisição (cURL)
bash
curl -X PATCH https://api.uxdoc.com.br/oneclick/analyze-clause-and-design \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: multipart/form-data" \
-F "docx=@/caminho/para/Contrato_Exemplo.docx" \
-F "ux_writing=true" \
-F "main_color=#DB003C" \
-F "logo_url=https://meusite.com/logo.png" \
-F "download_type=pdf" \
-F "is_summary=true" \
-F "highlights=true"
json
{
"document_url": "url"
}
O link expira após 24 h e o arquivo é removido automaticamente de nossos servidores.
Códigos de erro comuns
Código | Quando ocorre | Corpo (message) |
400 Bad Request | Falta campo obrigatório ou tipo de arquivo inválido | “Missing field: docx” / “Unsupported file type” |
401 Unauthorized | Token ausente ou inválido | “Invalid or expired token” |
500 Internal Server Error | Falha inesperada no processamento | “Unexpected error – try again later” |
Observações
POST /create-clause/generate-clause
Caso você precise receber o texto via stream (chunked), utilize o endpoint: /create-clause/generate-clause/stream
Cria uma cláusula pronta para uso a partir de três parâmetros: tipo de contrato, tipo de cláusula e condição desejada.
A cláusula é processada e não fica armazenada em nossos servidores.
Autenticação
Authorization: Bearer <JWT>
Cabeçalhos obrigatórios
Header | Valor |
Authorization | Bearer <seu-token> |
Content-Type | application/json |
Corpo da requisição (application/json)
Campo | Tipo | Obrigatório | Descrição |
contract_type | string | Sim | Nome do contrato ao qual a cláusula pertencerá (ex.: “Prestação de serviço”). |
clause_type | string | Sim | Tipo de cláusula a ser gerada (ex.: “Objeto”, “Pagamento”, “Prazo”). |
clause_condition | string | Sim | Condição ou detalhe específico que a cláusula deve contemplar (ex.: “Venda de carro”). |
jurisdiction | string | Sim | Seleciona a jurisdição na qual a cláusula deve ser gerada. Campos disponíveis para escolha: Brasil, México, Colômbia, Equador, Argentina, Chile, Uruguai, Peru, Espanha, EUA – Delaware, EUA – Flórida, EUA – Califórnia, EUA – Nova York, EUA – Texas, Canadá, Inglaterra, Austrália, Holanda, Itália, Portugal, Alemanha, França. |
output_language | string | sim | É o a linguagem na qual a cláusula será gerada. Opções disponíveis: Português, Inglês, Espanhol |
Dica: Quanto mais claro o texto em clause_condition, mais precisa será a cláusula resultante.
bash
curl -X POST https://api.uxdoc.com.br/create-clause/generate-clause \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"contract_type": "Prestação de serviço",
"clause_type": "Objeto",
"clause_condition": "Venda de carro"
}'
json
{
"document": "clausula aqui"
}
O texto acima é apenas um exemplo — a resposta refletirá exatamente os parâmetros enviados.
Códigos de erro comuns
Código | Quando ocorre | Corpo (message) |
400 Bad Request | Campo obrigatório ausente ou JSON malformado | “Missing field: clause_type” |
401 Unauthorized | Token ausente ou inválido | “Invalid or expired token” |
500 Internal Server Error | Falha inesperada na geração da cláusula | “Unexpected error – try again later” |
Observações
POST /create-contracts/generate-firts-questions
Sugere um conjunto inicial de perguntas que ajudam a coletar as informações necessárias para, em seguida, gerar um contrato completo.
Opcional: você pode pular esta rota e enviar os dados diretamente para o endpoint de criação de contrato, se preferir.
Autenticação
Authorization: Bearer <JWT>
Cabeçalhos obrigatórios
Header | Valor |
Authorization | Bearer <seu-token> |
Content-Type | application/json |
Corpo da requisição (application/json)
Campo | Tipo | Obrigatório | Descrição |
contract_type | string | Sim | Tipo de contrato que será gerado (ex.: “Prestação de serviço”). |
parts_number | string | Sim | Número de partes envolvidas (ex.: “2” ou “3”). |
object | string | Sim | Objeto principal do contrato (ex.: “Aluguel de cadeiras para festas infantis”). |
jurisdiction | string | Sim | Seleciona a jurisdição na qual as perguntas serão geradas. Campos disponíveis para escolha: Brasil, México, Colômbia, Equador, Argentina, Chile, Uruguai, Peru, Espanha, EUA – Delaware, EUA – Flórida, EUA – Califórnia, EUA – Nova York, EUA – Texas, Canadá, Inglaterra, Austrália, Holanda, Itália, Portugal, Alemanha, França. |
output_language | string | Sim | É o a linguagem na qual as perguntas serão geradas. Opções disponíveis: Português, Inglês, Espanhol |
bash
curl -X POST https://api.uxdoc.com.br/create-contracts/generate-firts-questions \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"contract_type": "Prestação de serviço",
"parts_number": "2",
"object": "Aluguel de cadeiras de festas de crianças"
}'
json
{
"questions": [
{
"question": "Pergunta aqui...."
}
]
}
Códigos de erro comuns
Código | Quando ocorre | Corpo (message) |
400 Bad Request | Campo obrigatório ausente ou JSON malformado | “Missing field: object” |
401 Unauthorized | Token ausente ou inválido | “Invalid or expired token” |
500 Internal Server Error | Falha inesperada durante a geração das perguntas | “Unexpected error – try again later” |
Observações
POST /create-contracts/generate-document
POST /create-contracts/generate-document/stream (retorno em stream, parágrafo a parágrafo)
Gera um contrato completo (em português) a partir dos dados fornecidos.
O endpoint padrão entrega o documento final em DOCX (Base64).
A variante /stream devolve o texto em chunks Markdown, permitindo exibir o contrato em tempo real enquanto ele é criado.
⚠️ Aceita apenas contratos. Outros tipos de documentos não são gerados.
Autenticação
Authorization: Bearer <JWT>
Cabeçalhos obrigatórios
Header | Valor |
Authorization | Bearer <seu-token> |
Content-Type | application/json |
Corpo da requisição (application/json)
Campo | Tipo | Obrigatório | Descrição |
contract_type | string | Sim | Nome do contrato a ser gerado (ex.: “Prestação de serviço”). |
parts_number | string | Sim | Quantidade de partes no contrato (ex.: “2” ou “3 partes”). |
object | string | Sim | Objeto do contrato (ex.: “Construção de shopping center”). |
docx_base64 | String | Não | Enviar contrato modelo caso queira que a IA use seu contrato como base para gerar o novo contrato. O contrato modelo deve ser em .docx e deve ser convertido em base64 para envio. |
questions | array<{ question: string; response: string; } > | Sim | Perguntas + respostas que detalham cláusulas. |
question | string | Sim | Texto da pergunta. |
response | string | Sim | Resposta dada (conteúdo será incorporado ao contrato). |
jurisdiction | string | Sim | Seleciona a jurisdição na qual o contrato será criado. Campos disponíveis para escolha: Brasil, México, Colômbia, Equador, Argentina, Chile, Uruguai, Peru, Espanha, EUA – Delaware, EUA – Flórida, EUA – Califórnia, EUA – Nova York, EUA – Texas, Canadá, Inglaterra, Austrália, Holanda, Itália, Portugal, Alemanha, França. |
output_language | string | Sim | É o a linguagem na qual o contrato será escrito. Opções disponíveis: Português, Inglês, Espanhol |
Boas práticas
• Inclua perguntas que cubram prazo, pagamento, responsabilidades, penalidades etc.
• Use linguagem clara para evitar ambiguidades.
bash
curl -X POST https://api.uxdoc.com.br/create-contracts/generate-document \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d @body.json # body.json contém o JSON de exemplo abaixo
json
{
"contract_type": "Contrato de Engineering, Procurement and Construction",
"parts_number": "2",
"object": "Projeto de engenharia, compras e construção de um shopping center",
"questions": [
{
"question": "Qual o prazo de vigência do contrato e as condições para sua prorrogação ou rescisão antecipada?",
"response": "Vigência de 24 meses, prorrogável por igual período..."
},
{
"question": "Quais são as obrigações específicas de cada uma das partes?",
"response": "Contratada: planejar, comprar materiais e construir..."
},
{
"question": "Qual a forma e condições de pagamento?",
"response": "Pagamentos conforme medições; multa de 10 % por atraso..."
}
]
}
json
{
"base64_document": "UEsDBAoAAAAAAPpk6loA..."
}
base64_document contém o DOCX completo em Base64.
Para baixar, basta decodificar e salvar com a extensão .docx.
Fluxo chunked (text/event-stream ou application/x-ndjson):
{ "chunk": "### 1. Partes\n\n**Contratante:** ..." }
{ "chunk": "### 2. Objeto\n\nA contratada realizará ..." }
Cada chunk traz um bloco em Markdown até a conclusão do documento.
Códigos de erro comuns
Código | Quando ocorre | Corpo (message) |
400 Bad Request | Campo obrigatório ausente ou JSON malformado | “Missing field: questions” |
401 Unauthorized | Token ausente ou inválido | “Invalid or expired token” |
500 Internal Server Error | Falha inesperada na geração | “Unexpected error – try again later” |
Observações
POST /risk-analysis
POST /risk-analysis/stream (retorno em stream para exibir progresso em tempo real)
Lê um contrato em DOCX, identifica e qualifica riscos jurídicos, sugerindo cláusulas otimizadas e recomendações de mitigação.
A versão /stream devolve o relatório em blocos JSON — ideal para exibir cada item conforme é processado.
⚠️ Somente contratos em DOCX são aceitos; outros tipos de documento são recusados.
Autenticação
Authorization: Bearer <JWT>
Cabeçalhos obrigatórios
Header | Valor |
Authorization | Bearer <seu-token> |
Content-Type | application/json |
Corpo da requisição (application/json)
Campo | Tipo | Obrigatório | Descrição |
contract_position | string | Sim | Sua posição no contrato (ex.: “Contratante”, “Contratada”, “Advogado do contratante”). |
specific_organizational_risks | string | Não | Matriz ou lista de riscos específicos da sua organização (ex.: “Pagamentos em 60 dias”). |
document_base64 | string (Base64) | Sim | Contrato DOCX, convertido para Base64. |
jurisdiction | string | Sim | Seleciona a jurisdição na qual o contrato será analisado. Campos disponíveis para escolha: Brasil, México, Colômbia, Equador, Argentina, Chile, Uruguai, Peru, Espanha, EUA – Delaware, EUA – Flórida, EUA – Califórnia, EUA – Nova York, EUA – Texas, Canadá, Inglaterra, Austrália, Holanda, Itália, Portugal, Alemanha, França. |
output_language | string | Sim | É o a linguagem na qual as descrições da analise será gerada. Opções disponíveis: Português, Inglês, Espanhol. |
Dica: Prefira Base64 puro (sem prefixo data:) para evitar erros de decodificação.
bash
curl -X POST https://api.uxdoc.com.br/risk-analysis \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"contract_position": "Contratante",
"specific_organizational_risks": "Pagamentos em 60 dias",
"document_base64": ""
}'
Para streaming, basta trocar a URL para /risk-analysis/stream e adicionar:
-H "Accept: text/event-stream"
jsonc
{
"risk_analysis": {
"clauses": [ // Lista de cláusulas analisadas
{
"clause_name": "string", // Título exato da cláusula no contrato
"risk_level": "Baixo|Médio|Alto|Essencial",
"original_text": "string", // Texto original da cláusula
"risk_description": "string", // Por que há risco
"recommendations": "string", // Sugestões de mitigação
"optimized_clause": "string" // Versão sugerida da cláusula
}
],
"directions": { // Estratégias e próximos passos
"trading_strategies": [ { "item": "string" } ],
"compliance_legal_updates": [ { "item": "string" } ],
"next_steps": [ { "item": "string" } ]
}
}
}
Fluxo text/event-stream (ou application/x-ndjson) em que cada linha é um pedaço do JSON:
Implementação sugerida
Códigos de erro comuns
Código | Quando ocorre | Corpo (message) |
400 Bad Request | Campo obrigatório ausente ou JSON malformado | “Missing field: document_base64” |
401 Unauthorized | Token ausente ou inválido | “Invalid or expired token” |
500 Internal Server Error | Falha inesperada na análise | “Unexpected error – try again later” |
Observações