API REST · v1

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/v1

Autenticació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

POST/generate
Cuesta 1 crédito

Crea una nueva presentación o documento generado con IA.

Cuerpo de la petición

CampoTipoRequeridoDescripción
topicstringEl tema o prompt sobre el cual generar contenido
formatstringNopresentation (predeterminado), document, webpage
numCardsnumberNoNúmero de diapositivas/tarjetas (predeterminado: 10)
languagestringNoCódigo de idioma, ej. en, es, fr (predeterminado: en)
tonestringNoprofessional, casual, academic, creative
audiencestringNoDescripción del público objetivo
exportAsstringNopdf (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
}
GET/generations/:id
Consultar estado

Consulta 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.

GET/credits
Consultar saldo

Obté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

Python
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)
JavaScript / Node.js
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

Plan Free10 pet / min
Plan Pro60 pet / min
EmpresarialPersonalizado

Códigos de error

400Petición inválida / campo faltante
401API key inválida o faltante
402Créditos insuficientes
404Generación no encontrada
500Error interno del servidor

¿Listo para integrar?

Obtén tu API key desde los ajustes de tu cuenta y empieza a construir.