Saltar al contenido
Consola

Referencia de la API

Chat completions

POSThttps://api.offmem.app/v1/chat/completions

Genera la respuesta del modelo en el formato Chat Completions de OpenAI. Funciona con los SDK oficiales de OpenAI.

curl https://api.offmem.app/v1/chat/completions \
  -H "Authorization: Bearer $OFFMEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "offmem-glm-5.3-flash-sem-censura",
    "messages": [{"role": "user", "content": "Explica qué es una API en una frase."}]
  }'

Encabezados

AuthorizationBearer om_...obligatorio
Clave de API. x-api-key también funciona.
Content-Typeapplication/jsonobligatorio
Cuerpo en JSON.

Cuerpo

modelstringobligatorio
Id del modelo. Ver Modelos.
messagesarrayobligatorio
Conversación en el formato de OpenAI (system, user, assistant, tool). No puede estar vacía. Las partes image_url solo en modelos con visión, y la URL debe ser data:image/...;base64 o https://. Otra URL recibe 400 invalido.
streamboolean
Devuelve la respuesta en partes, como server-sent events. Por defecto false. Otro tipo recibe 400 invalido.
stream_options.include_usageboolean
Con stream, añade un último evento con usage.
max_completion_tokens, max_tokensinteger
Límite de tokens de salida. Sin él, la respuesta se detiene en 8.192 tokens. Hasta 32.768; un valor mayor se reduce a él. El mismo límite se reserva del saldo antes de la llamada.
include_reasoningboolean
Devuelve el razonamiento del modelo en reasoning_content (en el stream y en la respuesta completa). Desactivado por defecto; los tokens de razonamiento se cobran en ambos casos.
ninteger
Solo 1. Otro valor recibe 400 invalido.
tools, tool_choicearray, string | object
Llamada a funciones en el formato de OpenAI, reenviada al modelo.
functions, function_call
No se aceptan: 400 invalido. Usa tools y tool_choice.
stopstring | string[]
Hasta 4 secuencias. Más de 4 recibe 400 invalido.
temperature, top_p, …
Los demás parámetros de OpenAI llegan al modelo tal como se envían. El soporte depende del modelo.

Campos eliminados

store, metadata, user y safety_identifier se descartan antes de que la solicitud llegue al modelo.

Respuesta

Objeto chat.completion de OpenAI. model trae el id de offmem y usage trae solo conteos de tokens: prompt_tokens, completion_tokens, total_tokens, prompt_tokens_details.cached_tokens y completion_tokens_details.reasoning_tokens, siempre presentes (0 cuando el modelo no los informa). En el stream, usage llega una vez, en el último fragmento (choices vacío), solo con stream_options.include_usage.

200 OK
{
  "id": "...",
  "object": "chat.completion",
  "created": 1762560000,
  "model": "offmem-glm-5.3-flash-sem-censura",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "..." },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 18,
    "completion_tokens": 32,
    "total_tokens": 50,
    "prompt_tokens_details": { "cached_tokens": 0 }
  }
}
x-offmem-request-idencabezado
Identificador de la solicitud, el mismo de la consola.

Streaming

Con "stream": true la respuesta es text/event-stream: eventos chat.completion.chunk y un data: [DONE] al final. El evento de uso solo llega cuando stream_options.include_usage es true.

curl -N https://api.offmem.app/v1/chat/completions \
  -H "Authorization: Bearer $OFFMEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "offmem-glm-5.3-flash-sem-censura",
    "stream": true,
    "stream_options": {"include_usage": true},
    "messages": [{"role": "user", "content": "Explica qué es una API en una frase."}]
  }'

Eventos

text/event-stream
data: {"id":"...","object":"chat.completion.chunk","model":"offmem-glm-5.3-flash-sem-censura","choices":[{"index":0,"delta":{"content":"..."}}]}

data: {"id":"...","object":"chat.completion.chunk","model":"offmem-glm-5.3-flash-sem-censura","choices":[],"usage":{"prompt_tokens":18,"completion_tokens":32,"total_tokens":50}}

data: [DONE]

Si la conexión se cierra antes del final, la solicitud se cobra por estimación: la entrada más lo que ya se entregó.

Duración

Una solicitud puede durar hasta 300 segundos.