Referencia de la API de Vizion AI
Genera presentaciones, documentos y diapositivas profesionales de forma programática. Integra el motor de generación de Vizion AI en tus flujos de trabajo B2B.
https://vizion.groupquimera.com/api/v1Autenticación
Todas las peticiones requieren una API key. Pásala mediante el header x-api-key o como token Bearer en el header Authorization.
Opción 1 — header x-api-key
curl -H "x-api-key: vz_tu_api_key_aqui" \ https://vizion.groupquimera.com/api/v1/credits
Opción 2 — token Bearer
curl -H "Authorization: Bearer vz_tu_api_key_aqui" \ https://vizion.groupquimera.com/api/v1/credits
Mantén tu API key en secreto. Da acceso completo a tu cuenta. Genera una desde los ajustes de tu cuenta.
Endpoints
/generateCrea una nueva presentación o documento generado con IA.
Cuerpo de la petición
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| topic | string | Sí | El tema o prompt sobre el cual generar contenido |
| format | string | No | presentation (predeterminado), document, webpage |
| numCards | number | No | Número de diapositivas/tarjetas (predeterminado: 10) |
| language | string | No | Código de idioma, ej. en, es, fr (predeterminado: en) |
| tone | string | No | professional, casual, academic, creative |
| audience | string | No | Descripción del público objetivo |
| exportAs | string | No | pdf (predeterminado), pptx, png |
Ejemplo de petición
curl -X POST https://vizion.groupquimera.com/api/v1/generate \
-H "x-api-key: vz_tu_api_key_aqui" \
-H "Content-Type: application/json" \
-d '{
"topic": "El futuro de la energía renovable",
"format": "presentation",
"numCards": 12,
"language": "es",
"tone": "professional",
"exportAs": "pdf"
}'Respuesta (201 Created)
{
"generationId": "gen_abc123",
"gammaGenerationId": "ref_xyz789",
"status": "processing",
"creditsRemaining": 24
}/generations/:idConsulta el estado de una generación. Llama a este endpoint hasta que status sea completed o failed.
Ejemplo de petición
curl https://vizion.groupquimera.com/api/v1/generations/gen_abc123 \ -H "x-api-key: vz_tu_api_key_aqui"
Respuesta (completada)
{
"id": "gen_abc123",
"status": "completed",
"viewUrl": "/dashboard/view/gen_abc123",
"exportUrl": "/api/download/gen_abc123",
"creditsUsed": 1
}Consejo de polling: la generación suele tardar 15–60 segundos. Consulta cada 5 segundos. El estado será processing hasta completarse.
/creditsObtén tu saldo de créditos actual y tu plan.
Ejemplo de petición
curl https://vizion.groupquimera.com/api/v1/credits \ -H "x-api-key: vz_tu_api_key_aqui"
Respuesta
{
"balance": 25,
"plan": "pro"
}Ejemplos de código
import requests
import time
API_KEY = "vz_tu_api_key_aqui"
BASE_URL = "https://vizion.groupquimera.com/api/v1"
HEADERS = {"x-api-key": API_KEY, "Content-Type": "application/json"}
# Iniciar generación
response = requests.post(f"{BASE_URL}/generate", headers=HEADERS, json={
"topic": "Tendencias de IA en 2026",
"format": "presentation",
"numCards": 10,
"exportAs": "pdf",
})
data = response.json()
generation_id = data["generationId"]
print(f"Generación iniciada: {generation_id}")
# Consultar hasta completar
while True:
status_response = requests.get(
f"{BASE_URL}/generations/{generation_id}",
headers=HEADERS
)
status = status_response.json()
print(f"Estado: {status['status']}")
if status["status"] == "completed":
print(f"Descarga: {status['exportUrl']}")
break
elif status["status"] == "failed":
print(f"Error: {status.get('error')}")
break
time.sleep(5)const API_KEY = "vz_tu_api_key_aqui";
const BASE_URL = "https://vizion.groupquimera.com/api/v1";
const headers = { "x-api-key": API_KEY, "Content-Type": "application/json" };
async function generate(topic) {
// Iniciar generación
const res = await fetch(`${BASE_URL}/generate`, {
method: "POST",
headers,
body: JSON.stringify({ topic, format: "presentation", exportAs: "pdf" }),
});
const { generationId } = await res.json();
console.log("Iniciada:", generationId);
// Consultar hasta completar
while (true) {
await new Promise(r => setTimeout(r, 5000));
const poll = await fetch(`${BASE_URL}/generations/${generationId}`, { headers });
const status = await poll.json();
console.log("Estado:", status.status);
if (status.status === "completed") {
console.log("URL de descarga:", status.exportUrl);
return status;
}
if (status.status === "failed") throw new Error(status.error);
}
}
generate("Tendencias de IA en 2026").catch(console.error);Límites de uso y errores
Límites de uso
Códigos de error
400Petición inválida / campo faltante401API key inválida o faltante402Créditos insuficientes404Generación no encontrada500Error interno del servidor¿Listo para integrar?
Obtén tu API key desde los ajustes de tu cuenta y empieza a construir.