API de generación de vídeo con IA
Una API de vídeo con IA
hecha para código, no solo prompts.
Una clave de API abre los motores de vídeo, imagen y ampliación de Moosky a tus scripts, apps y herramientas no-code. Encola una generación, cotízala antes de que corra y descarga el archivo terminado — o deja que un webhook te lo entregue.

Opciones de modelos
Una spec, tres carriles de automatización
El mismo registro del que renderiza el estudio responde para la API: elige un slug de composer, publica las selecciones, y el run se factura como cualquier otro.
Texto e imagen a vídeo
Wan 3.0, LTX 2.5 y Seedance 2.5 se encolan desde un POST. El prompt, el fotograma inicial, la duración y la semilla viajan como selecciones — el mismo esquema del estudio — así tu pipeline y tus editores renderizan la toma idéntica.
Generación, edición, ampliación
GPT Image 2.5, Seedream y Qwen Image 3.0 generan y editan imágenes fijas igual; SeedVR2 y Ultimate Image Upscaler rematan los pases. Fotos de catálogo, miniaturas e imágenes héroe salen de la misma clave y el mismo saldo.
Ejemplos de resultados
Tomas de los mismos motores que llama tu script
Salidas públicas de Wan 3.0 y Seedance 2.0 R2V — los renders exactos que produce una sola llamada a la API.
Por qué usarlo en Moosky AI
Lo que puedes construir sobre la API de Moosky
Los mismos motores del estudio, manejados desde código — para quien genera en volumen o embebe la función en su propio producto.
Generación por lotes a escala
Cincuenta líneas de prompt, cincuenta clips desde un bucle de script — sin cuidar colas, y cada run cotizado en créditos antes de lanzarse.
Pipelines con webhooks
Registra un webhook contra tu clave y el push de estado llega en cuanto un render termina, sin sondear en tu bucle.
Backend para tu app
Lanza una función de IA sobre los motores de Moosky mientras tus usuarios ven tu interfaz; la clave se queda en el servidor.
Cotizaciones antes de gastar
El endpoint de estimación devuelve primero el coste exacto en créditos del run, así nada toca tu saldo sin que tu código lo apruebe.
Un saldo, todos los motores
Los mismos créditos que financian el estudio financian la API, así una automatización nunca necesita su propia factura ni suscripción.
OpenAPI, no leyendas
La Swagger UI en api.moosky.ai/docs se genera de las mismas rutas que te sirven — cada path y esquema en una página.
Cómo funciona
De clave a render terminado en tres llamadas
Crea tu clave
Regístrate, abre la página /developer y crea una clave — copia el client secret una vez, solo se muestra una.
Canjéalo por un token
Publica el par de claves en el endpoint de tokens y guarda el token bearer dentro de tu script o servidor.
Genera y recoge
Encola un run con el slug del composer y las selecciones, lee el estado o el webhook, y descarga el archivo terminado.
Los mismos motores del estudio, conectados a tu stack
Una agencia de contenido tenía un problema mensual: cuatrocientos vídeos de producto por trimestre, y un editor cobrando por clip terminado. El equipo construyó un script sobre la API de Moosky — una fila JSON por producto, un POST por clip — y el trabajo del editor se redujo a las cuentas hero que aún ganaban un corte humano.
La lista de endpoints es a propósito pequeña y totalmente pública: crea una clave en la página de developer, canjéala por un token, lista los compositores activos, encola una ejecución de escena y lee su estado o espera el webhook. Nada de esta página existe que la spec OpenAPI no publique ya en api.moosky.ai/docs.
Lo que convenció a la agencia fue la llamada de cotización. Antes de que un run toque el saldo, el endpoint de estimación devuelve el coste exacto en créditos, así una plantilla mala falla en staging a coste cero en vez de quemar los créditos de la cuenta de noche — en el mismo saldo que financia el estudio, sin segundo contrato que firmar.
Quickstart
Clave, token, primer render — en tres llamadas
Copia y pega desde los endpoints que publica la spec OpenAPI activa. Cambia el slug del composer por cualquier otro del registro.
Token, escena, cotización, cola y estado — cinco llamadas, sin SDK.
# 1) Exchange the key pair (from /developer) for a bearer token
curl -s -X POST "https://api.moosky.ai/auth/api-key/token" \
-H "Content-Type: application/json" \
-d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_C…ET"}'
# -> { "token": "<jwt>" } export TOKEN="<the token>"
# 2) Queueing runs against a scene YOU own — create one here
# (POST /scenes returns its id) or reuse a scene id from the studio.
# A key on someone else's id gets "Scene not found" (404).
curl -s -X POST "https://api.moosky.ai/scenes" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"my first api scene"}'
# -> { "id": 42 } export SCENE_ID=42 # YOUR_SCENE_ID below
# 3) Quote the run before you spend (public endpoint, no auth)
curl -s -X POST "https://api.moosky.ai/executions/estimate-cost" \
-H "Content-Type: application/json" \
-d '{"sceneComposerSlug":"wan30-scene-composer","selections":[{"optionSlug":"prompt","value":{"value":"a drone shot over pine forest at sunrise"}}]}'
# -> { "credits": 87 }
# 4) Queue the generation and read it back
curl -s -X POST "https://api.moosky.ai/scenes/YOUR_SCENE_ID/executions" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"sceneComposerSlug":"wan30-scene-composer","selections":[{"optionSlug":"prompt","value":{"value":"a drone shot over pine forest at sunrise"}}]}'
curl -s "https://api.moosky.ai/executions" \
-H "Authorization: Bearer $TOKEN"fetch nativo de Node 18+ — encola un clip desde cualquier pipeline.
// Node — one API key, many video and image engines
const API = "https://api.moosky.ai";
const SCENE_ID = "YOUR_SCENE_ID"; // a scene you own: create one via
// POST /scenes, or reuse a studio id
// 1) Key pair (from /developer) -> bearer token
const { token } = await fetch(`${API}/auth/api-key/token`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ client_id: process.env.MOOSKY_CLIENT_ID,
client_secret: proces…CRET }),
}).then((r) => r.json());
// 2) Queue a generation with the composer slug + selections
const execution = await fetch(`${API}/scenes/${SCENE_ID}/executions`, {
method: "POST",
headers: { "Authorization": `Bearer ${token}`,
"Content-Type": "application/json" },
body: JSON.stringify({
sceneComposerSlug: "wan30-scene-composer",
selections: [{ optionSlug: "prompt",
value: { value: "a drone shot over pine forest at sunrise" } }],
}),
}).then((r) => r.json());
// 3) Poll status — or register a webhook and skip the loop.
// storagePath fills in once the render finishes (null while queued).
console.log(execution.status, execution.storagePath);Itera filas de prompt, encola por línea, recoge las ejecuciones.
import os
import requests # pip install requests
API = "https://api.moosky.ai"
# A scene you own: create one with POST /scenes, or reuse a studio id.
SCENE_ID = "YOUR_SCENE_ID"
# 1) API key pair (from /developer) -> bearer token
token = requests.post(f"{API}/auth/api-key/token", json={
"client_id": os.environ["MOOSKY_CLIENT_ID"],
"client_secret": os.environ["MOOSKY_CLIENT_SECRET"],
}).json()["token"]
headers = {"Authorization": f"Bearer {token}"}
# 2) Queue one run per prompt line — the same balance as the studio
prompts = ["a drone shot over pine forest at sunrise",
"a timelapse of a city skyline at dusk"]
for prompt in prompts:
r = requests.post(f"{API}/scenes/{SCENE_ID}/executions", headers=headers, json={
"sceneComposerSlug": "wan30-scene-composer",
"selections": [{"optionSlug": "prompt", "value": {"value": prompt}}],
})
print(r.json()["id"], r.json()["status"])Créditos
Precio simple y honesto
Los runs de la API salen del mismo saldo de créditos que el estudio — sin nivel aparte, sin suscripción. Cotiza cada run primero y paga créditos por generación a 100 créditos por dólar.

Más de Moosky AI
Explorá toda la suite de herramientas de IA.
Preguntas frecuentes
¿Cómo consigo una clave de API de Moosky?
Crea una cuenta gratis, abre la página /developer y crea una clave con un nombre. Copia el client secret de inmediato — se muestra una sola vez. Después publícalo con el client id en el endpoint de tokens y usa el token bearer devuelto en cada llamada.
¿La API usa los mismos créditos que la app?
Sí. Un saldo financia generaciones del estudio, las herramientas no-code y la API. Los runs se facturan por generación a la misma tarifa, y el endpoint de estimación cotiza el coste exacto antes de encolar nada.
¿Qué modelos hay disponibles por la API?
Todo lo que expone el registro activo de modelos, y es consultable: hace un GET a la lista de scene-composer y la respuesta muestra los motores actuales de vídeo, imagen y ampliación con sus slugs y capacidades. El lineup de esta página lee de ese mismo registro.
¿Puedo generar vídeo desde un script o un cron?
Ese es el uso principal. Itera tus filas de prompt, publica un POST por clip y recoge los archivos terminados desde el estado o un webhook. Equipos lo conectan a n8n, Make y workers propios de la misma forma.
¿Hay webhooks?
Sí. Registra una URL de endpoint contra tu clave y se le empuja una actualización de estado cuando cambia el estado de una ejecución, así tu worker nunca sondea esperando renders.
¿Hay límite de peticiones?
La creación de claves va con throttling como guarda antiabuso. Para volumen por encima del tráfico API normal — catálogos enormes, throughput sostenido — escribe a support@moosky.ai y miramos tus números antes de que construyas contra un muro.
¿Dónde están las docs?
La Swagger UI vive en api.moosky.ai/docs con la spec OpenAPI al lado, generada de las rutas que la API sirve de verdad — la vía más rápida para verificar un parámetro es leerlo allí.