Los valores que copiar
Cualquiera que busque la URL base de la API de Mimo necesita tres valores, y todo lo demás es un detalle de la herramienta que estás configurando.
| Ajuste | Valor |
|---|---|
| URL base | https://api.mimoapi.top/v1 |
| ID del modelo | uncensored |
| Cabecera de autenticación | Authorization: Bearer YOUR_KEY |
| Endpoint de chat | POST /v1/chat/completions |
| Lista de modelos | GET /v1/models |
El servicio es compatible con OpenAI, por lo que cualquier cliente que te permita cambiar la URL base y la clave de OpenAI funcionará. Es una API de texto alojada que ejecuta un modelo de pesos abiertos de un proveedor independiente; no es la API oficial de ningún proveedor de modelos. Solo texto: no hay generación de imágenes, audio o vídeo, ni embeddings ni ajuste fino, por lo que los clientes que esperen esos endpoints no los encontrarán. Si aún no tienes una clave, la página de claves te lleva un minuto.
URL base frente a endpoint completo
La confusión más común es entre la URL base y la URL del endpoint. La URL base termina en /v1. El endpoint es la base más una ruta. Los SDKs oficiales de OpenAI y la mayoría de las herramientas basadas en ellos unen los dos por ti.
- URL base:
https://api.mimoapi.top/v1 - Endpoint de chat:
https://api.mimoapi.top/v1/chat/completions - Endpoint de modelos:
https://api.mimoapi.top/v1/models
Cuando una pantalla de configuración pide una "URL base", "API base", "endpoint" o "host", lee su marcador de posición. Si el marcador de posición termina en /v1, pega la URL base. Si termina en /chat/completions, pega el endpoint completo de chat. Pegar el endpoint completo en un campo que espera una base produce /chat/completions/chat/completions, que no existe. Pegar solo el dominio desnudo en un campo que espera una base produce /chat/completions sin /v1, lo que falla de la misma manera.
Ten en cuenta también el host. La API vive en el subdominio api. El dominio principal del sitio sirve las páginas web, por lo que una solicitud a él con una ruta de API no llegará al modelo.
Python y Node
Con los SDKs oficiales estableces la URL base una vez al crear el cliente. Instala con pip install openai o npm install openai.
from openai import OpenAI
client = OpenAI(
base_url="https://api.mimoapi.top/v1",
api_key="YOUR_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Name three uses for a base URL."}],
max_tokens=150,
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.mimoapi.top/v1",
apiKey: process.env.LLM_API_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Name three uses for a base URL." }],
max_tokens: 150,
});
console.log(resp.choices[0].message.content);
Los SDKs de OpenAI para Python y Node también leen las variables de entorno OPENAI_BASE_URL y OPENAI_API_KEY cuando no pasas valores en el código. Eso permite redirigir un script existente sin editarlo: exporta las dos variables y el script hablará con esta API. Comprueba que el script no tenga codificado un modelo como un nombre de GPT; reemplázalo con uncensored.
curl para una prueba rápida
Una llamada HTTP simple elimina todas las demás variables, por lo que es la mejor primera comprobación. El primer comando lista los modelos y confirma la clave. El segundo envía una solicitud de chat.
export LLM_API_KEY="YOUR_KEY"
curl -s https://api.mimoapi.top/v1/models \
-H "Authorization: Bearer $LLM_API_KEY"
curl -s https://api.mimoapi.top/v1/chat/completions \
-H "Authorization: Bearer $LLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"ping"}],"max_tokens":20}' -i
La bandera -i imprime los encabezados de la respuesta. Busca X-Request-Id (cítalo si contactas a soporte), X-Balance-USD (tu crédito restante) y los dos encabezados de límite de peticiones, X-RateLimit-Limit-Requests y X-RateLimit-Limit-Concurrency. Para streaming, añade "stream": true al cuerpo y -N a curl para que la salida no se almacene en búfer. El inicio rápido de cinco minutos recorre streaming y llamadas a funciones después de esto.
LangChain, frontends de chat y otras herramientas
Las herramientas de terceros usan sus propias etiquetas, pero todas necesitan los mismos tres valores. Algunos patrones que verás:
- LangChain (Python):
ChatOpenAI(model="uncensored", base_url="https://api.mimoapi.top/v1", api_key="YOUR_KEY"). La misma clase funciona para cualquier servidor compatible con OpenAI. - SillyTavern y frontends de rol similares: elige una fuente de chat personalizada o genérica compatible con OpenAI, pega la URL base, añade la clave y escribe
uncensoredcomo nombre del modelo si la lista no se rellena sola. - Open WebUI y otras interfaces de chat autoalojadas: añade una conexión compatible con OpenAI en la configuración, usando la misma URL base y clave.
- Plugins de editores y scripts: busca "endpoint personalizado de OpenAI" o "sobreescritura de URL base" en la configuración del plugin.
Los nombres de menú de cada herramienta cambian entre versiones, así que confía en el propósito del campo en lugar de la etiqueta exacta. Si una herramienta insiste en comprobar la clave contra un proveedor fijo, no es compatible con endpoints personalizados y una herramienta diferente es la solución.
Cuando una herramienta ofrece un menú desplegable de modelos, suele rellenarlo llamando a GET /v1/models. Si el menú desplegable se queda vacío, escribe el ID del modelo a mano. Si la herramienta rechaza nombres de modelo desconocidos, busca una opción etiquetada como "modelo personalizado".
Solución de los errores de configuración habituales
Cuando falla una petición, el código de estado y la URL exacta acotan rápidamente la causa. Sigue esta lista.
- Error de autenticación. La clave falta, está truncada o tiene un espacio o una nueva línea al final. Pégala de nuevo y asegúrate de que el encabezado lea
Bearer, un espacio y luego la clave. - No encontrado. La ruta es incorrecta. Imprime la URL final que construye tu cliente. Debe ser exactamente
https://api.mimoapi.top/v1/chat/completions. Busca un/v1faltante, una ruta duplicada o el host incorrecto. - Modelo desconocido. Un nombre de modelo heredado de otro proveedor. Establece el modelo a
uncensored. - HTTP 429 con
rate_limitedoconcurrency. Superas las 300 peticiones por minuto o 8 a la vez (60 y 2 en una clave de prueba). Ralentiza o encola las peticiones. Un 429 con un encabezadoRetry-After: 5significa sobrecarga temporal; espera cinco segundos y reintenta. - Solicitud demasiado grande. El límite del cuerpo es 8 MB, y la ventana de contexto es de 100,000 tokens para prompt más completado. Recorta el historial.
- Funciona en curl, falla en el navegador. Llamar a la API directamente desde JavaScript del frontend expone tu clave a todos los visitantes. Enruta las llamadas a través de tu propio servidor.
Nunca pongas la clave en un repositorio público o en un paquete del lado del cliente. Almacénala en una variable de entorno y mantenla fuera de capturas de pantalla y tickets de soporte.
Próximos pasos tras la primera llamada exitosa
Una vez que la URL base funcione, vale la pena conocer algunas configuraciones. El streaming sobre SSE se activa con stream: true. Las llamadas a funciones usan tools y tool_choice, con los resultados enviados de vuelta como mensajes role: "tool". El modo JSON es response_format: {"type": "json_object"}. Los controles de muestreo como temperature, top_p, stop, seed y las penalizaciones se reenvían.
En cuanto al dinero, pagas $0.15 por cada 1M de tokens de entrada y $0.50 por cada 1M de tokens de salida desde el crédito prepago; la página de precios lista los tamaños de recarga y bonificaciones. El modelo está ajustado para responder sin rechazos de contenido para uso adulto legal, y el contenido sexual que involucre a menores nunca está permitido. Los prompts no se usan para entrenamiento.
