SDK de Mage · TypeScript

El SDK de TypeScript de Mage

Genera imágenes, video y audio desde Node.js con configuraciones tipadas para cada modelo de Mage. Una sola llamada envía, espera y devuelve el resultado.

Obtén una clave de APILee la guía de TypeScriptCódigo fuente en GitHub
npm install @mage-space/sdk

De un vistazo

El SDK de TypeScript de Mage es el cliente oficial y de código abierto de la API de Mage, publicado como @mage-space/sdk. Instálalo con "npm install @mage-space/sdk", define MAGE_API_KEY y llama a mage.run con un id de modelo y una configuración para obtener imágenes, video o audio terminados de cualquiera de los 28 modelos. Funciona con Node.js 20.19 o posterior, o con cualquier entorno de servidor con fetch, y cada generación se paga en Gems.

Configuración

Instala el SDK de TypeScript y ejecuta un modelo

  1. Instala el paquete

    Añade @mage-space/sdk a tu proyecto.

    npm install @mage-space/sdk
  2. Define tu clave de API

    Crea una clave en API → API Keys en mage.space y expórtala. El cliente lee MAGE_API_KEY.

    export MAGE_API_KEY="mage_sk_..."
  3. Genera

    Llama a run con un id de modelo y su configuración. Espera el resultado y lo devuelve; la salida está en result.url.

    import Mage from '@mage-space/sdk';
    
    const mage = new Mage(); // reads MAGE_API_KEY
    
    const request = await mage.run('mango', {
      prompt: 'Editorial portrait in soft daylight, 35mm film look',
      aspect_ratio: '4:5',
      model_id: 'mango-v3',
    });
    
    console.log(request.result.url);

Ejemplos

El SDK de TypeScript en la práctica

Cada ejemplo parte de un cliente que lee MAGE_API_KEY.

Envía ahora, espera después
import Mage from '@mage-space/sdk';

const mage = new Mage(); // reads MAGE_API_KEY

const submitted = await mage.generate('cherry', {
  prompt: 'Waves rolling onto a black sand beach at sunset',
  resolution: '720p',
  duration: '5',
});

const final = await mage.requests.wait(submitted.request_id, {
  timeout: 15 * 60_000,
  onUpdate: (request) => console.log(request.status),
});
Sube un archivo
import { readFile } from 'node:fs/promises';
import Mage from '@mage-space/sdk';

const mage = new Mage(); // reads MAGE_API_KEY

const clip = await mage.uploads.upload(await readFile('clip.mp4'), {
  contentType: 'video/mp4',
});

await mage.run('cherry', {
  prompt: 'Restyle this clip as a watercolor painting',
  videos: [clip.url],
});
Usa un personaje guardado
import Mage from '@mage-space/sdk';

const mage = new Mage(); // reads MAGE_API_KEY

await mage.characters.create({
  name: 'Ana',
  handle: 'ana',
  image: 'https://example.com/ana.png',
});

await mage.run('mango', { prompt: '@ana walking through a night market' });
Gestiona los errores
import Mage, { MageAPIError, MageGenerationError } from '@mage-space/sdk';

const mage = new Mage(); // reads MAGE_API_KEY

try {
  await mage.run('mango', { prompt: 'A lighthouse at night' });
} catch (error) {
  if (error instanceof MageAPIError && error.code === 'insufficient_gems') {
    // Top up Gems, then try again.
  } else if (error instanceof MageGenerationError) {
    console.log('No output:', error.code);
  } else {
    throw error;
  }
}

Por qué el SDK

Lo que el SDK hace por ti

Una llamada, contenido terminado

run envía la generación, consulta el estado con el backoff que recomienda la API y se resuelve con la solicitud completada y result.url.

Reintentos que nunca cobran dos veces

Cada envío lleva una clave de idempotencia. Los errores de red y de servidor se reintentan con backoff, y un envío reintentado nunca se cobra de nuevo.

Subidas en una llamada

Los archivos demasiado grandes para una URL de datos pasan por una subida firmada, y el ticket, el PUT y la comprobación de tamaño se gestionan por ti.

Errores claros

Los rechazos de la API incluyen su estado HTTP, código de error e ID de solicitud; las generaciones fallidas o canceladas y los tiempos de espera agotados tienen sus propios tipos de error.

Tipado para cada modelo

MangoConfig, CherryConfig y los demás se generan a partir de la referencia de la API, así que tu editor autocompleta los campos y detecta opciones no válidas.

Cero dependencias

ESM sin dependencias en tiempo de ejecución. Usa el fetch integrado en Node.js y cada llamada acepta una AbortSignal.

Referencia

El SDK de TypeScript de un vistazo

Los mismos métodos sirven para todos los modelos; el modelo es el primer argumento.

MétodoQué hace
mage.run(model, config)Envía una generación, espera a que termine y devuelve la solicitud completada.
mage.generate(model, config)Envía una generación y devuelve la solicitud de inmediato.
mage.requests.get / cancel / waitConsulta, detén o espera una solicitud por su id.
mage.uploads.upload(data)Sube un archivo de hasta 100 MB y devuelve su URL.
mage.characters / mage.referencesLista, crea y elimina personajes y referencias guardados.
mage.account.get()Tu saldo de Gems.
mage.architectures.list()El catálogo de modelos en vivo con opciones y precios.

Modelos

Empieza con estos modelos

Imagen · desde 37 Gems

API de Guava

Fotorrealismo que parece una fotografía

Imagen · desde 135 Gems

API de Mango

Nuestra familia de imágenes insignia

Imagen · desde 68 Gems

API de Nano Banana 2

Texto nítido y legible, hasta 4K

Vídeo · desde 618 Gems

API de Cherry

Nuestra familia de vídeo insignia

Vídeo · desde 245 Gems

API de Lemon

Todas las funciones de vídeo, a un precio más amable

Audio · desde 19 Gems

API de Seed Audio

Voces, música y efectos de sonido con un solo prompt

Preguntas frecuentes

Preguntas frecuentes

¿Puedo usar el SDK de TypeScript de Mage en el navegador?

No. Una clave de API gasta tus Gems, así que guárdala en tus servidores. La API no envía encabezados CORS, por lo que los navegadores no pueden llamarla directamente; llama a tu propio backend y que sea este quien use el SDK.

¿El SDK de TypeScript funciona con CommonJS?

El paquete es solo ESM. Node.js 20.19 y posteriores también pueden cargarlo con require() desde CommonJS.

¿El SDK de TypeScript funciona con Next.js?

Sí, en código de servidor como los route handlers y las server actions. El SDK se basa en fetch y en API web estándar como AbortSignal, así que otros entornos de servidor con fetch también deberían funcionar, aunque la CI lo prueba en Node.js.

¿Los SDK de Mage son gratuitos y de código abierto?

Sí. Los SDK y los nodos de ComfyUI tienen licencia MIT en GitHub y instalarlos es gratis. Solo pagas por las generaciones que ejecutes, en Gems, al precio que figura para cada modelo.

¿Los modelos nuevos de Mage funcionan con un SDK anterior?

Sí. Pasa el id del nuevo modelo como cadena y se ejecuta; el SDK comprueba su configuración con los campos que comparten todos los modelos. Un bot actualiza los tipos cada vez que cambia la referencia de la API, así que los modelos nuevos llegan con sus propios tipos en la siguiente versión.

¿Cómo evitan los SDK pagar dos veces por una solicitud reintentada?

Cada envío lleva una Idempotency-Key. El SDK genera una clave nueva por llamada y la reutiliza cuando reintenta esa llamada por su cuenta, así que un envío reintentado devuelve la solicitud original y no cobra nada.

¿Son estables los SDK?

Están en beta en la versión 0.x, así que una versión menor aún puede cambiarlos. La API en sí tiene su propio versionado y se mantiene estable dentro de v1.

¿Cuánto cuesta la API de Mage?

No hay suscripción ni cuota mensual. Cada generación se paga en Gems al precio indicado de su modelo, y 1000 Gems cuestan 1 $ en el paquete estándar. La página de cada modelo muestra su precio con la configuración por defecto, y cada respuesta indica el cargo exacto. Si una generación falla, se reembolsa; si la política de contenido de Mage la bloquea, no. Una solicitud que tu saldo no pueda cubrir se rechaza antes de cobrar nada.

¿Necesito una membresía de Mage para usar la API?

No. La API funciona solo con Gems. Los planes de membresía y su generación ilimitada dentro de la app no se aplican a las solicitudes de la API, así que cualquier cuenta de Mage con Gems puede usarla.

¿Puedo usar comercialmente los resultados de la API?

Sí. El contenido que creas con Mage, también a través de la API y el servidor MCP, se puede usar con fines comerciales. Se agradece la atribución, pero no es obligatoria.

Empieza a crear con Mage

Una cuenta, un saldo de Gems, todos los modelos. Paga solo por lo que generes.

Obtén una clave de APILee la guía de TypeScript

Relacionado