Pular para o conteúdo

Referência da API

Messages

POSThttps://api.offmem.app/v1/messages

Gera a resposta do modelo no formato Messages da Anthropic. Funciona com os SDKs oficiais da Anthropic e com o Claude Code.

pip install anthropic
curl https://api.offmem.app/v1/messages \
  -H "x-api-key: $OFFMEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "offmem-glm-5.3-abliterated",
    "max_tokens": 1024,
    "system": "Responda em português.",
    "messages": [{"role": "user", "content": "Explique o que é uma API em uma frase."}]
  }'

Cabeçalhos

x-api-keyom_...obrigatório
Chave de API. Authorization: Bearer também funciona.
Content-Typeapplication/jsonobrigatório
Corpo em JSON.
anthropic-versionstring
Aceito e não obrigatório.

Corpo

modelstringobrigatório
Id do modelo, ou um nome claude-* (veja Ids aceitos). A resposta repete o nome enviado.
max_tokensintegerobrigatório
Limite de tokens de saída, a partir de 1.
messagesarrayobrigatório
Turnos com role user ou assistant. Mensagens com role system entram em system.
systemstring | array
Instruções, em texto ou blocos text.
temperaturenumber
Repassado ao modelo.
top_pnumber
Repassado ao modelo.
stop_sequencesstring[]
Até 4 sequências; as excedentes são ignoradas.
toolsarray
Ferramentas próprias (name, description, input_schema). Ferramentas de servidor da Anthropic, como busca na web, são ignoradas.
tool_choiceobject
auto, any, tool (com name) ou none.
streamboolean
Devolve server-sent events da Anthropic.

Outros campos, como top_k, metadata e thinking, são ignorados.

Blocos de conteúdo

BlocoSuporte
textAceito.
imageBase64 (source.type: base64) ou URL (source.type: url), só em modelos com visão.
tool_useAceito, nos turnos do assistente.
tool_resultAceito, com conteúdo em texto. is_error: true chega ao modelo como erro.
thinkingIgnorado.
documentNão aceito: 400. Envie o texto.

Resposta

200 OK
{
  "id": "msg_...",
  "type": "message",
  "role": "assistant",
  "model": "offmem-glm-5.3-abliterated",
  "content": [{ "type": "text", "text": "..." }],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 24,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0,
    "output_tokens": 40
  }
}
stop_reasonQuando
end_turnO modelo terminou a resposta.
max_tokensAtingiu max_tokens.
tool_useO modelo chamou uma ferramenta.
refusalA resposta foi bloqueada por filtro de conteúdo.

usage.input_tokens não inclui os tokens em cache, que vêm em cache_read_input_tokens. cache_creation_input_tokens é sempre 0. O identificador da requisição vem no cabeçalho request-id.

Streaming

Com "stream": true, os eventos seguem a ordem da Anthropic: message_start, content_block_start, content_block_delta (text_delta ou input_json_delta), content_block_stop, message_delta e message_stop. Falha no meio do fluxo chega como evento error.

Contar tokens

POSThttps://api.offmem.app/v1/messages/count_tokens

Devolve {"input_tokens": n}, estimativa de 3 caracteres por token sobre system, messages e tools. Sem custo; exige chave válida.

cURL
curl https://api.offmem.app/v1/messages/count_tokens \
  -H "x-api-key: $OFFMEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "offmem-glm-5.3-abliterated", "messages": [{"role": "user", "content": "ok"}]}'
Para usar o Claude Code com o offmem, veja Agentes de programação.