Wan 3.0Schon ab$0.05pro Video

Text, Bild und Effekte in einem Studio

Creovox AI
Kostenlos starten

Startseite/Creovox API

Entwickler-API · v1

Creovox API

Rufe dieselben Modelle, die das Creovox-Studio antreiben, aus deinem eigenen Code auf. Version 1 unterstützt GPT Image 2.6 für Text-zu-Bild und Bildbearbeitung. Jede Anfrage ist eine asynchrone Aufgabe: erstellen, dann abfragen, bis das Bild fertig ist.

Schnellstart

  1. 01

    API-Schlüssel erstellen

    Melde dich an und öffne API Keys im Dashboard. Erstelle für jede App einen eigenen Schlüssel, damit du einen deaktivieren kannst, ohne die anderen zu stören.

  2. 02

    Credits kaufen

    Die API verbraucht nur gekaufte Credits. Kostenlose und Bonus-Credits funktionieren weiterhin auf der Website, sind aber über die API nicht nutzbar.

  3. 03

    Aufgabe erstellen und abfragen

    Sende deinen Prompt per POST an /api/v1/tasks, merke dir die task_id und frage dann alle paar Sekunden GET /api/v1/tasks/ ab, bis der Status succeeded oder failed ist.

Authentifizierung

Sende deinen Schlüssel bei jeder Anfrage im Authorization-Header. Schlüssel sind an dein Creovox-Konto gebunden; auf anderen Seiten erstellte Schlüssel werden abgelehnt. Lege einen Schlüssel niemals in Browsercode oder ein öffentliches Repository.

Authorization: Bearer YOUR_API_KEY

Endpunkte

MethodePfadBeschreibung
POST/api/v1/tasksEine Generierungsaufgabe erstellen
GET/api/v1/tasks/{task_id}Status und Ergebnis einer Aufgabe abrufen
GET/api/v1/tasksAufgaben dieses Schlüssels auflisten, neueste zuerst
GET/api/v1/modelsModelle mit Eingabeschema und Preisen auflisten (kein Schlüssel nötig)
GET/api/v1/account/creditsDas Credit-Guthaben des Schlüsselinhabers prüfen
GET/api/v1/openapi.jsonOpenAPI-3.1-Dokument (kein Schlüssel nötig)

Aufgabe erstellen

Setze die Modell-id in model und ihre Parameter in input. Unbekannte Parameternamen werden abgelehnt, damit Tippfehler sofort auffallen. Sende einen Idempotency-Key-Header, damit eine wiederholte Anfrage keine zweite Aufgabe erstellt und nichts doppelt berechnet.

curl -X POST https://creovox.ai/api/v1/tasks \
  -H "Authorization: Bearer $CREOVOX_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1234-fox" \
  -d '{
    "model": "gpt-image-2.6",
    "input": {
      "prompt": "A red fox in fresh snow, cinematic light",
      "variant": "flare",
      "aspect_ratio": "16:9",
      "resolution": "2k"
    }
  }'
{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "n42…gptimg",
    "model": "gpt-image-2.6",
    "status": "processing",
    "output": null,
    "credits_charged": 20,
    "refund_pending": false,
    "error": null,
    "created_at": "2026-11-07T08:00:00.000Z"
  }
}

Parameter von GPT Image 2.6

ParameterTypStandardBeschreibung
promptstring—Was gezeichnet oder wie die Referenzbilder geändert werden sollen. Bis zu 20.000 Zeichen. Erforderlich.
variantflare | sunburst | economyflareflare ist die Standardbalance aus Tempo und Detail, sunburst betont Details, economy ist am günstigsten und rendert nur in 1K.
aspect_ratiostringautoBildformat wie 1:1, 16:9 oder 9:16. auto lässt das Modell wählen. Economy unterstützt weniger Optionen.
resolution1k | 2k | 4k1k1k, 2k oder 4k. Economy rendert immer in 1k.
output_formatpng | jpeg | webppngpng, jpeg oder webp. Economy liefert immer png.
imagesstring[][]Bis zu 16 öffentliche HTTP(S)-Bild-URLs. Sind sie angegeben, bearbeitet die Aufgabe diese Bilder statt neu zu zeichnen.

Ergebnis abfragen

Frage alle 3 bis 5 Sekunden ab und höre auf, wenn der Status succeeded oder failed ist. Bilder dauern meist einige Sekunden bis einige Minuten; ist eine Aufgabe nach 10 Minuten noch in processing, höre auf und wende dich mit ihrer task_id an den Support. War die Aufgabe erfolgreich, enthält output.images die Bild-URLs; lade sie herunter, wenn du sie dauerhaft behalten willst.

curl https://creovox.ai/api/v1/tasks/TASK_ID \
  -H "Authorization: Bearer $CREOVOX_API_KEY"
{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "n42…gptimg",
    "model": "gpt-image-2.6",
    "status": "succeeded",
    "output": { "images": [{ "url": "https://…/image.png" }] },
    "credits_charged": 20,
    "refund_pending": false,
    "error": null,
    "created_at": "2026-11-07T08:00:00.000Z"
  }
}

Aufgabenstatus

processing
Der Auftrag wird verarbeitet oder wartet auf die Bestätigung der Abbuchung oder der Annahme durch den Anbieter.
succeeded
Fertig. output.images enthält die Ergebnisse, credits_charged ist endgültig.
failed
Die Generierung ist fehlgeschlagen, error.message nennt den Grund. Bereits belastete Credits werden automatisch erstattet: refund_pending ist true, bis die Erstattung eingeht, danach zeigt credits_charged 0. Du kannst das Abfragen beenden.
// Node.js 18+
const API = 'https://creovox.ai/api/v1'
const headers = {
  Authorization: `Bearer ${process.env.CREOVOX_API_KEY}`,
  'Content-Type': 'application/json',
}

async function call(path, init = {}) {
  const res = await fetch(API + path, { ...init, headers: { ...headers, ...init.headers }, signal: AbortSignal.timeout(30_000) })
  const body = await res.json().catch(() => ({ code: res.status, message: res.statusText }))
  if (body.code !== 200) {
    const error = new Error(body.message)
    Object.assign(error, { status: res.status, type: body.error_type, data: body.data, retryAfter: res.headers.get('retry-after') })
    throw error
  }
  return body.data
}

// Reuse the same key when you retry this request: you get the same task and pay once.
const idempotencyKey = crypto.randomUUID()
let task
try {
  task = await call('/tasks', {
    method: 'POST',
    headers: { 'Idempotency-Key': idempotencyKey },
    body: JSON.stringify({ model: 'gpt-image-2.6', input: { prompt: 'A red fox in fresh snow' } }),
  })
} catch (error) {
  if (!error.data?.task_id || !['billing_unconfirmed', 'submission_unconfirmed'].includes(error.type)) throw error
  task = { task_id: error.data.task_id, status: 'processing' }
}

const deadline = Date.now() + 10 * 60_000
while (task.status === 'processing') {
  if (Date.now() > deadline) throw new Error(`Task ${task.task_id} is still processing; contact support.`)
  await new Promise(resolve => setTimeout(resolve, 4000))
  try {
    task = await call(`/tasks/${task.task_id}`)
  } catch (error) {
    // 429 and 5xx are temporary: wait and poll again. Anything else is final.
    if (error.status !== 429 && error.status < 500) throw error
    await new Promise(resolve => setTimeout(resolve, (Number(error.retryAfter) || 5) * 1000))
  }
}
console.log(task.status, task.output?.images, task.error, task.refund_pending)

Preise

Preise sind in Credits und entsprechen genau der Website. 1 Credit sind US$0.01. Jedes Referenzbild kostet einen kleinen Zusatzbetrag. GET /api/v1/models liefert immer die aktuelle Preisliste.

VarianteAuflösungCredits pro BildPro Referenzbild
flare1k10+2
flare2k20+2
flare4k36+2
sunburst1k10+2
sunburst2k20+2
sunburst4k36+2
economy1k5—

Fehler

Fehler nutzen den HTTP-Statuscode und dieselbe JSON-Struktur: code, message, error_type und data.

HTTPerror_typeBedeutung
400invalid_requestEin Parameter fehlt oder ist ungültig. Die message nennt ihn.
401invalid_api_keyDer Schlüssel fehlt, ist falsch, deaktiviert oder gelöscht.
402insufficient_creditsNicht genug gekaufte Credits für diese Aufgabe.
403key_not_allowed, account_suspendedDer Schlüssel gehört zu einer anderen Seite, oder das Konto ist gesperrt.
404not_foundDie Aufgabe existiert nicht oder wurde mit einem anderen Schlüssel erstellt.
409idempotency_conflictDer Idempotency-Key wurde bereits für eine andere Anfrage verwendet.
429rate_limitedZu viele Anfragen, laufende Aufgaben oder Statusabfragen für diesen Schlüssel. Warte die Retry-After Sekunden ab.
5xxprovider_error, billing_unconfirmed, upstream_unavailableBei provider_error werden bestätigte Abbuchungen erstattet. Bei billing_unconfirmed oder submission_unconfirmed behalten Sie data.task_id und fragen diesen Auftrag weiter ab, während das Ergebnis geprüft wird. Wiederholen Sie Anfragen bei vorübergehenden Fehlern mit demselben Idempotency-Key.

Grenzen und bewährte Praxis

  • Jeder Schlüssel hat ein Minutenlimit und ein Limit für laufende Aufgaben. Bezahlte Pläne haben höhere Limits.
  • Sende bei jeder Erstellungsanfrage einen Idempotency-Key-Header. Läuft eine Anfrage in einen Timeout, wiederhole sie mit demselben Idempotency-Key: Du bekommst dieselbe Aufgabe und wirst nie doppelt belastet.
  • Referenzbilder müssen aus dem öffentlichen Internet erreichbar sein. Signierte URLs funktionieren, wenn sie einige Minuten gültig bleiben.
  • Aufgaben sind privat. Ein Schlüssel kann nur seine eigenen Aufgaben lesen.

Häufige Fragen

Kann ich meine kostenlosen Credits mit der API nutzen?

Nein. Die API verbraucht nur gekaufte Credits. Kostenlose und Bonus-Credits bleiben auf der Website nutzbar.

Wird mir eine fehlgeschlagene Aufgabe berechnet?

Nein. Fehlgeschlagene Aufgaben werden automatisch erstattet. Während die Erstattung läuft, ist refund_pending true; sobald sie eingeht, ist credits_charged 0.

Welche Modelle sind verfügbar?

Version 1 bietet GPT Image 2.6. Weitere Bild- und Videomodelle folgen; GET /api/v1/models listet, was gerade verfügbar ist.

Kann ich die API aus einem Browser aufrufen?

Die API erlaubt Cross-Origin-Anfragen, aber jeder, der deine Seite sieht, kann den Schlüssel lesen. Rufe sie stattdessen von deinem Server auf.

Ist das eine offizielle OpenAI API?

Nein. Creovox AI ist ein unabhängiger Dienst, der dir Zugang zu GPT Image 2.6 über eine eigene API und eigene Credits bietet.