Documentación
Apigator es compatible con OpenAI. Apunta cualquier SDK de OpenAI a la base URL, usa tu clave de Apigator y llama a cientos de modelos (chat, imagen, audio, embeddings, decisiones) a través de un solo endpoint.
¿Buscas recetas para tareas e integraciones con herramientas (LangChain, Vercel AI SDK, Cursor, Cline)? Consulta el Cookbook.
Sin tarjeta: los modelos gratuitos funcionan con una clave recién creada.
Obtén una clave en el Panel y haz tu primera llamada de inmediato con un modelo gratuito: cuesta $0, así que no necesitas recargar. Cada cuenta nueva también empieza con un crédito de $0.042 (≈ 1 M de tokens del modelo de decisión Jev). Los modelos de pago se desbloquean cuando agregas saldo.
curl https://api.apigator.ai/v1/chat/completions \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"free/nemotron-nano-30b","messages":[{"role":"user","content":"Hello from Apigator!"}]}'from openai import OpenAI
client = OpenAI(base_url="https://api.apigator.ai/v1", api_key="sk-YOUR_KEY")
resp = client.chat.completions.create(
model="free/nemotron-nano-30b", # free — no balance needed
messages=[{"role": "user", "content": "Hello from Apigator!"}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apigator.ai/v1", apiKey: "sk-YOUR_KEY" });
const r = await client.chat.completions.create({
model: "free/nemotron-nano-30b", // free — no balance needed
messages: [{ role: "user", content: "Hello from Apigator!" }],
});
console.log(r.choices[0].message.content); free/nemotron-nano-30bfree/nemotron-super-120bfree/gemma-4-31b Cambia la base URL: esa es toda la integración. Elige tu lenguaje:
curl https://api.apigator.ai/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o","messages":[{"role":"user","content":"Hello!"}]}'from openai import OpenAI
client = OpenAI(base_url="https://api.apigator.ai/v1", api_key="sk-...")
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apigator.ai/v1", apiKey: "sk-..." });
const r = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(r.choices[0].message.content); Base URL https://api.apigator.ai/v1 · Autenticación Authorization: Bearer sk-YOUR_KEY (obtén una clave en el Panel).
No todo es chat. Cada modelo en /models indica el endpoint que usa; elige el correcto. Misma base URL, misma clave.
| Modalidad | Endpoint | Ejemplo de ID de modelo |
|---|---|---|
| Chat | POST /v1/chat/completions | gpt-4o |
| Generación de imágenes | POST /v1/images/generations | openai/gpt-image-1, fal_ai/fal-ai/flux/schnell |
| Texto a voz | POST /v1/audio/speech | elevenlabs-tts |
| Voz a texto | POST /v1/audio/transcriptions | groq/whisper-large-v3 |
| Embeddings | POST /v1/embeddings | openai/text-embedding-3-small |
| Generación de video (asíncrona) | POST /v1/videos | gemini/veo-3.1-fast-generate-preview |
| Decisión (Jev) | POST /v1/decisions | typesafe/jev-latest |
Los ejemplos en Python asumen el client de Inicio rápido.
curl https://api.apigator.ai/v1/images/generations \
-H "Authorization: Bearer sk-..." \
-d '{"model":"openai/gpt-image-1","prompt":"a red crocodile mascot","n":1}'client.images.generate(model="openai/gpt-image-1", prompt="a red crocodile mascot", n=1)const img = await client.images.generate({
model: "openai/gpt-image-1",
prompt: "a red crocodile mascot",
n: 1,
}); curl https://api.apigator.ai/v1/embeddings \
-H "Authorization: Bearer sk-..." \
-d '{"model":"openai/text-embedding-3-small","input":"hello world"}'client.embeddings.create(model="openai/text-embedding-3-small", input="hello world")const e = await client.embeddings.create({
model: "openai/text-embedding-3-small",
input: "hello world",
}); curl https://api.apigator.ai/v1/audio/speech \
-H "Authorization: Bearer sk-..." \
-d '{"model":"elevenlabs-tts","input":"Hello","voice":"21m00Tcm4TlvDq8ikWAM"}' \
--output speech.mp3with client.audio.speech.with_streaming_response.create(
model="elevenlabs-tts", voice="21m00Tcm4TlvDq8ikWAM", input="Hello",
) as r:
r.stream_to_file("speech.mp3")import fs from "fs";
const mp3 = await client.audio.speech.create({
model: "elevenlabs-tts", voice: "21m00Tcm4TlvDq8ikWAM", input: "Hello",
});
fs.writeFileSync("speech.mp3", Buffer.from(await mp3.arrayBuffer())); voice debe ser un ID de voz de ElevenLabs, no un nombre. Guía completa de audio: /audio.md.
curl https://api.apigator.ai/v1/decisions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{"model":"typesafe/jev-latest","input":"Help! My payouts have been failing for 3 days.",
"questions":[{"name":"is_urgent","type":"predicate","instructions":"Does this convey urgency?"},
{"name":"department","type":"choice","instructions":"Which team should handle this?",
"choices":[{"value":"billing"},{"value":"technical"},{"value":"sales"}]}]}'
# -> {"answers":[{"type":"predicate","name":"is_urgent","probability":0.95},
# {"type":"choice","name":"department","choice":"billing","probabilities":[...],"confidence":0.8}], ...}import requests
r = requests.post(
"https://api.apigator.ai/v1/decisions",
headers={"Authorization": "Bearer sk-..."},
json={"model": "typesafe/jev-latest",
"input": "Help! My payouts have been failing for 3 days.",
"questions": [{"name": "is_urgent", "type": "predicate",
"instructions": "Does this convey urgency?"}]},
)
print(r.json()["answers"][0]["probability"]) # 0.95 = P(yes)const r = await fetch("https://api.apigator.ai/v1/decisions", {
method: "POST",
headers: { Authorization: "Bearer sk-...", "Content-Type": "application/json" },
body: JSON.stringify({
model: "typesafe/jev-latest",
input: "Help! My payouts have been failing for 3 days.",
questions: [{ name: "is_urgent", type: "predicate", instructions: "Does this convey urgency?" }],
}),
});
console.log((await r.json()).answers[0].probability); // 0.95 = P(yes) Seguimos la especificación de OpenAI Chat Completions. Verificado en la familia GPT-5 (sep. 2026):
tools / tool_choice — Function calling funciona en /v1/chat/completions, incluso junto con reasoning_effort. reasoning_effort — low / medium / high / xhigh. Omítelo para usar el valor predeterminado del modelo. response_format — Modo JSON y structured outputs. max_completion_tokens — Preferible a max_tokens en modelos de razonamiento. verbosity — No se acepta en /v1/chat/completions; omítelo. Si lo envías, devuelve 400 "does not support parameters". La Responses API también está disponible en POST https://api.apigator.ai/v1/responses para todos los modelos, en el formato Responses de OpenAI. Los modelos GPT-5 y GPT-6 aceptan function tools directamente en chat/completions: el gateway hace el puente con la Responses API por ti; si algún modelo rechaza tools en chat/completions, envía las mismas tools a /v1/responses.
Explora todos los modelos disponibles (con precios y el endpoint que usa cada uno) en apigator.ai/models, o llama a GET https://api.apigator.ai/v1/models. Todo excepto Claude está abierto para cualquier clave de forma predeterminada; Claude requiere estar en una lista de acceso y funciona en un endpoint independiente compatible con Anthropic; consulta Claude Code CLI.
¿Configurando un cliente para tu usuario? Descarga estos archivos markdown sin formato y síguelos al pie de la letra.
/api.md
Guía completa de integración de la API: base URL, autenticación, IDs de modelos y todos los endpoints.
/audio.md
APIs de audio en detalle: TTS (regla de voice_id), música y voz a texto.
/llms.txt
Índice de descubrimiento para agentes (el formato estándar llms.txt).
/claude-cli.md
Configuración de Claude Code CLI con el endpoint compatible con Anthropic.
401: clave ausente o no válida.403 claude_not_allowed: Claude no está habilitado para esta clave (pide a MixerBox que te agregue a la lista de acceso).400: solicitud incorrecta (p. ej., una restricción del proveedor, como el max_tokens mínimo de Perplexity).404 model not available: ID no habilitado en el proveedor; elige otro de /models.400 does not support parameters: la solicitud incluía un parámetro que esta ruta no acepta (consulta Parámetros compatibles con OpenAI más arriba); quítalo o usa /v1/responses.