Ir para o conteúdo
Lianex

Documentação

Comece pela API

Uma URL, uma chave, o formato que o seu editor já conhece. Os capítulos abaixo são o contrato público — sem inventar rota.

Nesta página

Base URL

https://api.lianex.com.br/v1

Modelo

GET /v1/models · o id vem com a chave

Chave

Authorization: Bearer lianex_…

01 · Request

O primeiro token

Compatível com clientes OpenAI. A chave nasce em API, dentro da conta, e aparece uma vez. Prefixo lianex_.
bash
curl https://api.lianex.com.br/v1/chat/completions \
  -H "Authorization: Bearer lianex_SUA-CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"model":"lianex-model","conversation_id":"00","messages":[{"role":"user","content":"Continue o projeto."}]}'
python
from openai import OpenAI

client = OpenAI(
    api_key="lianex_SUA-CHAVE",
    base_url="https://api.lianex.com.br/v1",
)
client.chat.completions.create(
    model="lianex-model",
    extra_body={"conversation_id": "00"},
    messages=[{"role": "user", "content": "Continue o projeto."}],
)

stream: true devolve SSE. O cabeçalho Idempotency-Key vale no request sem stream — 24 horas, mesmo corpo.

bash
curl https://api.lianex.com.br/v1/chat/completions \
  -H "Authorization: Bearer lianex_SUA-CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"model":"lianex-model","conversation_id":"00","stream":true,"messages":[{"role":"user","content":"Continue o projeto."}]}'

02 · Chat

Continuidade no chat

Sem conversation_id, com null ou com 00, cada chamada abre um chat novo. A resposta sempre traz conversation_id. Reenvie esse id para continuar na mesma conversa, só com a mensagem nova.

A primeira chamada, com 00, devolve o id real:

json
{
  "id": "chatcmpl_...",
  "object": "chat.completion",
  "model": "lianex-model",
  "conversation_id": "6680621b-e345-4b29-a989-89836c15458e",
  "choices": [{ "message": { "role": "assistant", "content": "Olá! Como posso ajudar você hoje?" } }]
}

A chamada seguinte reenvia esse conversation_id e só a mensagem nova. Em fluxo sem conversa contínua, o campo volta null.

bash
curl https://api.lianex.com.br/v1/chat/completions \
  -H "Authorization: Bearer lianex_SUA-CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"model":"lianex-model","conversation_id":"6680621b-e345-4b29-a989-89836c15458e","messages":[{"role":"user","content":"Continua daqui."}]}'

Imagem e documento vão na mesma chamada, no content da última mensagem. Imagem: image_url com data URL (jpeg, png, gif, webp). Documento: file com file_data (pdf, txt, csv, md, docx, xlsx). Uma URL https também serve. Não há rota separada de upload.

json
{
  "model": "lianex-model",
  "conversation_id": "00",
  "messages": [{
    "role": "user",
    "content": [
      { "type": "text", "text": "O que tem aqui?" },
      { "type": "image_url", "image_url": { "url": "data:image/png;base64,..." } }
    ]
  }]
}

03 · Base

Arquivo certo, com citação

Documentos ficam na conta. A resposta aponta a origem. A API usa o contexto da mesma empresa — não um índice público.

04 · Conta

Onde a chave nasce

30 dias sem cartão: Chat, Base, modelos e CRM no teste. A chave é criada depois que você entra — em API, com resumo antes de qualquer consumo. Dá para restringir IP (lista ou fixar no primeiro).

05 · Modelos

O id não se adivinha

GET /v1/models exige a mesma chave. A lista é a da conta: id é o slug, owned_by é lianex. Use esse id em chat/completions. Sem chave, a rota não abre.
bash
curl https://api.lianex.com.br/v1/models \
  -H "Authorization: Bearer lianex_SUA-CHAVE"

06 · Limites

O teto padrão

A resposta traz X-RateLimit-Limit e, no 429, Retry-After. Os números abaixo são o piso de fábrica — a operação pode subir, não inventamos outro.
Por chave
60 pedidos / minuto
Por conta
180 pedidos / minuto
Por IP
120 pedidos / minuto
Mensagens no corpo
até 128
Tamanho do chat
até 20 MB
Anexos
até 5 · 15 MB cada
max_tokens
até 16 384
Paralelo por chave
até 8

07 · Erros

O corpo é sempre o mesmo

{ "error": { "message", "type", "code" }, "request_id" }. O X-Request-Id volta no cabeçalho. Guarde os dois se for abrir um chamado.
401invalid_api_key
Chave ausente, inválida ou revogada.
403ip_not_allowed
Este IP não está liberado nesta chave.
402insufficient_quota
Saldo pré-pago insuficiente.
404model_not_found
O id do modelo não existe nesta conta.
409idempotency_key_mismatch
Idempotency-Key reutilizada com outro corpo.
400file_unsupported
Tipo de arquivo fora da lista, ou mais de 5 anexos.
413payload_too_large
Corpo acima de 20 MB, arquivo acima de 15 MB, ou max_tokens acima do teto.
429rate_limit_exceeded
Janela de taxa. Veja Retry-After e X-RateLimit-*.
503model_not_configured
Nenhum modelo de API está ativo.
502provider_error
O provedor a montante falhou. Tente de novo.