Volver al blog

IA para principiantesGuía

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.

Por CheapTokens TeamPublicado el Actualizado el 5 min de lectura

Tres valores que cambiar al pasarse a una API compatible con OpenAI: base_url, clave de API e id del modelo
En esta página
  1. ¿Qué significa "compatible con OpenAI"?
  2. ¿Qué es base_url?
  3. Los tres valores que cambias
  4. Primera solicitud en Python
  5. La misma solicitud con curl
  6. Qué deberías ver
  7. ¿Cuánto cuesta?
  8. Si no funciona
  9. Próximos pasos

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 model y una lista messages, donde cada mensaje tiene un role (system, user o assistant) y content.
  • La ruta del endpoint: /chat/completions, añadida después de la URL base.
  • 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.

Parte Ejemplo
base_url https://api.cheaptokens.dev/v1
Ruta añadida por el SDK /chat/completions
Dirección completa de la solicitud https://api.cheaptokens.dev/v1/chat/completions

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://api.cheaptokens.dev/v1. 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#

Valor Qué es De dónde viene
base_url Dirección de la API https://api.cheaptokens.dev/v1
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:

Modelo Id del modelo Contexto Salida máxima por respuesta
GLM-5.3-Flash zai-org/GLM-5.3-Flash 390K 8.192 tokens
DeepSeek-V4-Flash deepseek-ai/DeepSeek-V4-Flash-0731 380K 32.768 tokens
MiniMax-M2.7 MiniMaxAI/MiniMax-M2.7 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:

bash
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:

python
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_CHEAPTOKENS_KEY 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.

bash
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].message.content. 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 /chat/completions tú mismo cuando usas un SDK, o la ruta se duplicará.
  • 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.