Saltar al contenido principal

API pública

Libre WebUI expone una API compatible con OpenAI para que los SDK, editores y scripts existentes puedan apuntar a tu instancia cambiando únicamente la URL base.

Autenticación

Crea un token de API con ámbitos limitados en Configuración → Cuenta → Tokens de API (los tokens usan el prefijo lwk_ y se almacenan con hash). La superficie /v1 requiere el ámbito chat. Pasa el token como una clave bearer normal:

export OPENAI_BASE_URL="https://your-instance/v1"
export OPENAI_API_KEY="lwk_..."

Las solicitudes están sujetas al límite de velocidad por token (600 solicitudes por minuto) y al límite compartido del chat.

Endpoints

EndpointFinalidad
GET /v1/modelsModelos disponibles (locales o proporcionados por plugins de proveedores)
POST /v1/chat/completionsCompletado de chat sin estado, con o sin streaming

POST /v1/chat/completions acepta el cuerpo habitual: model, messages (system/user/assistant; las partes de texto multimodales se aplanan), stream, temperature, top_p, max_tokens/max_completion_tokens, seed y stop. Las respuestas en streaming son tramas SSE chat.completion.chunk terminadas por data: [DONE]; las respuestas sin streaming incluyen el recuento de tokens en usage cuando el proveedor lo comunica.

curl "$OPENAI_BASE_URL/chat/completions" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2",
"messages": [{"role": "user", "content": "One sentence on herons."}]
}'

Límites deliberados

La superficie /v1 ofrece inferencia sin estado: nunca crea chats, modifica tu base de conocimientos ni ejecuta herramientas. Las conversaciones con estado, eventos duraderos y reproducibles, cancelación por identidad, encolado idempotente y el bucle de herramientas nativo están en la API de eventos nativa /api/chat, que los mismos tokens pueden invocar con el ámbito chat. Los roles que no sean system/user/assistant (por ejemplo, tool) se rechazan en lugar de aceptarse silenciosamente.

Documentación relacionada