# Einmal pro neuem Generierungsvorgang erstellen; bei Wiederholungen den ursprünglichen Wert beibehalten.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Eine gemütliche Leseecke am Fenster an einem regnerischen Tag, eine warm leuchtende Tischlampe, filmische Beleuchtung",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# Einmal pro neuem Generierungsvorgang erstellen; bei Wiederholungen die ursprünglichen headers und payload wiederverwenden.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Eine gemütliche Leseecke am Fenster an einem regnerischen Tag, eine warm leuchtende Tischlampe, filmische Beleuchtung",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// Einmal pro neuem Generierungsvorgang erstellen; bei Wiederholungen die ursprünglichen headers und body wiederverwenden.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "Eine gemütliche Leseecke am Fenster an einem regnerischen Tag, eine warm leuchtende Tischlampe, filmische Beleuchtung",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
GPT-Image-2.5 Ext
GPT-Image-2.5 Ext Bildgenerierung
- Verwenden Sie gpt-image-2.5-ext und wählen Sie Flare oder Sunburst über version
- Asynchrone Verarbeitung: Ergebnisse nach dem Absenden über die Task-ID abfragen
- Unterstützt Text-zu-Bild und Bild-zu-Bild mit bis zu 16 Referenzbildern
- Unterstützt 10 Seitenverhältnisse und auto sowie die Auflösungen 1K / 2K / 4K
- 1–4 Bilder pro Anfrage; Abrechnung nach Version, Auflösung und Anzahl der tatsächlich gelieferten Bilder
POST
/
v1
/
images
/
generations
# Einmal pro neuem Generierungsvorgang erstellen; bei Wiederholungen den ursprünglichen Wert beibehalten.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Eine gemütliche Leseecke am Fenster an einem regnerischen Tag, eine warm leuchtende Tischlampe, filmische Beleuchtung",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# Einmal pro neuem Generierungsvorgang erstellen; bei Wiederholungen die ursprünglichen headers und payload wiederverwenden.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Eine gemütliche Leseecke am Fenster an einem regnerischen Tag, eine warm leuchtende Tischlampe, filmische Beleuchtung",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// Einmal pro neuem Generierungsvorgang erstellen; bei Wiederholungen die ursprünglichen headers und body wiederverwenden.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "Eine gemütliche Leseecke am Fenster an einem regnerischen Tag, eine warm leuchtende Tischlampe, filmische Beleuchtung",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
# Einmal pro neuem Generierungsvorgang erstellen; bei Wiederholungen den ursprünglichen Wert beibehalten.
IDEMPOTENCY_KEY="$(uuidgen)"
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-APIMart-Response-Version: 2026-07-27' \
--header "Idempotency-Key: ${IDEMPOTENCY_KEY}" \
--data '{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Eine gemütliche Leseecke am Fenster an einem regnerischen Tag, eine warm leuchtende Tischlampe, filmische Beleuchtung",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
import uuid
import requests
# Einmal pro neuem Generierungsvorgang erstellen; bei Wiederholungen die ursprünglichen headers und payload wiederverwenden.
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": str(uuid.uuid4()),
}
payload = {
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Eine gemütliche Leseecke am Fenster an einem regnerischen Tag, eine warm leuchtende Tischlampe, filmische Beleuchtung",
"size": "1:1",
"resolution": "1K",
"n": 1,
}
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers=headers,
json=payload,
)
print(response.status_code, response.json())
// Einmal pro neuem Generierungsvorgang erstellen; bei Wiederholungen die ursprünglichen headers und body wiederverwenden.
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
"X-APIMart-Response-Version": "2026-07-27",
"Idempotency-Key": crypto.randomUUID(),
};
const body = JSON.stringify({
model: "gpt-image-2.5-ext",
version: "flare",
prompt: "Eine gemütliche Leseecke am Fenster an einem regnerischen Tag, eine warm leuchtende Tischlampe, filmische Beleuchtung",
size: "1:1",
resolution: "1K",
n: 1,
});
const response = await fetch(
"https://api.apimart.ai/v1/images/generations",
{ method: "POST", headers, body },
);
console.log(response.status, await response.json());
{
"code": 202,
"request_id": "req_example",
"data": {
"id": "task_01EXAMPLE",
"object": "generation.task",
"type": "image",
"status": "pending",
"progress": 0,
"poll_url": "/v1/tasks/task_01EXAMPLE"
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01EXAMPLE"
}
]
}
{
"error": {
"message": "n must be an integer between 1 and 4",
"type": "invalid_request_error",
"param": "",
"code": "invalid_request_error"
}
}
Authentifizierung und Header
string
erforderlich
Die Endpunkte für Generierung und Task-Abfragen verwenden einen API Key der Plattform zur Bearer-Token-Authentifizierung. Einen Schlüssel erhalten Sie auf der API-Key-Verwaltungsseite.Fragen Sie den Task mit einem API Key desselben Plattformbenutzers ab.
Authorization: Bearer YOUR_API_KEY
string
erforderlich
Verwenden Sie beim Absenden
application/json. Sowohl Text-zu-Bild als auch Bild-zu-Bild verwenden einen JSON-Anfragetext.Versionsauswahl
| Anzeigename | model | version |
|---|---|---|
| Flare (Standard) | gpt-image-2.5-ext | flare |
| Sunburst | gpt-image-2.5-ext | sunburst |
Anfrageparameter
string
erforderlich
Fester Wert:
gpt-image-2.5-ext.string
Standard:"flare"
Modellversion. Optionen:
flare, sunburst.string
erforderlich
Der Prompt für die Bildgenerierung oder -bearbeitung. Nach dem Entfernen führender und nachgestellter Leerzeichen darf er nicht leer sein.Bei Bild-zu-Bild können Sie beschreiben, welche Inhalte der Referenzbilder erhalten bleiben und welche geändert werden sollen.
string
Standard:"1K"
Auflösungsstufe der Ausgabe. Optionen:
1K, 2K, 4K.string
Standard:"auto"
Seitenverhältnis der Ausgabe. Wählen Sie
auto oder eines der folgenden 10 Seitenverhältnisse:1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 5:4, 4:5, 21:9.integer
Standard:"1"
Anzahl der pro Anfrage zu generierenden Bilder. Muss eine ganze Zahl von
1 bis 4 sein.string[]
Ein Array mit bis zu
16 Referenzbildern. Ohne Referenzbilder erfolgt Text-zu-Bild, mit Referenzbildern Bild-zu-Bild. Für Referenzbilder entstehen keine zusätzlichen Kosten.Unterstützte Eingabeformate:- Erreichbare Bild-URLs
- Data URL:
data:image/...;base64,...
Anwendungsbeispiele
Die folgenden Beispiele sind JSON-Anfragetexte fürPOST /v1/images/generations. Verwenden Sie die oben beschriebene Authentifizierung und die empfohlenen Header. Ersetzen Sie die Beispieladressen der Referenzbilder durch echte, erreichbare Bild-URLs.
Text-zu-Bild
{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Ein schwebender Garten in einer futuristischen Stadt, leichter Morgennebel, Architekturfotografie",
"size": "16:9",
"resolution": "2K",
"n": 1
}
Bild-zu-Bild mit Sunburst
{
"model": "gpt-image-2.5-ext",
"version": "sunburst",
"prompt": "Das Produkt und den Verpackungstext erhalten, den Hintergrund durch ein sanft cremeweißes Fotostudio ersetzen und einen natürlichen Schlagschatten hinzufügen",
"size": "1:1",
"resolution": "2K",
"n": 1,
"image_urls": [
"https://example.com/product.png"
]
}
Mehrere Referenzbilder und Ausgabebilder
{
"model": "gpt-image-2.5-ext",
"version": "sunburst",
"prompt": "Das Produkt aus dem ersten Bild als Hauptmotiv verwenden, die Kulisse des zweiten Bildes als Referenz nehmen und ein Werbebild im Querformat erstellen",
"size": "16:9",
"resolution": "2K",
"n": 2,
"image_urls": [
"https://example.com/product.png",
"https://example.com/set.jpg"
]
}
Automatisches Seitenverhältnis und 4K-Auflösung
{
"model": "gpt-image-2.5-ext",
"version": "flare",
"prompt": "Ein minimalistisches Hauptmotiv für eine Produkteinführung, mit einem zum Bildinhalt passenden Seitenverhältnis der Komposition",
"size": "auto",
"resolution": "4K",
"n": 1
}
Task-Ergebnisse abfragen
Rufen Sie mit der Task-ID den Endpunkt für Task-Abfragen auf:curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01EXAMPLE \
--header 'Authorization: Bearer <token>'
Erfolgreicher Task
Die folgenden Task-IDs, Zeitangaben, URLs und Beträge veranschaulichen nur die Antwortstruktur. Sie stehen nicht für einen tatsächlichen Task oder reale Preise.{
"code": 200,
"data": {
"id": "task_01EXAMPLE",
"status": "completed",
"progress": 100,
"created": 1788912000,
"completed": 1788912045,
"actual_time": 45,
"estimated_time": 300,
"cost": 0.2,
"credits_cost": 2,
"result": {
"images": [
{
"url": [
"https://example.com/output-1.png",
"https://example.com/output-2.png"
],
"expires_at": 1788998445
}
]
}
}
}
Antwort
integer
Statuscode der Antwort. Bei erfolgreicher Übermittlung im einheitlichen Format lautet er
200.string
Die Kennung dieser Anfrage zur Fehlerdiagnose.
object
Der angenommene asynchrone Task.
Anzeigen Task-Felder
Anzeigen Task-Felder
string
Die eindeutige Task-Kennung zur Abfrage des Status und der Bildergebnisse.
string
Objekttyp. Der Wert ist
generation.task.string
Task-Typ. Der Wert ist
image.string
Der anfängliche Status ist
pending und zeigt an, dass der Task angenommen wurde.integer
Aktueller Fortschritt, anfangs
0.string
Der relative Pfad zur Task-Abfrage, zum Beispiel
/v1/tasks/task_01EXAMPLE.