Guía de integración
Apunta el base_url a Y-API y deja el resto de tu código como está. Los ejemplos de abajo funcionan tal cual se copian, y los 21 modelos comparten el mismo patrón.
Paso 1
Configuración básica
Sustituye estos tres elementos en cualquier SDK compatible con OpenAI. El api_key lo obtienes en la página «Claves de API» de la consola; el model, con cualquier ID de «Modelos disponibles».
- base_url
- https://api.y-api.bestvirtualgoods.com/v1
- api_key
- sk-... (créala en la consola)
- model
- deepseek/deepseek-v4-pro
Paso 2
Haz tu primera petición
Los tres fragmentos son equivalentes: copia el que ya estés usando.
curl https://api.y-api.bestvirtualgoods.com/v1/chat/completions \
-H "Authorization: Bearer $YAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek/deepseek-v4-pro",
"messages": [{"role": "user", "content": "¡Hola!"}]
}'import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.y-api.bestvirtualgoods.com/v1",
api_key=os.environ["YAPI_KEY"], # clave creada en la consola
)
response = client.chat.completions.create(
model="deepseek/deepseek-v4-pro",
messages=[{"role": "user", "content": "¡Hola!"}],
)
print(response.choices[0].message.content)import OpenAI from 'openai'
const client = new OpenAI({
baseURL: 'https://api.y-api.bestvirtualgoods.com/v1',
apiKey: process.env.YAPI_KEY, // clave creada en la consola
})
const response = await client.chat.completions.create({
model: 'deepseek/deepseek-v4-pro',
messages: [{ role: 'user', content: '¡Hola!' }],
})
console.log(response.choices[0].message.content)Avanzado
Streaming
Añade el parámetro stream: los fragmentos llegan en el mismo formato SSE que OpenAI, así que el cliente no necesita ningún tratamiento especial.
stream = client.chat.completions.create(
model="deepseek/deepseek-v4-pro",
messages=[{"role": "user", "content": "¡Hola!"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")Avanzado
Cambiar de modelo
Todos los modelos comparten el mismo base_url y la misma clave: cambiar solo significa modificar el campo model. El catálogo completo está en la página de modelos.
# barato, ideal para tareas frecuentes y por lotes
client.chat.completions.create(model="deepseek/deepseek-v4-flash", messages=msgs)
# más potente, ideal para razonamiento complejo
client.chat.completions.create(model="deepseek/deepseek-v4-pro", messages=msgs)Resolución de problemas
Gestión de errores
Dos errores son los más habituales, y ambos dejan rastro en el registro de peticiones de la consola.
| Código | Significado | Qué hacer |
|---|---|---|
| 401 | SignificadoLa clave no es válida o ha sido revocada. | Qué hacerComprueba en la página «Claves de API» de la consola que la clave sigue existiendo, o crea una nueva. |
| 429 | SignificadoEl crédito de la cuenta está agotado. | Qué hacerRecarga en https://y-api.bestvirtualgoods.com/app/billing: se recupera de inmediato, las claves siguen siendo válidas y no hay que cambiar código. |
Los demás códigos de estado y las formas del cuerpo de error siguen las convenciones de OpenAI, así que tu código de gestión de errores actual sirve tal cual.
¿Aún no tienes clave?
Inicia sesión con Google o GitHub: tu cuenta se abre automáticamente con una clave predeterminada.