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 anthropiccurl 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: Bearertambé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
userouassistant. Mensagens com rolesystementram emsystem. 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_choiceobjectauto,any,tool(comname) ounone.streamboolean- Devolve server-sent events da Anthropic.
Outros campos, como top_k, metadata e thinking, são ignorados.
Blocos de conteúdo
| Bloco | Suporte |
|---|---|
text | Aceito. |
image | Base64 (source.type: base64) ou URL (source.type: url), só em modelos com visão. |
tool_use | Aceito, nos turnos do assistente. |
tool_result | Aceito, com conteúdo em texto. is_error: true chega ao modelo como erro. |
thinking | Ignorado. |
document | Não aceito: 400. Envie o texto. |
Resposta
{
"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_reason | Quando |
|---|---|
end_turn | O modelo terminou a resposta. |
max_tokens | Atingiu max_tokens. |
tool_use | O modelo chamou uma ferramenta. |
refusal | A 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 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"}]}'