Zum Inhalt springen

Überblick

Die ProductPolish API ermöglicht es dir, SEO-optimierte Produkttexte und KI-generierte Produktbilder programmatisch zu erstellen. Ideal für E-Commerce-Teams, die ihre Produktseiten automatisiert befüllen oder ihre eigene Software anbinden möchten.

Basis-URL

https://www.productpolish.ai/api/v1

Der API-Zugang ist ausschließlich im Business-Plan enthalten.

Authentifizierung

Alle API-Anfragen werden über einen persönlichen API-Key authentifiziert.

  1. 1

    API-Key generieren

    Öffne im Dashboard den Bereich API-Zugang und generiere deinen persönlichen Key. Der Key wird nur einmalig angezeigt — speichere ihn sicher.

  2. 2

    Header bei jedem Request mitsenden

    Authorization: Bearer pp_live_...

Key-Format

Dein API-Key beginnt immer mit pp_live_ gefolgt von einer zufälligen Zeichenkette.

🔒 Teile deinen API-Key niemals öffentlich. Er gewährt vollen Zugang zu deinem Konto.

POST /api/v1/generate

Startet eine neue Produkttext-Generierung und gibt eine generationId zurück. Die eigentliche Generierung läuft asynchron.

Request Headers

HeaderWertPflicht
AuthorizationBearer pp_live_...Ja
Content-Typeapplication/jsonJa

Request Body (JSON)

FeldTypPflichtBeschreibung
titlestringJaProdukttitel (max. 500 Zeichen)
descriptionstringJaProduktbeschreibung (max. 5.000 Zeichen)
languagestringNeinZielsprache, z. B. "de", "en", "fr". Standard: "de"
imageUrlstringNeinURL eines Produktfotos für die Bildgenerierung

Response (200 OK)

{
  "generationId": "550e8400-e29b-41d4-a716-446655440000"
}

Die Generierung läuft asynchron. Rufe den Status mit GET /api/generation/{generationId} ab.

GET /api/generation/{id}

Ruft den aktuellen Status und das Ergebnis einer Generierung ab. Derselbe Bearer-Token wie beim POST wird benötigt.

Status-Werte

StatusBedeutung
pendingGenerierung läuft noch — bitte kurz warten und erneut abfragen
deliveredFertig — alle Felder sind befüllt

Response-Felder (bei status: "delivered")

{
  "status": "delivered",
  "seo_title": "SEO-optimierter Produkttitel",
  "meta_description": "Kurze Meta-Beschreibung für Suchmaschinen...",
  "long_description_html": "<p>Ausführlicher Produkttext in HTML...</p>",
  "bulletpoints": [
    "Ergonomische Rückenlehne mit Lordosenstütze",
    "Höhenverstellbar von 42 bis 52 cm"
  ],
  "tags": ["Bürostuhl", "ergonomisch", "höhenverstellbar"],
  "faq": [
    {
      "question": "Ist der Stuhl für lange Arbeitszeiten geeignet?",
      "answer": "Ja, die Lordosenstütze..."
    }
  ],
  "generated_images": [
    "https://...",
    "https://...",
    "https://..."
  ]
}

Asynchroner Ablauf

Die Generierung dauert je nach Auslastung 2–10 Sekunden. Der empfohlene Ablauf:

  1. 1.POST /api/v1/generate aufrufen → du erhältst eine generationId
  2. 2.3 Sekunden warten
  3. 3.GET /api/generation/{id} aufrufen
  4. 4.Wenn status === "pending" → zurück zu Schritt 2
  5. 5.Wenn status === "delivered" → fertig ✓
POST /generate → { generationId }
       ↓
   warten (3 Sek.)
       ↓
GET /generation/{id} → status: "pending"  → nochmal warten
       ↓
GET /generation/{id} → status: "delivered" → fertig ✓

Empfehlung: alle 3 Sek. pollen, nach 60 Sek. (20 Versuche) Timeout auslösen.

Code-Beispiele

# Schritt 1: Generierung starten
curl -X POST https://www.productpolish.ai/api/v1/generate \
  -H "Authorization: Bearer pp_live_..." \
  -H "Content-Type: application/json" \
  -d '{"title":"Ergonomischer Bürostuhl","description":"Höhenverstellbar, Lordosenstütze","language":"de","imageUrl":"https://example.com/bild.jpg"}'

# Schritt 2: Ergebnis abrufen (pollen)
curl https://www.productpolish.ai/api/generation/GENERATION_ID \
  -H "Authorization: Bearer pp_live_..."

Fehlercodes

HTTP-CodeBedeutung
401Kein oder ungültiger API-Key
403Kein aktives Abo / Plan ohne API-Zugang / monatliches Limit erreicht
400Pflichtfelder fehlen oder zu lang (title >500, description >5.000 Zeichen)
404Generation nicht gefunden
500Interner Serverfehler

Pläne & Limits

Der API-Zugang ist ausschließlich im Business-Plan enthalten.

MerkmalBusiness-Plan
API-Zugang✓ Enthalten
Generierungen/MonatUnbegrenzt
Rate LimitKeine harten Limits (Fair Use)