API-Doku

Bilder erzeugen

POST /v1/images/generations

Erzeugt Bilder. Standardmäßig synchron – der Aufruf wartet, bis das Bild fertig ist, und antwortet in derselben Form wie der OpenAI-Endpunkt images/generations, sodass OpenAI-SDK und Relay-Gateways direkt funktionieren. Mit async: true bekommst du sofort eine Auftrags-id und holst das Ergebnis per GET /v1/tasks/{id}. Bei n größer 1 entstehen n eigenständige Aufträge, die einzeln abgerechnet werden.

Parameter

ParameterTypBeschreibung
promptstringPflicht. Was gezeichnet werden soll
modelstringModell-id aus /v1/models. Ohne Angabe das Standardmodell
nintegerAnzahl Bilder 1–4. Standard 1
sizestringSeitenverhältnis 1:1 | 16:9 | 9:16 | 4:3 | 3:4. Standard 1:1. Pixelangaben wie 1024x1024 oder 1792x1024 werden ebenfalls akzeptiert und auf das nächstliegende Verhältnis gerundet
qualitystringQualität 1k | 2k | 4k. Standard 1k, wird von spec überschrieben. OpenAI-Schreibweisen gelten auch: standard / low / auto entsprechen 1k, medium / hd / high entsprechen 2k
specstringStufenschlüssel aus specs[].key des Modells
reference_imagesstring[]URLs von Referenzbildern. Was über max_reference_images hinausgeht, entfällt
asyncbooleanStandard false – auf das Bild warten. true liefert sofort ein Auftragsobjekt; /v1/tasks/{id} dann selbst pollen
Unbekannte Werte lassen die Anfrage nicht scheitern, sondern fallen auf den Standard zurück – ein unbekanntes size rendert einfach in 1:1. Nur leerer prompt, gesperrte Inhalte, erreichte Kontingente oder fehlende Credits führen zum Fehler. response_format wird nicht unterstützt; Ergebnisse kommen immer als URL.

Anfrage (synchron)

bash
curl https://open.pikpikgo.com/v1/images/generations \
  -H "Authorization: Bearer $PIKPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "eine regennasse Cyberpunk-Straße bei Nacht, Neonspiegelungen",
    "size": "16:9",
    "quality": "2k",
    "n": 1
  }'

Antwort (synchron)

json
{
  "created": 1786000246,
  "data": [
    { "url": "https://cdn.pikpikgo.com/ai/xxxx.png", "revised_prompt": "eine regennasse Cyberpunk-Straße bei Nacht, Neonspiegelungen" }
  ],
  "id": "2608101909450810293847",
  "object": "image.generation",
  "model": "img-std-1",
  "status": "succeeded",
  "n": 1,
  "credits": 10,
  "tasks": [
    {
      "id": "2608101909450810293847",
      "status": "succeeded",
      "data": [{ "url": "https://cdn.pikpikgo.com/ai/xxxx.png", "revised_prompt": "eine regennasse Cyberpunk-Straße bei Nacht, Neonspiegelungen" }]
    }
  ]
}
FeldBeschreibung
createdZeitstempel der Antwort
dataErgebnisse, je mit url und revised_prompt. Bei n > 1 mehrere Einträge
idHauptauftrag (bei n > 1 der erste Teilauftrag)
statussucceeded – auch bei Teilerfolg; vergleiche die Länge von data selbst mit n
creditsInsgesamt abgezogene Credits
tasksAlle Teilaufträge, jeweils mit eigenem error und Ergebnis
Ein synchroner Aufruf hält die Verbindung offen, pro Bild oft über 30 Sekunden – setze das Client-Timeout auf 300 Sekunden. Nach 300 Sekunden antwortet der Server mit 504 generation_timeout; der Auftrag läuft weiter und die Credits werden nicht erstattet, du holst das Bild später über /v1/tasks/{id} mit der id aus der Meldung. Schlagen alle Bilder fehl, kommt 502 generation_failed und die Credits werden automatisch erstattet.

Asynchroner Ablauf

Für Stapelverarbeitung, hohe Parallelität oder latenzempfindliche Aufrufer: Die Antwort kommt sofort, status ist queued und data leer.

bash
curl https://open.pikpikgo.com/v1/images/generations \
  -H "Authorization: Bearer $PIKPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "eine regennasse Cyberpunk-Straße bei Nacht, Neonspiegelungen",
    "size": "16:9",
    "quality": "2k",
    "n": 1,
    "async": true
  }'
json
{
  "id": "2608101909450810293847",
  "object": "image.generation",
  "created": 1786000185,
  "model": "img-std-1",
  "status": "queued",
  "n": 1,
  "credits": 10,
  "tasks": [
    { "id": "2608101909450810293847", "status": "queued", "data": [] }
  ],
  "data": []
}
Bei n > 1 über tasks iterieren. Wer nur id pollt, verliert die übrigen Bilder stillschweigend.