Ü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/v1Der API-Zugang ist ausschließlich im Business-Plan enthalten.
Authentifizierung
Alle API-Anfragen werden über einen persönlichen API-Key authentifiziert.
- 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
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
| Header | Wert | Pflicht |
|---|---|---|
Authorization | Bearer pp_live_... | Ja |
Content-Type | application/json | Ja |
Request Body (JSON)
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
title | string | Ja | Produkttitel (max. 500 Zeichen) |
description | string | Ja | Produktbeschreibung (max. 5.000 Zeichen) |
language | string | Nein | Zielsprache, z. B. "de", "en", "fr". Standard: "de" |
imageUrl | string | Nein | URL 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
| Status | Bedeutung |
|---|---|
pending | Generierung läuft noch — bitte kurz warten und erneut abfragen |
delivered | Fertig — 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.
POST /api/v1/generateaufrufen → du erhältst einegenerationId - 2.3 Sekunden warten
- 3.
GET /api/generation/{id}aufrufen - 4.Wenn
status === "pending"→ zurück zu Schritt 2 - 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-Code | Bedeutung |
|---|---|
401 | Kein oder ungültiger API-Key |
403 | Kein aktives Abo / Plan ohne API-Zugang / monatliches Limit erreicht |
400 | Pflichtfelder fehlen oder zu lang (title >500, description >5.000 Zeichen) |
404 | Generation nicht gefunden |
500 | Interner Serverfehler |
Pläne & Limits
Der API-Zugang ist ausschließlich im Business-Plan enthalten.
| Merkmal | Business-Plan |
|---|---|
API-Zugang | ✓ Enthalten |
Generierungen/Monat | Unbegrenzt |
Rate Limit | Keine harten Limits (Fair Use) |