Autenticación
Un token Bearer en el encabezado Authorization. Crea claves en Ajustes y revoca cualquiera en cualquier momento.
Authorization: Bearer oc_live_...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/cliCambia 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()));
export OPENCRAN_API_KEY="oc_live_..."opencran run luma/uni-v1/text-to-image -p "violet neon fox" -o ./out/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.
opencran loginPega tu clave de API una vez; se verifica y se guardaopencran whoamiEl nombre de la clave y tu saldoopencran models --type videoTodos los modelos de video con su precio inicialopencran run <model> -hLos campos de un modelo, en vivo: tipo, valor por defecto, valores permitidosopencran run <model> -p "<prompt>" -o ./out/Renderiza y guarda el resultado en una carpetaopencran run <model> -p "..." --dry-runEl precio exacto, sin gastar nadaopencran run <model> -p "..." --max-price 0.50No ejecuta si el precio es mayoropencran run <model> -p "..." --json -o ./out/Un resultado JSON, listo para el siguiente pasoopencran skill installEnseña a tu agente de código a usar la CLIUn token Bearer en el encabezado Authorization. Crea claves en Ajustes y revoca cualquiera en cualquier momento.
Authorization: Bearer oc_live_...Iniciar un render responde al instante con el estado queued. Consulta el render hasta que termine con éxito, falle o se reembolse.
{ "status": "queued" }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/quoteEnvía un encabezado Idempotency-Key y una petición repetida nunca cobra dos veces.
Idempotency-Key: render-042Cada clave tiene un límite por minuto y un tope diario opcional. Al superarlo, la API responde 429.
429 Too Many RequestsErrores JSON con un código y un mensaje. Un render fallido se reembolsa a tu saldo automáticamente.
{ "status": "refunded" }/api/catalog/meTu clave y tu saldo/api/catalog/modelsTodos los modelos/api/catalog/models/detail?id=MODEL_IDUn modelo y sus campos/api/catalog/quotePrecio para entradas exactas/api/catalog/generationsIniciar una generación/api/catalog/generationsTus generaciones recientes/api/catalog/generations/IDEstado de una generación/api/catalog/generations/ID/contentEl archivo resultante/api/catalog/generations/IDEliminar una generaciónRecarga 3 € y lanza hoy
Crea una clave API en Ajustes y llama a cualquier modelo. La CLI llega pronto. Los renders fallidos se reembolsan.