Desarrolladores · API v1

Una API.
Todos los modelos.

Imágenes, vídeo, audio y 3D tras una sola API, con el mismo saldo que el estudio. Crea una clave en Ajustes; la CLI llega pronto.

prontoLa CLI de Opencran está en camino. Esta página muestra cómo funcionará; mientras tanto, usa la API.

$npm i -g @opencran/cli
Modelos
682
Endpoints
9
Recarga mínima
3 €
01 · Ejemplos

La misma llamada, cualquier resultado

Cambia el ID del modelo para pasar de imagen a video o voz. Los campos dependen del modelo.

1import { writeFile } from "node:fs/promises";2 3const API = "https://opencran.com/api/v1/api/catalog";4const auth = { Authorization: `Bearer ${process.env.OPENCRAN_API_KEY}` };5 6// 1. Generate an image7const res = await fetch(`${API}/generations`, {8  method: "POST",9  headers: { ...auth, "Content-Type": "application/json", "Idempotency-Key": crypto.randomUUID() },10  body: JSON.stringify({11    modelId: "luma/uni-v1/text-to-image",12    inputs: { prompt: "Neon city street after rain, cinematic night", size: "16:9" },13  }),14});15let { generation } = await res.json();16 17// 2. Wait for the result18while (generation.status === "queued" || generation.status === "generating") {19  await new Promise((r) => setTimeout(r, 3000));20  ({ generation } = await (await fetch(`${API}/generations/${generation.id}`, { headers: auth })).json());21}22 23// 3. Save the file24const file = await fetch(`${API}/generations/${generation.id}/content`, { headers: auth });25await writeFile("result.jpeg", Buffer.from(await file.arrayBuffer()));
Render de ejemploluma/uni-v1/text-to-image
02 · Inicio rápido

Tu primer render en tres pasos

  1. 01Crea una clave de APIInicia sesión con tu email, abre Ajustes, Claves de API y crea una clave. Recarga desde 3 € en Facturación.export OPENCRAN_API_KEY="oc_live_..."
  2. 02La CLI llega prontoprontoLa herramienta de línea de comandos aún no está publicada. Hasta entonces, todo funciona en el estudio.
  3. 03Haz tu primer renderElige un ID de modelo del catálogo y envía un prompt. Añade --dry-run para ver el precio sin gastar nada.opencran run luma/uni-v1/text-to-image -p "violet neon fox" -o ./out/
03 · CLIpronto

Renderiza desde la terminal

Ejecuta cualquier modelo desde una shell, un job de CI o un agente de código. Cada render se cotiza antes de empezar y se cobra del mismo saldo.

Scripts y CICada campo de un modelo es un flag; un archivo local se sube por ti.
JSON en stdoutUn documento JSON por ejecución, progreso y errores en stderr, código de salida distinto de cero si falla.
Agentes de códigoUn archivo de skill enseña a tu agente a consultar primero el precio y a limitarlo.
Guía completa de la CLI →
ComandoQué hace
opencran loginPega tu clave de API una vez; se verifica y se guarda
opencran whoamiEl nombre de la clave y tu saldo
opencran models --type videoTodos los modelos de video con su precio inicial
opencran run <model> -hLos campos de un modelo, en vivo: tipo, valor por defecto, valores permitidos
opencran run <model> -p "<prompt>" -o ./out/Renderiza y guarda el resultado en una carpeta
opencran run <model> -p "..." --dry-runEl precio exacto, sin gastar nada
opencran run <model> -p "..." --max-price 0.50No ejecuta si el precio es mayor
opencran run <model> -p "..." --json -o ./out/Un resultado JSON, listo para el siguiente paso
opencran skill installEnseña a tu agente de código a usar la CLI
04 · Lo esencial de la API

Lista para producción

Autenticación

Un token Bearer en el encabezado Authorization. Crea claves en Ajustes y revoca cualquiera en cualquier momento.

Authorization: Bearer oc_live_...

Renders en segundo plano

Iniciar un render responde al instante con el estado queued. Consulta el render hasta que termine con éxito, falle o se reembolse.

{ "status": "queued" }

Primero el precio

Pide el precio exacto de tus parámetros sin iniciar nada. Todos los importes están en céntimos de euro.

POST /api/v1/api/catalog/quote

Reintentos seguros

Envía un encabezado Idempotency-Key y una petición repetida nunca cobra dos veces.

Idempotency-Key: render-042

Límites

Cada clave tiene un límite por minuto y un tope diario opcional. Al superarlo, la API responde 429.

429 Too Many Requests

Errores y reembolsos

Errores JSON con un código y un mensaje. Un render fallido se reembolsa a tu saldo automáticamente.

{ "status": "refunded" }
05 · Referencia

Endpoints

URL base https://opencran.com/api/v1

Referencia completa de la API →
GET/api/catalog/meTu clave y tu saldo
GET/api/catalog/modelsTodos los modelos
GET/api/catalog/models/detail?id=MODEL_IDUn modelo y sus campos
POST/api/catalog/quotePrecio para entradas exactas
POST/api/catalog/generationsIniciar una generación
GET/api/catalog/generationsTus generaciones recientes
GET/api/catalog/generations/IDEstado de una generación
GET/api/catalog/generations/ID/contentEl archivo resultante
DELETE/api/catalog/generations/IDEliminar una generación

Recarga 3 € y lanza hoy

Crea una clave API en Ajustes y llama a cualquier modelo. La CLI llega pronto. Los renders fallidos se reembolsan.