Eine API für virtuelle Anproben benötigt lediglich zwei Bilder: das Foto einer Person und die Produktaufnahme. Das Ergebnis ist ein fotorealistisches Bild der Person, die das Produkt trägt. Diese Anleitung zeigt, wie Sie Virtual Try-On mit der [Genlook Try-On API](https://genlook.app/developers) in Ihre Web-App, mobile App oder Ihren individuellen Online-Shop einbinden. Der Ablauf ist für Kleidung, Schuhe, Brillen, Schmuck, Uhren, Taschen und Hüte identisch.

_Hinweis in eigener Sache: Genlook entwickelt diese API. Wenn Sie aktuell noch Anbieter vergleichen, hilft Ihnen unser [Benchmark von 10 Try-On-APIs](/blog/die-besten-virtual-try-on-apis-2026-im-benchmark) mit direkten Bildvergleichen._

## Voraussetzungen

- Ein API-Schlüssel: Erstellen Sie einfach ein Konto auf [platform.genlook.app](https://platform.genlook.app). Zum Start erhalten Sie 10 Gratis-Credits, mit denen sich der komplette Ablauf testen lässt.
- Ein Backend: Der API-Schlüssel gehört auf den Server und darf niemals im Browser oder im Code einer mobilen App landen.
- Ein Personenfoto: JPEG, PNG, WebP oder HEIC mit bis zu 10 MB. Die Person sollte frontal zu sehen sein und die betreffende Körperpartie muss erkennbar sein.
- Ein Produktbild: Verwenden Sie einfach die vorhandenen Fotos aus Ihrem Online-Shop. Packshots, Legeware (Flatlays) oder Aufnahmen am Model funktionieren gleichermaßen. Ein 3D-Modell ist nicht erforderlich.

## So funktioniert der Ablauf

Jede Integration basiert auf drei einfachen Schritten:

1. **Personenfoto hochladen** per `POST /images/upload`. Als Antwort erhalten Sie eine `imageId`, die Sie für alle weiteren Anproben mit diesem Foto wiederverwenden können.
2. **Anprobe anstoßen** per `POST /try-on`. Übergeben Sie die Produktdaten direkt im Request (Bild, Titel, Beschreibung) zusammen mit der `imageId`. Eine vorherige Katalog-Synchronisierung ist nicht nötig.
3. **Ergebnis abrufen**: Überprüfen Sie den Status per Polling mit `GET /generations/:id`, nutzen Sie `waitFor()` im SDK oder empfangen Sie das fertige Bild über den Webhook `generation.completed`. Die Generierung dauert im Schnitt etwa 8 Sekunden.

Wenn Sie alles in einem einzigen Request erledigen möchten, hält `POST /try-on/sync` die Verbindung offen, bis das Bild fertig berechnet ist. Dieser synchrone Endpunkt eignet sich optimal für Skripte und Serverless Functions.

## Ihre erste Anprobe mit TypeScript

Das offizielle SDK lautet [`@genlook/api`](https://genlook.app/docs/tryon-api/sdk). Es unterstützt Node 20+, Deno, Bun sowie moderne Edge-Runtimes.

```ts
import { Genlook } from "@genlook/api";
import { readFile } from "node:fs/promises";

const client = new Genlook({ apiKey: process.env.GENLOOK_API_KEY! });

// 1. Personenfoto einmalig hochladen und imageId wiederverwenden.
const { imageId } = await client.images.upload(
  await readFile("./person.jpg"),
  { mimeType: "image/jpeg" },
);

// 2. Anprobe anstoßen. Das Produkt wird direkt im Aufruf definiert.
const { generationId } = await client.tryOn.create({
  products: [{
    externalId: "linen-shirt-12",
    title: "Relaxed linen shirt",
    description: "Oversized fit, dropped shoulders, falls below the hip.",
    images: [{ source: { url: "https://cdn.example.com/linen-shirt.jpg" } }],
  }],
  person: { image: { source: { id: imageId } } },
});

// 3. Auf das Ergebnis warten.
const result = await client.generations.waitFor(generationId);
console.log(result.resultImageUrl);
```

## Der Aufruf mit cURL oder Python

Auch ohne dediziertes Python-SDK lässt sich die REST-API aus jeder Programmiersprache ansteuern. Hier sehen Sie die Abfrage in einem Schritt über den synchronen Endpunkt:

```bash
curl -X POST "https://api.genlook.app/tryon/v1/try-on/sync" \
  -H "x-api-key: $GENLOOK_API_KEY" \
  -H "Content-Type: application/json" \
  --max-time 100 \
  -d '{
    "products": [{
      "externalId": "linen-shirt-12",
      "title": "Relaxed linen shirt",
      "description": "Oversized fit, dropped shoulders, falls below the hip.",
      "images": [{ "source": { "url": "https://cdn.example.com/linen-shirt.jpg" } }]
    }],
    "person": { "image": { "source": { "id": "<imageId>" } } }
  }'
```

```python
import os, requests

BASE = "https://api.genlook.app/tryon/v1"
headers = {"x-api-key": os.environ["GENLOOK_API_KEY"]}

with open("person.jpg", "rb") as f:
    image_id = requests.post(f"{BASE}/images/upload", headers=headers,
                             files={"file": ("person.jpg", f, "image/jpeg")}).json()["imageId"]

result = requests.post(f"{BASE}/try-on/sync", headers=headers, timeout=100, json={
    "products": [{
        "externalId": "linen-shirt-12",
        "title": "Relaxed linen shirt",
        "description": "Oversized fit, dropped shoulders, falls below the hip.",
        "images": [{"source": {"url": "https://cdn.example.com/linen-shirt.jpg"}}],
    }],
    "person": {"image": {"source": {"id": image_id}}},
}).json()

print(result["resultImageUrl"])
```

Der synchrone Request wartet bis zu 90 Sekunden. Sollte die Berechnung ausnahmsweise länger dauern, erhalten Sie den Statuscode `202` samt `generationId`, um das Resultat anschließend per Polling abzufragen.

## Brillen, Schmuck, Schuhe und Accessoires

Sie müssen keinen Produkttyp explizit festlegen. Die API erkennt das Objekt im Bild automatisch und platziert es an der richtigen Stelle: Brillen auf der Nase, Ohrringe am Ohr, Ketten am Hals und Schuhe an den Füßen. Der API-Aufruf unterscheidet sich nicht von dem für ein Oberteil.

Zwei wichtige Punkte sollten Sie beachten:

- **Kombinationen nur bei Kleidung:** Sie können bis zu vier Kleidungsstücke gleichzeitig in einer Anprobe kombinieren, etwa Oberteil, Hose und Jacke. Brillen, Mützen, Schuhe, Taschen oder Schmuckstücke werden jeweils einzeln angefordert.
- **Passender Bildausschnitt:** Das Personenfoto muss den Bereich zeigen, an dem das Produkt getragen wird. Ein Porträt-Selfie reicht für Brillen und Ohrringe völlig aus, für Schuhe ist eine Ganzkörperaufnahme erforderlich.

## Mobile Apps (iOS, Android, Flutter, React Native)

Da API-Schlüssel nicht in die App kompiliert werden dürfen, läuft die Kommunikation auf Mobilgeräten immer über Ihr Backend:

1. Der Nutzer nimmt ein Foto auf oder wählt eines aus der Galerie; die App schickt es an Ihr Backend.
2. Ihr Backend lädt das Foto über die API hoch und stößt die virtuelle Anprobe an.
3. Sobald das Bild fertig ist (per Polling oder Webhook), leitet Ihr Backend die Bild-URL an die App weiter.
4. Die App rendert das fertige Foto.

Da Ihr Backend lediglich HTTP-Requests ausführen können muss, spielt der Tech-Stack Ihrer mobilen App keine Rolle.

## Preismodell

Jede Anprobe kostet 1 Credit. Schlägt eine Generierung fehl, wird der Credit automatisch erstattet. Im flexiblen Pay-as-you-go-Modell zahlen Sie 0,04 $ pro Anprobe (Credit-Pakete ab 5 $, Guthaben verfällt nie). Mit Monatsplänen sinkt der Preis auf 0,02 $ pro Anprobe (Starter: 20 $ für 1.000 Credits) bzw. bis auf 0,015 $ im Scale-Tarif (300 $ für 20.000 Credits). Mit dem [Kostenrechner](https://genlook.app/developers#pricing) auf der Entwicklerseite können Sie Ihre monatlichen Kosten direkt anhand Ihres erwarteten Volumens ermitteln.

## Typische Fehler und Best Practices

- **API-Aufrufe direkt aus dem Frontend:** Dabei wird Ihr API-Schlüssel im Klartext offengelegt. Führen Sie alle Aufrufe grundsätzlich über Ihren eigenen Server aus.
- **Zu ungenaue Produktbezeichnungen:** Titel und Beschreibung helfen der KI, Schnitt und Material korrekt zu interpretieren. Eine Angabe wie „Kürzere Strickjacke aus Wolle im Boxy-Fit“ führt zu deutlich besseren Resultaten als bloß „Artikel 4417“.
- **Produkte bei jedem Durchlauf erneut senden:** Beim ersten Aufruf wird das Produktbild analysiert, was wenige Sekunden in Anspruch nimmt. Danach reicht die Angabe der `externalId`, um direkt auf die bereits verarbeiteten Daten zurückzugreifen.
- **Bilder länger als nötig speichern:** Nutzen Sie den Parameter `keepForDays` (1, 3 oder 7 Tage) beim Upload und hinterlegen Sie eine `externalUserId`. So können Sie alle Bilder eines Nutzers bei Bedarf mit einem einzigen Befehl datenschutzkonform löschen.
- **Credits bei der UI-Entwicklung verbrauchen:** Testen Sie Ihre Oberfläche kostenlos mit einem Produkt namens `mock`. Die API gibt in diesem Fall unmittelbar das unveränderte Personenfoto zurück, ohne Credits abzuziehen.

<Faq>
  <FaqItem question="Gibt es eine API, die Fotos von Personen mit ausgewählter Kleidung erzeugt?">
    Ja, genau das leistet eine Virtual-Try-On-API: Sie übergeben ein Foto der Person sowie eine Produktaufnahme und erhalten ein Bild der Person im gewünschten Kleidungsstück zurück. Mit Genlook genügt ein einziger Request an den Sync-Endpunkt; die Generierung dauert durchschnittlich 8 Sekunden.
  </FaqItem>
  <FaqItem question="Werden 3D-Modelle der Produkte benötigt?">
    Nein. Die API verarbeitet reguläre 2D-Produktfotos, wie sie bereits in Ihrem Online-Shop vorhanden sind.
  </FaqItem>
  <FaqItem question="Dürfen die generierten Bilder kommerziell genutzt werden?">
    Ja. Genlook ist eine kommerzielle API, die für den produktiven Einsatz in Shops und Apps lizenziert ist. Forschungsmodelle wie IDM-VTON oder CatVTON sind hingegen oft auf nicht-kommerzielle Zwecke beschränkt.
  </FaqItem>
  <FaqItem question="Wird die API für Shops auf Basis von Shopify, WooCommerce oder PrestaShop benötigt?">
    Nein. Über die Genlook-Apps und Plugins binden Sie die Anprobe ganz ohne Programmieraufwand direkt in Ihre Produktseiten ein. Die API richtet sich an Entwickler von Custom-Stores, mobilen Apps oder eigenständigen Softwarelösungen.
  </FaqItem>
</Faq>