- NSFW Video API
- ¿OpenWebUI tiene API? Sí, en dos direcciones
¿OpenWebUI tiene API? Sí, en dos direcciones
¿Open WebUI tiene una API? Sí, y la pregunta tiene dos significados: Open WebUI expone una API propia y también puede usar la API de otro servicio como backend de modelos. Esta página explica ambos casos y muestra cómo encajan entre sí.

Dos APIs diferentes a las que se refiere la gente
Cuando alguien pregunta si Open WebUI tiene una API, podría estar preguntando sobre cualquiera de los dos flujos de comunicación. Mezclarlos es la principal razón por la que las guías de configuración parecen confusas, así que ayuda separarlos primero.
- Entrada: tu programa envía peticiones a Open WebUI. Actúa como un servidor con endpoints para chat, modelos y archivos, protegido por una clave de API que generas dentro de la aplicación.
- Salida: Open WebUI envía peticiones a un servidor de modelos para que su ventana de chat tenga con qué conversar. Esta es la conexión que configuras en Configuración de administración.
Así que la respuesta corta es sí a ambas. El proyecto documenta una API con un endpoint de chat al estilo de OpenAI, y admite conectar a cualquier servidor que hable el protocolo de OpenAI. Detalles como las rutas exactas y el manejo de claves pueden cambiar entre versiones, así que consulta la documentación de la versión que ejecutes.
Este sitio proporciona el modelo en el lado saliente: una API de texto alojada y compatible con OpenAI con el único ID de modelo uncensored. No es Open WebUI y no lo ejecuta por ti. Open WebUI es un software que alojas tú mismo.
Uso de la API propia de Open WebUI
Open WebUI permite a un usuario con sesión iniciada crear una clave de API en la configuración de su cuenta. Con esa clave puedes llamar a sus endpoints desde scripts. El endpoint de chat sigue la estructura de OpenAI, por lo que el código de cliente existente a menudo puede apuntar a él. La ruta documentada por el proyecto en el momento de la escritura es /api/chat/completions; confírmalo con tu versión.
# Open WebUI running locally on port 3000, key created in Settings > Account
curl http://localhost:3000/api/chat/completions \
-H "Authorization: Bearer $OPENWEBUI_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Summarize this scene in one line."}]}'
Ten en cuenta que aquí el nombre del modelo es el que Open WebUI haya registrado. Si conectaste esta API como backend, ese nombre es uncensored. La clave en esta petición es una clave de Open WebUI, no la clave de API del modelo. Son dos credenciales distintas con dos tareas separadas.
¿Por qué usar la API entrante? Es útil cuando quieres las funcionalidades adicionales de Open WebUI detrás de tu programa, como sus colecciones de conocimiento almacenadas, sus cuentas por usuario o sus ajustes predefinidos de modelo, y deseas acceder a ellos sin un navegador.
Uso de una API externa como backend
La otra dirección es la que la mayoría de la gente necesita. Open WebUI tiene una sección para conexiones compatibles con OpenAI donde introduces una URL y una clave. Para este servicio los valores son:
- URL:
https://api.nsfwvideo.top/v1 - Clave: la de la página de clave
- Modelo:
uncensored, descubierto automáticamente a través deGET /v1/models
Paso a paso: abre Configuración de administración, ve a Conexiones, añade una conexión de API de OpenAI, pega la URL y la clave, guarda y elige el modelo en un nuevo chat. Si prefieres un inicio desde la línea de comandos, establece las variables de entorno OPENAI_API_BASE_URL y OPENAI_API_KEY al iniciar el contenedor.
docker run -d -p 3000:8080 \
-e OPENAI_API_BASE_URL=https://api.nsfwvideo.top/v1 \
-e OPENAI_API_KEY=$API_KEY \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
Ten en cuenta que Open WebUI guarda muchos ajustes en su base de datos al primer inicio. Si más tarde cambias una variable de entorno y no pasa nada, edita la conexión en el panel de administración. El inicio rápido tiene el formato de petición que espera el backend si quieres verificarlo con curl.
Encadenar los dos
Puedes usar ambos flujos a la vez. Tu aplicación llama a la API entrante de Open WebUI con una clave de Open WebUI, Open WebUI reenvía el chat al backend que configuraste y la respuesta fluye de vuelta. Esa disposición tiene sentido en algunas situaciones: un equipo ya ejecuta Open WebUI con cuentas y quiere que los scripts compartan sus ajustes predefinidos, o quieres un solo lugar que contenga configuraciones de personaje tanto para humanos como para programas.
Añade un salto. Cada petición pasa ahora por tu servidor de Open WebUI antes de llegar a la API del modelo, así que hay una cosa más que mantener en ejecución, parchear y asegurar. Los límites de peticiones también se apilan de forma poco obvia: la clave del backend permite 8 peticiones simultáneas y 300 por minuto para una clave completa, y todos los usuarios y scripts que pasan por tu instancia de Open WebUI comparten esa cuota. Si el backend responde con HTTP 429, con código de error rate_limited o concurrency, el fallo suele aparecer como un error en Open WebUI y en tu cliente.
Cuándo omitir Open WebUI y llamar a la API directamente
Si solo necesitas un script que genere texto, como esquemas, descripciones de escenas o narración en borrador, Open WebUI es innecesario. Este servicio es un endpoint compatible con OpenAI normal, por lo que el SDK estándar se comunica directamente con él.
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwvideo.top/v1", api_key=os.environ["API_KEY"])
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You write concise shot lists for short films."},
{"role": "user", "content": "Shot list for a ninety second chase through a night market."},
],
temperature=0.7,
)
print(resp.choices[0].message.content)
Las llamadas directas te dan streaming sobre SSE, llamadas a funciones, modo JSON y todos los parámetros de muestreo sin una capa intermedia. Open WebUI es la mejor opción cuando quieres una interfaz de chat para personas, con historial, cuentas y presets. Un script es la mejor opción para trabajo por lotes. La API produce solo texto: no renderiza vídeo, imágenes ni audio, así que para un proyecto de vídeo aporta las partes escritas como guiones y prompts para otras herramientas. La página de la canalización de vídeo detalla ese uso.
Una guía rápida de decisiones
- Quieres una ventana de chat para ti o un equipo: ejecuta Open WebUI y añade la conexión saliente.
- Quieres que los scripts reutilicen presets o cuentas de Open WebUI: usa su API entrante con una clave de Open WebUI.
- Quieres generación de texto por lotes: llama a la API del modelo directamente con el SDK de OpenAI y omite la capa extra.
- Quieres imágenes o voz: ni Open WebUI ni esta API de texto las producirán por sí mismas. Conecta herramientas separadas para ese paso.
Sea cual sea la ruta que elijas, los hechos del lado del modelo se mantienen iguales: una ventana de contexto de 100.000 tokens compartida por prompt y respuesta, llamadas a funciones y modo JSON disponibles, y una regla estricta contra el contenido sexual que involucre a menores de edad.
Notas de seguridad para exponer cualquiera de las APIs
Trata ambas claves como secretos. La clave de Open WebUI otorga lo que el usuario que la creó puede hacer dentro de tu instancia; la clave de API del modelo gasta tu saldo de crédito prepago. No pegues ninguna en código del lado del cliente ni en repositorios públicos.
- Coloca Open WebUI detrás de HTTPS si es accesible más allá de tu propia máquina.
- Crea claves de Open WebUI separadas por script para que puedas revocar una sin romper las demás.
- Rota la clave de la API del modelo si alguna vez aparece en un registro o una captura de pantalla.
- Observa el encabezado de respuesta
X-Balance-USDen el backend para ver el gasto por llamada.
En cuanto a la privacidad, los prompts enviados a esta API no se usan para entrenamiento. Open WebUI en sí mismo almacena el historial de chat en su propia base de datos en tu servidor, así que tus opciones de alojamiento determinan quién puede leer eso.
Cuánto cuesta ejecutar esta configuración
Open WebUI es software gratuito que alojas; tu costo es el servidor más los tokens. Los tokens se facturan a $0.15 por 1M de entrada y $0.50 por 1M de salida, desde crédito prepago sin suscripción. Toma un turno de chat con 3,000 tokens de entrada y 500 tokens de salida: 3,000 x $0.15 / 1M = $0.00045 para entrada y 500 x $0.50 / 1M = $0.00025 para salida, un total de $0.0007. Mil turnos de este tipo cuestan $0.70.
Las recargas son cualquier cantidad entera de 20 $ a 500 $, con +5 % desde 50 $, +10 % desde 100 $ y +15 % desde 200 $. El pago es por cripto, USDT en TRC20 o USDC en Base. Las peticiones fallidas o rechazadas no se cobran y el crédito no caduca. Los usuarios nuevos pueden reclamar una prueba de 0,50 $ durante 7 días con un clic y sin datos de pago. Consulta la página de precios para ver el panorama completo.
Un recordatorio sobre el contenido: el modelo está ajustado para responder sin rechazos de contenido para uso adulto lícito, y el contenido sexual que involucre a menores de edad nunca está permitido.
Más guías
Preguntas y respuestas
¿Open WebUI tiene su propia API?
Sí. Puedes crear una clave de API en la configuración de tu cuenta y llamar a sus endpoints, incluida una ruta de chat estilo OpenAI. Confirma las rutas exactas en la documentación de tu versión.
¿Puede Open WebUI usar una API externa compatible con OpenAI?
Sí. Agrégala en Configuración de administrador, Conexiones con la URL base y la clave. Para este servicio, la URL es https://api.nsfwvideo.top/v1 y el modelo es uncensored.
¿La clave de Open WebUI y la clave de API del modelo son la misma?
No. La primera autoriza las llamadas a tu servidor de Open WebUI. La segunda autoriza las llamadas a la API del modelo y gasta tu saldo.
¿Necesito Open WebUI para usar esta API?
No. Cualquier SDK de OpenAI o cliente HTTP puede consumirlo directamente. Open WebUI es solo una interfaz de chat conveniente.
Tu clave está a un formulario de distancia
Crea una cuenta, copia la clave, cambia la URL base. Esa es toda la configuración.