Mage SDK · TypeScript

De Mage TypeScript SDK

Genereer afbeeldingen, video en audio vanuit Node.js met getypeerde configs voor elk Mage-model. Eén aanroep verstuurt, wacht en geeft het resultaat terug.

Vraag een API-sleutel aanLees de TypeScript-gidsBroncode op GitHub
npm install @mage-space/sdk

In één oogopslag

De Mage TypeScript SDK is de officiële open-sourceclient voor de Mage API, gepubliceerd als @mage-space/sdk. Installeer hem met "npm install @mage-space/sdk", stel MAGE_API_KEY in en roep mage.run aan met een model-id en een config om kant-en-klare afbeeldingen, video of audio te krijgen van een van de 28 modellen. Hij draait op Node.js 20.19 of nieuwer, of op elke serverruntime met fetch, en elke generatie wordt betaald in Gems.

Instellen

Installeer de TypeScript SDK en draai een model

  1. Installeer het pakket

    Voeg @mage-space/sdk toe aan je project.

    npm install @mage-space/sdk
  2. Stel je API-sleutel in

    Maak een sleutel aan via API → API Keys op mage.space en exporteer die. De client leest MAGE_API_KEY.

    export MAGE_API_KEY="mage_sk_..."
  3. Genereer

    Roep run aan met een model-id en de bijbehorende config. De functie wacht op het resultaat en geeft het terug; de output staat in 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);

Voorbeelden

De TypeScript SDK in de praktijk

Elk voorbeeld begint met een client die MAGE_API_KEY leest.

Nu versturen, later wachten
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),
});
Een bestand uploaden
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],
});
Een opgeslagen personage gebruiken
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' });
Fouten afhandelen
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;
  }
}

Waarom de SDK

Wat de SDK voor je regelt

Eén aanroep, kant-en-klare media

run verstuurt de generatie, pollt met de backoff die de API aanbeveelt en levert de voltooide aanvraag op met result.url.

Nieuwe pogingen zonder dubbel te betalen

Elke aanvraag heeft een idempotentiesleutel. Netwerkfouten en serverfouten worden met backoff opnieuw geprobeerd en een opnieuw verstuurde aanvraag wordt nooit nogmaals in rekening gebracht.

Uploads in één aanroep

Bestanden die te groot zijn voor een data-URL gaan via een ondertekende upload. Het ticket, de PUT en de groottecontrole worden voor je afgehandeld.

Duidelijke foutmeldingen

Weigeringen van de API bevatten hun HTTP-status, foutcode en aanvraag-ID. Mislukte of geannuleerde generaties en time-outs hebben elk hun eigen fouttype.

Getypeerd voor elk model

MangoConfig, CherryConfig en de rest worden gegenereerd uit de API-referentie, zodat je editor velden aanvult en ongeldige opties herkent.

Geen afhankelijkheden

ESM zonder runtime-afhankelijkheden. Hij gebruikt de fetch die in Node.js zit ingebouwd, en elke aanroep accepteert een AbortSignal.

Referentie

De TypeScript SDK in één oogopslag

Dezelfde methoden gelden voor elk model; het model is het eerste argument.

MethodeWat het doet
mage.run(model, config)Verstuur een generatie, wacht erop en geef het voltooide verzoek terug.
mage.generate(model, config)Verstuur een generatie en geef het verzoek direct terug.
mage.requests.get / cancel / waitEen verzoek opvragen, stoppen of erop wachten via id.
mage.uploads.upload(data)Upload een bestand van maximaal 100 MB en krijg de URL terug.
mage.characters / mage.referencesOpgeslagen personages en referenties weergeven, aanmaken en verwijderen.
mage.account.get()Je Gems-saldo.
mage.architectures.list()De actuele modelcatalogus met opties en prijzen.

Modellen

Begin met deze modellen

Afbeelding · vanaf 37 Gems

Guava API

Fotorealisme dat voor een echte foto doorgaat

Afbeelding · vanaf 135 Gems

Mango API

Onze vlaggenschip-afbeeldingsfamilie

Afbeelding · vanaf 68 Gems

Nano Banana 2 API

Scherpe, leesbare tekst, tot 4K

Video · vanaf 618 Gems

Cherry API

Onze vlaggenschip-videofamilie

Video · vanaf 245 Gems

Lemon API

Alle videofuncties, tegen een vriendelijkere prijs

Audio · vanaf 19 Gems

Seed Audio API

Stemmen, muziek en geluidseffecten vanuit één prompt

FAQ

Veelgestelde vragen

Kan ik de Mage TypeScript SDK in de browser gebruiken?

Nee. Met een API-sleutel besteed je je Gems, dus bewaar hem op je eigen servers. De API stuurt geen CORS-headers mee, dus browsers kunnen hem niet rechtstreeks aanroepen; roep in plaats daarvan je eigen backend aan en laat die de SDK gebruiken.

Werkt de TypeScript SDK met CommonJS?

Het pakket is alleen ESM. Vanaf Node.js 20.19 kun je het ook met require() laden vanuit CommonJS.

Werkt de TypeScript SDK met Next.js?

Ja, in servercode zoals route handlers en server actions. De SDK is gebouwd op fetch en standaard web-API's zoals AbortSignal, dus andere serverruntimes met fetch zouden ook moeten werken, al test CI hem op Node.js.

Zijn de Mage SDK's gratis en open source?

Ja. De SDK's en de ComfyUI-nodes hebben een MIT-licentie op GitHub en installeren kost niks. Je betaalt alleen voor de generaties die je uitvoert, in Gems, tegen de vermelde prijs van elk model.

Werken nieuwe Mage-modellen met een oudere SDK?

Ja. Geef de id van het nieuwe model door als string en het draait; de SDK controleert de config aan de hand van de velden die alle modellen delen. Een bot werkt de types bij zodra de API-referentie verandert, dus nieuwe modellen komen met hun eigen types mee in de volgende release.

Hoe voorkomen de SDK's dat je twee keer betaalt voor een opnieuw verzonden verzoek?

Elke aanvraag bevat een Idempotency-Key. De SDK maakt per aanroep een nieuwe sleutel en gebruikt die opnieuw als hij die aanroep zelf opnieuw probeert. Zo geeft een herhaalde aanvraag het oorspronkelijke verzoek terug en worden er geen kosten in rekening gebracht.

Zijn de SDK's stabiel?

Ze zijn in bèta op 0.x, dus een minor-versie kan ze nog wijzigen. De API zelf heeft een aparte versienummering en blijft stabiel binnen v1.

Hoeveel kost de Mage API?

Er is geen abonnement of maandelijks bedrag. Elke generatie betaal je in Gems tegen de vermelde prijs van het model, en 1.000 Gems kosten $1 met het standaardpakket. Op elke modelpagina staat de prijs met standaardinstellingen en elke respons toont de exacte kosten. Een mislukte generatie wordt terugbetaald; een generatie die door het contentbeleid van Mage wordt geblokkeerd niet. Een aanvraag die je saldo niet dekt, wordt geweigerd voordat er iets in rekening wordt gebracht.

Heb ik een Mage-lidmaatschap nodig om de API te gebruiken?

Nee. De API werkt alleen met Gems. Lidmaatschappen en hun onbeperkte generatie in de app gelden niet voor API-aanvragen, dus elk Mage-account met Gems kan de API aanroepen.

Mag ik API-uitvoer commercieel gebruiken?

Ja. Content die je met Mage maakt, ook via de API en de MCP-server, mag je commercieel gebruiken. Naamsvermelding wordt gewaardeerd, maar is niet verplicht.

Begin met bouwen met Mage

Eén account, één Gems-saldo, alle modellen. Je betaalt alleen voor wat je genereert.

Vraag een API-sleutel aanLees de TypeScript-gids

Gerelateerd