SDK do Mage · TypeScript

O SDK TypeScript do Mage

Gere imagens, vídeos e áudio com Node.js usando configurações tipadas para cada modelo do Mage. Uma única chamada envia, espera e retorna o resultado.

Obter uma chave de APILer o guia de TypeScriptCódigo-fonte no GitHub
npm install @mage-space/sdk

Resumo rápido

O SDK TypeScript do Mage é o cliente oficial e de código aberto da API do Mage, publicado como @mage-space/sdk. Instale com "npm install @mage-space/sdk", defina MAGE_API_KEY e chame mage.run com o id de um modelo e uma configuração para obter imagens, vídeos ou áudio prontos de qualquer um dos 28 modelos. Ele roda no Node.js 20.19 ou superior, ou em qualquer runtime de servidor com fetch, e toda geração é paga em Gems.

Configuração

Instale o SDK TypeScript e rode um modelo

  1. Instale o pacote

    Adicione @mage-space/sdk ao seu projeto.

    npm install @mage-space/sdk
  2. Defina sua chave de API

    Crie uma chave em API → API Keys em mage.space e exporte-a. O cliente lê MAGE_API_KEY.

    export MAGE_API_KEY="mage_sk_..."
  3. Gere

    Chame run com o id de um modelo e sua configuração. Ele espera o resultado e o retorna; a saída fica em 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);

Exemplos

O SDK TypeScript na prática

Cada exemplo parte de um cliente que lê MAGE_API_KEY.

Envie agora, espere depois
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),
});
Enviar um arquivo
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],
});
Usar um personagem salvo
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' });
Tratar erros
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 que usar o SDK

O que o SDK resolve para você

Uma chamada, mídia pronta

O run envia a geração, faz polling com o backoff recomendado pela API e retorna a requisição concluída com result.url.

Novas tentativas sem cobrar duas vezes

Todo envio leva uma chave de idempotência. Erros de rede e de servidor são repetidos com backoff, e um envio repetido nunca é cobrado de novo.

Uploads em uma chamada

Arquivos grandes demais para uma data URL passam por um upload assinado, com ticket, PUT e verificação de tamanho tratados para você.

Erros claros

As recusas da API trazem o status HTTP, o código de erro e o ID da requisição; gerações com falha ou canceladas e timeouts têm tipos de erro próprios.

Tipado para todos os modelos

MangoConfig, CherryConfig e os demais são gerados a partir da referência da API, então seu editor completa os campos e aponta opções inválidas.

Zero dependências

ESM sem dependências de runtime. Usa o fetch nativo do Node.js, e toda chamada aceita um AbortSignal.

Referência

O SDK TypeScript em resumo

Os mesmos métodos servem para todos os modelos; o modelo é o primeiro argumento.

MétodoO que faz
mage.run(model, config)Envia uma geração, espera por ela e retorna a requisição concluída.
mage.generate(model, config)Envia uma geração e retorna a requisição imediatamente.
mage.requests.get / cancel / waitConsulta, interrompe ou espera uma requisição pelo id.
mage.uploads.upload(data)Envia um arquivo de até 100 MB e retorna a URL dele.
mage.characters / mage.referencesLista, cria e exclui personagens e referências salvos.
mage.account.get()Seu saldo de Gems.
mage.architectures.list()O catálogo de modelos em tempo real, com opções e preços.

Modelos

Comece com estes modelos

Imagem · a partir de 37 Gems

API do Guava

Fotorrealismo que parece uma fotografia de verdade

Imagem · a partir de 135 Gems

API do Mango

Nossa família de imagens principal

Imagem · a partir de 68 Gems

API do Nano Banana 2

Texto nítido e legível, até 4K

Vídeo · a partir de 618 Gems

API do Cherry

Nossa família de vídeos principal

Vídeo · a partir de 245 Gems

API do Lemon

Todos os recursos de vídeo, por um preço mais amigável

Áudio · a partir de 19 Gems

API do Seed Audio

Vozes, música e efeitos sonoros a partir de um único prompt

Perguntas frequentes

Perguntas frequentes

Posso usar o SDK TypeScript do Mage no navegador?

Não. Uma chave de API gasta seus Gems, então mantenha-a nos seus servidores. A API não envia cabeçalhos CORS, então os navegadores não conseguem chamá-la diretamente; chame seu próprio backend e deixe que ele use o SDK.

O SDK TypeScript funciona com CommonJS?

O pacote é somente ESM. O Node.js 20.19 e superiores também conseguem usar require() nele a partir do CommonJS.

O SDK TypeScript funciona com Next.js?

Sim, em código de servidor, como route handlers e server actions. O SDK é baseado em fetch e em APIs Web padrão, como AbortSignal, então outros runtimes de servidor com fetch também devem funcionar, embora o CI o teste no Node.js.

Os SDKs do Mage são gratuitos e de código aberto?

Sim. Os SDKs e os nodes do ComfyUI têm licença MIT no GitHub, e instalá-los é grátis. Você paga apenas pelas gerações que executar, em Gems, pelo preço listado de cada modelo.

Os novos modelos do Mage funcionam com um SDK mais antigo?

Sim. Passe o id do novo modelo como string e ele roda; o SDK confere a configuração com os campos que todos os modelos compartilham. Um bot atualiza os tipos sempre que a referência da API muda, então os novos modelos chegam com seus próprios tipos na versão seguinte.

Como os SDKs evitam cobrar duas vezes por uma requisição repetida?

Todo envio leva uma Idempotency-Key. O SDK cria uma nova chave a cada chamada e a reutiliza quando ele mesmo tenta essa chamada de novo, então um envio repetido retorna a requisição original e não cobra nada.

Os SDKs são estáveis?

Eles estão em beta na versão 0.x, então uma versão secundária ainda pode alterá-los. A API em si tem versionamento separado e permanece estável dentro da v1.

Quanto custa a API do Mage?

Não há assinatura nem mensalidade. Cada geração é paga em Gems, pelo preço listado do modelo, e 1.000 Gems custam US$ 1 no pacote padrão. A página de cada modelo mostra o preço com as configurações padrão, e cada resposta informa o valor exato cobrado. Uma geração que falha é reembolsada; uma bloqueada pela política de conteúdo do Mage, não. Uma requisição que o seu saldo não cobre é recusada antes de qualquer cobrança.

Preciso ser membro do Mage para usar a API?

Não. A API funciona apenas com Gems. Os planos de assinatura e a geração ilimitada no app não valem para requisições de API, então qualquer conta do Mage com Gems pode usá-la.

Posso usar os resultados da API para fins comerciais?

Sim. O conteúdo que você cria com o Mage, inclusive pela API e pelo servidor MCP, pode ser usado comercialmente. Os créditos são bem-vindos, mas não obrigatórios.

Comece a criar com o Mage

Uma conta, um saldo de Gems, todos os modelos. Pague apenas pelo que você gerar.

Obter uma chave de APILer o guia de TypeScript

Relacionados