API compatible con OpenAI: qué es base_url y cómo cambiar
Una API compatible con OpenAI acepta las mismas solicitudes que la de OpenAI. Cambia base_url, la clave y el id del modelo, y tu código envía su primera solicitud a CheapTokens.

En esta página
Una API compatible con OpenAI es una API que acepta solicitudes en el mismo formato que la API Chat Completions de OpenAI y responde en el mismo formato. Para mover una aplicación a otro proveedor, normalmente cambias tres valores: base_url (dónde van las solicitudes), la clave de API y el id del modelo. El resto de tu código, incluida la lista de mensajes y la forma en que lees la respuesta, permanece igual.
Esta guía explica la idea en palabras sencillas y termina con una primera solicitud funcional a CheapTokens en Python y curl. Los datos sobre CheapTokens se verificaron con su documentación el 22 de octubre de 2026.
¿Qué significa "compatible con OpenAI"?#
Una API es un conjunto de reglas para comunicarse con un servicio a través de internet (si la palabra es nueva, empieza por cómo funciona tu primera solicitud a una API). El formato de chat de OpenAI se convirtió en un estándar común: muchos proveedores y herramientas aceptan el mismo cuerpo de solicitud y devuelven la misma estructura de respuesta. Una API así se denomina compatible con OpenAI.
En la práctica, eso significa que tres cosas son iguales en cualquier proveedor compatible:
- La solicitud: un cuerpo JSON con un campo
modely una listamessages, donde cada mensaje tiene unrole(system,useroassistant) ycontent. - La ruta del endpoint:
/, añadida después de la URL base.chat/ completions - La respuesta: un objeto JSON donde el texto generado está en
choices[0]..message. content
Como el formato es compartido, los SDK oficiales y muchas aplicaciones pueden comunicarse con cualquier proveedor compatible. Solo necesitan saber dónde enviar la solicitud.
¿Qué es base_url?#
base_url es la dirección con la que empieza cada solicitud. Un SDK construye la dirección completa añadiéndole la ruta de la llamada.
Desplaza la tabla hacia la derecha →
| Parte | Ejemplo |
|---|---|
base_url |
https:/ |
| Ruta añadida por el SDK | / |
| Dirección completa de la solicitud | https:/ |
Así que cuando estableces un base_url diferente, el mismo código envía el mismo tipo de solicitud a un servidor diferente. La URL base de CheapTokens es https:/. Su API es compatible con OpenAI Chat Completions y con Anthropic Messages, y un único saldo prepago cubre todos los modelos.
Los tres valores que cambias#
Desplaza la tabla hacia la derecha →
| Valor | Qué es | De dónde viene |
|---|---|---|
base_url |
Dirección de la API | https:/ |
| Clave de API | Tu contraseña secreta para la API | Tu cuenta de CheapTokens. Consulta qué es una clave de API y cómo guardarla de forma segura |
| Id del modelo | El nombre exacto del modelo en el campo model |
La documentación de CheapTokens |
El id del modelo merece atención. Distintos proveedores dan ids diferentes al mismo modelo, así que un id de otro servicio no funcionará aquí. Toma los ids de la documentación de CheapTokens. Los ids disponibles ahora:
Desplaza la tabla hacia la derecha →
| Modelo | Id del modelo | Contexto | Salida máxima por respuesta |
|---|---|---|---|
| GLM-5.3-Flash | zai- |
390K | 8.192 tokens |
| DeepSeek-V4-Flash | deepseek- |
380K | 32.768 tokens |
| MiniMax-M2.7 | MiniMaxAI/ |
180K | 8.192 tokens |
DeepSeek-V4-Flash devuelve hasta 32.768 tokens por respuesta y tiene un contexto de 380K; GLM-5.3-Flash tiene un contexto de 390K; MiniMax-M2.7 tiene un contexto de 180K. Los tres se facturan con el mismo saldo, así que cambiar entre ellos significa cambiar solo el id del modelo.
Primera solicitud en Python#
Instala el paquete openai y luego guarda tu clave en una variable de entorno en lugar de escribirla en el código:
pip install openai
export CHEAPTOKENS_API_KEY="YOUR_CHEAPTOKENS_KEY"Ahora el código. La única diferencia con un ejemplo estándar de OpenAI es el argumento base_url, la clave y el id del modelo:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1", # 1. where requests go
api_key=os.environ["CHEAPTOKENS_API_KEY"], # 2. your CheapTokens key
)
response = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7", # 3. model id from the docs
messages=[
{"role": "system", "content": "You answer briefly."},
{"role": "user", "content": "Explain base_url in one sentence."},
],
)
print(response.choices[0].message.content)La clave del ejemplo es un marcador de posición: sustituye YOUR_ por tu propia clave y nunca hagas commit de una clave real en un repositorio.
Si una aplicación que ya tienes lee la configuración de un archivo de configuración o de variables de entorno, no necesitas editar su código en absoluto. Busca campos llamados base URL, API base o endpoint, y rellena allí los mismos tres valores.
La misma solicitud con curl#
curl muestra lo que el SDK hace entre bastidores: la URL base más la ruta, la clave en la cabecera Authorization y un cuerpo JSON.
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [
{"role": "user", "content": "Explain base_url in one sentence."}
]
}'Qué deberías ver#
Cuando todo está configurado correctamente, el script de Python imprime una respuesta de texto breve y curl imprime un objeto JSON. Busca la lista choices: el texto de la respuesta está en choices[0].. Si ves eso, tu primera solicitud a CheapTokens funcionó y puedes pasar a tu aplicación real.
¿Cuánto cuesta?#
La facturación es por tokens, contados por separado para la entrada y la salida (consulta tokens de entrada vs tokens de salida). Por ejemplo, MiniMax-M2.7 cuesta actualmente $0.05 por 1M de tokens de entrada y $0.15 por 1M de tokens de salida. La tabla de abajo siempre muestra los precios actuales de todos los modelos, sin recargos en horas punta.
| Modelo | Contexto | Entrada $/1M | Salida $/1M | OpenRouter entrada | OpenRouter salida |
|---|---|---|---|---|---|
| GLM-5.3-Flash reasoning | 390K | $0.02 | $0.04 | $0.0413 | $0.0758 |
| DeepSeek-V4-Flash | 380K | $0.015 | $0.10 | $0.0475 | $0.1568 |
| MiniMax-M2.7 | 180K | $0.05 | $0.15 | $0.30 | $1.20 |
Precios en USD por 1M de tokens. Las cifras de OpenRouter se muestran para comparación y pueden cambiar.
Los precios de la lista completa de modelos también están en la página de precios de CheapTokens.
Si no funciona#
- Error de autenticación (normalmente 401): falta la clave, está mal escrita o tiene espacios extra. Comprueba que la variable de entorno está definida en la misma terminal donde ejecutas el script.
- "Not found" (normalmente 404): revisa
base_url. Debe terminar en/v1, y no deberías añadir/tú mismo cuando usas un SDK, o la ruta se duplicará.chat/ completions - Modelo desconocido: copia el id del modelo exactamente de la tabla de arriba o de la documentación, incluidas las mayúsculas y la parte anterior a la barra.
- Sin conexión o tiempo de espera agotado: consulta errores de conexión comunes y cómo solucionarlos.
- Respuesta cortada a mitad de frase: se alcanzó el límite
max_tokens, lo cual se trata en por qué una respuesta de IA se detiene a mitad de frase.
Próximos pasos#
Una vez que la primera solicitud funciona, puedes añadir streaming en Python, introducir los mismos tres valores en tu editor o agente, o leer cómo leer los nombres de modelos de IA. Los detalles de configuración y una lista completa de modelos están en la documentación de CheapTokens.



