← Blog
IntegraciónGPT APIClaude API

¿Qué es una API compatible con OpenAI? Cómo funciona y en qué difiere

(los precios del texto siguen la lista de precios actual)

Respuesta corta

Una API compatible con OpenAI es cualquier API HTTP que acepta las mismas solicitudes que la API de OpenAI y responde con el mismo formato: las mismas rutas (/v1/chat/completions, /v1/models y a menudo /v1/responses), los mismos campos JSON y el mismo encabezado Authorization: Bearer con la clave. Por eso los SDK oficiales de OpenAI y las muchas herramientas basadas en ellos pueden usarla cambiando solo dos cosas: la base URL y la clave de API. «Compatible» describe el formato de las solicitudes, no el modelo que hay detrás, y cada servicio admite una parte distinta de las funciones de OpenAI, así que prueba lo que necesites.

Esta guía la publica APIVAI, una pasarela compatible con OpenAI para modelos Claude y GPT. Los ejemplos usan su dirección; los mismos pasos sirven con cualquier servicio compatible.

Qué cubre la «compatibilidad»

La mayoría de los servicios copian el núcleo de la API Chat Completions de OpenAI:

ParteQué acepta o devuelve un servicio compatible
POST /v1/chat/completionsUn ID de modelo en model y un array messages de {"role": ..., "content": ...}
Respuestachoices[0].message.content, finish_reason y un objeto usage (prompt_tokens, completion_tokens, total_tokens)
Streaming"stream": true devuelve server-sent events, un fragmento data: {...} por trozo de texto, terminando en data: [DONE]
Herramientastools con parameters en JSON Schema; el modelo responde con tool_calls y tú devuelves los resultados como mensajes role: "tool"
GET /v1/modelsLa lista de IDs de modelo que puede usar tu clave
AutenticaciónAuthorization: Bearer <clave>
ErroresJSON con la forma {"error": {"message": ..., "type": ..., "code": ...}}

Los servicios más recientes también implementan POST /v1/responses, la API Responses más nueva de OpenAI, que algunas herramientas (Codex CLI, por ejemplo) usan en lugar de Chat Completions. Menos servicios ofrecen /v1/embeddings o endpoints de imágenes, audio o archivos.

En qué difieren los servicios: lista de comprobación

La compatibilidad nunca es total. Antes de mover tráfico real, comprueba:

  • IDs de modelo. Cada servicio nombra los modelos a su manera. Léelos de GET /v1/models en lugar de reutilizar los nombres de OpenAI.
  • Parámetros ignorados. Los campos no admitidos suelen descartarse sin error: response_format, seed, logprobs, n > 1, presence_penalty o el indicador strict de las herramientas. La solicitud «funciona» pero hace menos de lo que crees.
  • Rangos de parámetros. Algunos modelos rechazan valores que OpenAI acepta (por ejemplo, una temperature mayor que 1, o fijar a la vez temperature y top_p).
  • Endpoints más allá del chat. Embeddings, imágenes, audio, archivos, batch y fine-tuning faltan con frecuencia.
  • Uso en streaming. El recuento de tokens en respuestas en streaming puede requerir "stream_options": {"include_usage": true} o no enviarse.
  • Errores y límites. El JSON de error suele tener la forma correcta, pero los códigos de estado, los mensajes y los encabezados de límite (x-ratelimit-*, retry-after) varían.
  • Herramientas e imágenes. Las admiten la mayoría de los modelos grandes, pero comprueba las llamadas en paralelo, el tool_choice forzado y las imágenes en el modelo exacto que vas a usar.

Quién ofrece una API compatible con OpenAI

Algunos ejemplos bien documentados:

ServicioBase URLNotas
Ollama (local)http://localhost:11434/v1Chat Completions, Completions, modelos, embeddings y un endpoint Responses sin estado; la clave es obligatoria pero se ignora
vLLM (autoalojado)http://localhost:8000/v1Se inicia con vllm serve <modelo>; sirve Chat Completions, Completions, Responses, embeddings y modelos
LM Studio (local)http://localhost:1234/v1Modelos, Chat Completions, Completions, Responses y embeddings
Anthropichttps://api.anthropic.com/v1/Anthropic la describe como una capa para probar y comparar modelos, no como una vía de producción a largo plazo; el caché de prompts y algunos campos solo están en su API nativa
Google Geminihttps://generativelanguage.googleapis.com/v1beta/openai/En beta, según Google
Pasarelas de APILa URL propia de la pasarelaReúnen modelos de varios proveedores tras una clave y un formato; APIVAI es una, para Claude y GPT (ver también APIVAI frente a OpenRouter)

Fíjate en las base URL: la mayoría terminan en /v1, la de Gemini no. Copia siempre la base URL de la documentación del proveedor.

Cómo cambiar una aplicación a otro servicio compatible

Los SDK oficiales de OpenAI leen dos variables de entorno, así que muchas aplicaciones cambian sin tocar el código:

export OPENAI_BASE_URL="https://api.apivai.com/v1"
export OPENAI_API_KEY="your-key"

O defínelas en el código. Python:

from openai import OpenAI

client = OpenAI(base_url="https://api.apivai.com/v1", api_key="your-key")
resp = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "Say hello in one sentence."}],
)
print(resp.choices[0].message.content)

Node.js:

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.apivai.com/v1", apiKey: "your-key" });
const resp = await client.chat.completions.create({
  model: "gpt-6-luna",
  messages: [{ role: "user", content: "Say hello in one sentence." }],
});
console.log(resp.choices[0].message.content);

Prueba con curl antes de tocar tu aplicación:

curl https://api.apivai.com/v1/models -H "Authorization: Bearer your-key"

La regla de /v1. Los SDK añaden /chat/completions a la base URL, así que la base URL ya debe incluir la versión (.../v1). Un 404 casi siempre significa que falta /v1 o está repetido. Cada herramienta añade algo distinto, así que sigue la guía de la tuya.

Herramientas que aceptan una URL compatible con OpenAI

La mayoría de las herramientas de IA para programar y chatear tienen un ajuste «custom OpenAI-compatible» u «OpenAI base URL». Guías paso a paso:

Llamar a Claude con el formato de OpenAI

La API propia de Claude usa otro formato (/v1/messages, x-api-key, un campo system de nivel superior). Para usar Claude desde una herramienta con formato OpenAI necesitas algo que traduzca: la capa de compatibilidad de Anthropic (arriba) o una pasarela como APIVAI, que acepta solicitudes en formato OpenAI con IDs de modelos Claude en https://api.apivai.com/v1. Las herramientas que hablan el formato de Anthropic de forma nativa, como Claude Code, pueden usar https://api.apivai.com directamente; consulta la guía de Claude Code y la documentación de la API.

Preguntas frecuentes

¿«Compatible con OpenAI» significa que funcionan todas las funciones de OpenAI?

No. Significa que coincide el formato básico de solicitudes y respuestas. Cada servicio admite una parte: chat y streaming casi siempre, herramientas e imágenes en la mayoría de los modelos grandes, y embeddings, audio, archivos y batch con mucha menos frecuencia. Los campos no admitidos suelen ignorarse en silencio, así que prueba las funciones de las que dependes.

¿Tengo que cambiar mi código?

Normalmente solo la base URL, la clave y el ID de modelo. Si tu código usa funciones exclusivas de OpenAI (por ejemplo, salidas estructuradas con response_format o la Assistants API), comprueba que el nuevo servicio las admite.

¿Puede el mismo código hablar con un modelo local?

Sí. Ollama, vLLM y LM Studio ejecutan un servidor compatible con OpenAI, así que el mismo código del SDK funciona con base_url en http://localhost:11434/v1, http://localhost:8000/v1 o http://localhost:1234/v1. Los IDs de modelo y las funciones admitidas cambian según el servidor y el modelo.

¿La base URL termina en /v1?

En la mayoría de los servicios, sí: el SDK añade /chat/completions, así que la base URL debe terminar en la versión. Algunos proveedores usan otra ruta (la de Gemini termina en /v1beta/openai/), así que cópiala de su documentación.

¿Cómo sé qué modelos admite un servicio?

Llama a GET /v1/models con tu clave; los IDs de la respuesta son los que van en model. Los precios y tamaños de contexto están en la página de precios del proveedor; para APIVAI, en la página de modelos.

¿Listo para empezar?

Obtén tu clave API en 30 segundos. Paga por uso de Claude y GPT.

Comenzar