---
title: "GPT Image 1.5 Prompt Guide — JSON for Newcomers"
description: "Beginner-friendly GPT Image 1.5 JSON prompt guide: every field explained, 3 copy-paste examples, and alternatives. 9 credits on AI Content Drop."
canonical: "https://aicontentdrop.com/blog/gpt-image-1-5-json-prompt-guide"
source: "https://aicontentdrop.com/blog/gpt-image-1-5-json-prompt-guide"
---
## What this guide does

This is a beginner-friendly breakdown of the GPT Image 1.5 model — every field in its JSON request body explained, three ready-to-paste examples, and a plain-English answer to when you should pick it over other image models. By the end you will be able to send your first request to GPT Image 1.5 and understand exactly what every field in the JSON controls.

If you have never called an AI model API before, that is completely fine. This guide defines every term the first time it comes up. You do not need to know how to code — but if you want to experiment with raw API calls, there are working curl and JavaScript snippets in section 7. If you want to generate an image right now without any setup, you can skip straight to [AI Content Drop's image generator](https://aicontentdrop.com/best-ai-video-generator) and paste your prompt there. No API key required.

## What is GPT Image 1.5?

GPT Image 1.5 is a text-to-image (T2I) model from OpenAI, available via [OpenAI's official Images API](https://developers.openai.com/api/reference/resources/images) under the model ID `gpt-image-1`. “GPT Image 1.5” is the marketing name for the latest revision served under this model ID. You give it a text description and it generates a high-resolution image matching that description. What sets it apart from most competing image models is its ability to render readable text inside the image — logos, button labels, infographic copy, UI wireframes — with a level of accuracy that other models rarely match. Its sweet spot is structured, instruction-heavy imagery: product mockups with overlaid text, UI screenshots, ad creative with embedded headlines, and illustrated diagrams. What it cannot do is generate video or audio — it is a still-image-only model.

On [AI Content Drop](https://aicontentdrop.com/best-ai-video-generator) GPT Image 1.5 costs **9 credits per generation** — confirmed directly from the platform's credit table. The platform uses post-deduct billing, which means you are only charged credits if the image successfully completes. If the generation fails or the provider returns an error, no credits leave your account. AI Content Drop handles the OpenAI API call for you — but if you want to call OpenAI directly, the rest of this guide covers the official request shape. To see how GPT Image 1.5 compares to other image models on the platform, read our [best AI image models for video ad angles](https://aicontentdrop.com/blog/best-ai-image-models-for-video-ad-angles-2026) guide.

## The complete JSON prompt

Below is the full request body you send to the official OpenAI Images API to generate an image with GPT Image 1.5. This is valid JSON — JavaScript Object Notation, a text format APIs use to send structured requests. You can copy it, fill in your own prompt, and run it immediately.

```
{
  "model": "gpt-image-1",
  "prompt": "A clean product landing page hero section mockup. White background. Centered headline text: 'Ship Faster'. Below it a subheadline: 'AI-powered tools for modern teams'. A teal call-to-action button labeled 'Get Started Free'. Minimal flat design, professional UI screenshot style.",
  "size": "1536x1024",
  "quality": "high",
  "n": 1,
  "background": "auto",
  "output_format": "png"
}
```

The `model` field tells the OpenAI API which model to run. The `prompt` field contains your natural-language description. The remaining fields — `size`, `quality`, `n`, `background`, and `output_format` — control the canvas shape, generation quality, how many images to produce, transparency handling, and the file format of the result. All fields are covered in detail in the next section.

## Field-by-field breakdown

Let's go through every field in that JSON request one at a time. For each field you will find: what type of value it expects, whether you must include it, what the default is if you leave it out, and a side-by-side comparison of a well-set value versus a poorly-set one.

### model

**Type:** string | **Required:** Yes | **Default:** none

This tells the OpenAI Images API which AI model to run your request through. For GPT Image 1.5 you must pass the exact string `"gpt-image-1"`. “GPT Image 1.5” is the marketing name — the API model ID is `gpt-image-1`, and OpenAI serves the latest revision under this name. The API will return an error if this string is misspelled or uses a different format.

- Good:
  
  "gpt-image-1"
- Bad:
  
  "gpt_image_1"
  
  — underscores are not a valid model ID format. The API will reject it.

### prompt

**Type:** string | **Required:** Yes | **Max length:** 32,000 characters

The prompt is your natural-language instruction to the model. GPT Image 1.5 reads this closely and follows it with more precision than most image models — you can include explicit text strings (like button labels or headlines) and the model will attempt to render them legibly. Be specific about layout, content, and style. Vague prompts produce generic results; specific prompts produce targeted images.

- Good:
  
  "A smartphone mockup showing a fitness app dashboard. Header text: 'Today's Goal'. A circular progress ring at 72% in orange. Dark background, modern UI design, app store screenshot style."
- Bad:
  
  "A phone with an app on the screen"
  
  — too vague; the model will invent content that almost certainly does not match your intent

GPT Image 1.5's text-rendering strength is most visible when you write the exact words you want as a quoted string inside your prompt. For broader prompt-writing technique, see our [AI prompt engineering secrets](https://aicontentdrop.com/blog/ai-prompt-engineering-secrets) guide.

### size

**Type:** string (enum) | **Required:** No | **Default:** `"auto"`

Controls the pixel dimensions of the output image. The OpenAI Images API accepts four values for `gpt-image-1`: `"1024x1024"` (square), `"1024x1536"` (portrait), `"1536x1024"` (landscape), and `"auto"` (the model picks the best fit for your prompt). Pick the one that matches where the image will be used.

- Good:
  
  "1536x1024"
  
  when generating a landing page hero or YouTube thumbnail — the image fills the canvas naturally
- Bad:
  
  "1024x1024"
  
  for a landscape hero mockup — the model squashes the layout into a square and most of the composition is wasted

### quality

**Type:** string (enum) | **Required:** No | **Default:** `"auto"`

Controls the generation quality level. Allowed values are `"low"`, `"medium"`, `"high"`, and `"auto"`. Higher quality produces sharper detail and better text rendering but takes slightly longer. For ad creative and UI mockups, use `"high"`. For rapid ideation and thumbnail testing, `"medium"` is faster and costs fewer tokens on the OpenAI side.

- Good:
  
  "high"
  
  for a hero image or ad creative where text legibility matters
- Bad:
  
  "low"
  
  for a UI mockup — fine details and text edges will be noticeably soft

### n

**Type:** integer | **Required:** No | **Default:** `1`

The number of images to generate in a single request. For most use cases, `1` is correct. You can request multiple images for A/B variant testing, but each image counts toward your API usage. On AI Content Drop, each generation is a separate platform request regardless of this field.

- Good:
  
  1
  
  — generates one image, clear to reason about, easy to retry if the result misses
- Bad:
  
  10
  
  with a vague prompt — you get ten variants of the same mediocre result; iterate on the prompt first

### background

**Type:** string (enum) | **Required:** No | **Default:** `"auto"`

Controls background transparency handling. Allowed values are `"transparent"`, `"opaque"`, and `"auto"`. Transparent backgrounds are only preserved when `output_format` is `"png"` or `"webp"` — JPEG does not support transparency.

- Good:
  
  "transparent"
  
  with
  
  "output_format": "png"
  
  when generating a product on a cut-out background you plan to composite over a video frame
- Bad:
  
  "transparent"
  
  with
  
  "output_format": "jpeg"
  
  — JPEG cannot store transparency; the background will render as solid white

### output_format

**Type:** string (enum) | **Required:** No | **Default:** `"png"`

Controls the file format of the finished image. Three options are available: `"png"`, `"jpeg"`, and `"webp"`.

- png
  
  — lossless, supports transparent backgrounds, larger file size. Use this for mockups and UI images you plan to composite into ads.
- jpeg
  
  — lossy, smaller file, no transparency. Use this when the image is a self-contained visual and file size matters.
- webp
  
  — smaller than PNG with optional transparency. Good for web delivery where bandwidth matters.
- Good:
  
  "png"
  
  for a UI mockup you will place over a video frame
- Bad:
  
  "jpeg"
  
  for the same image — JPEG compression smudges sharp text edges and makes body copy look blurry

**Important:** The OpenAI Images API for `gpt-image-1` returns the image as a **base64-encoded string** (in the `b64_json` field of the response), not as a URL. You decode it to get the raw image bytes. Section 8 covers how to do this.

## Allowed values reference table

Here is a single table you can bookmark and return to when choosing values for your request.

| Field | Allowed values | Best for |
| --- | --- | --- |
| model | `gpt-image-1` | Always use this exact string for GPT Image 1.5 |
| size: 1024x1024 | Square | Instagram feed, Google Display ads, product shots |
| size: 1024x1536 | Portrait (tall) | TikTok, Instagram Story, Reels, mobile ads |
| size: 1536x1024 | Landscape (wide) | YouTube thumbnails, banners, landing page heroes |
| size: auto | Model-chosen | When you have no preference — let the model decide |
| quality | `low`, `medium`, `high`, `auto` | high for final creative; medium for rapid iteration |
| output_format | `png`, `jpeg`, `webp` | png for UI/mockups with text; jpeg for photo scenes |
| background | `transparent`, `opaque`, `auto` | transparent (png/webp only) for cut-out compositing |

## 3 working copy-paste examples

### Example 1: E-commerce product shot with price badge

```
{
  "model": "gpt-image-1",
  "prompt": "A white ceramic skincare serum bottle on a pale cream marble surface, soft diffused overhead studio lighting, commercial product photography. In the bottom-right corner a small badge that reads: 'From $29'. The badge is white with a thin gold border. Ultra-clean, luxury brand aesthetic.",
  "size": "1024x1024",
  "quality": "high",
  "n": 1,
  "background": "auto",
  "output_format": "png"
}
```

Square format is the most versatile for e-commerce — it works on Amazon listings, Instagram feed, and Google Shopping. The badge text ("From $29") is written directly into the prompt as a quoted string; GPT Image 1.5 will attempt to render it legibly. Using `png` preserves the sharp edge around the badge for downstream compositing. Expect a polished hero shot where the price label is readable rather than garbled — that is the gap this model fills over other image generators. For context on which models to pair with which ad angles, see our [best AI image models for video ad angles](https://aicontentdrop.com/blog/best-ai-image-models-for-video-ad-angles-2026) guide.

### Example 2: App UI mockup for a social ad

```
{
  "model": "gpt-image-1",
  "prompt": "A mobile app screenshot mockup, dark background, showing a habit tracker app. Large heading text at the top: 'Your Streak: 14 Days'. Below it three rows of habit items with green checkmarks: 'Morning run', 'Read 20 pages', 'Meditate'. A progress bar at 85% in teal green. Modern flat UI design, iOS-style, clean and minimal.",
  "size": "1024x1536",
  "quality": "high",
  "n": 1,
  "background": "auto",
  "output_format": "png"
}
```

Portrait 1024×1536 fills a TikTok or Instagram Story ad natively. Listing each UI element — heading text, row labels, progress bar colour — tells the model exactly what to draw and where. The result is a realistic-looking app screenshot you can drop straight into a Story ad without needing a design tool. This kind of structured UI mockup is where GPT Image 1.5 genuinely has an edge over other models: the text in each row will be readable rather than approximate squiggles.

### Example 3: Cinematic hero image with typographic overlay

```
{
  "model": "gpt-image-1",
  "prompt": "A dramatic cinematic landscape: a lone hiker silhouetted against a burnt-orange sunset over a canyon. Large bold white headline text centered on the image: 'GO FURTHER'. Below it smaller text: 'Adventure gear built for the wild.' Minimal design. The text is placed in the lower third against a slightly darkened sky area. Widescreen composition.",
  "size": "1536x1024",
  "quality": "high",
  "n": 1,
  "background": "opaque",
  "output_format": "jpeg"
}
```

This is a YouTube thumbnail or Facebook banner in one generation. The prompt positions the headline text explicitly ("lower third against a slightly darkened sky area") so the model knows where to place the copy relative to the scene. JPEG is fine here because you are not compositing the background — the image is self-contained and `opaque` background is appropriate. A model without text-rendering capability would produce warped letters; GPT Image 1.5 handles the large headline reliably.

## How to send the request

An *API endpoint* is a specific URL address on a server that listens for requests and sends back a response. For GPT Image 1.5, the endpoint lives at OpenAI, and you send your JSON to it using an *HTTP POST* request — the same type of request a web form uses when you click Submit. You will need an OpenAI API key (a long string starting with `sk-` that identifies your account) passed as a Bearer token in the Authorization header. Get your key at [platform.openai.com/api-keys](https://platform.openai.com/api-keys).

The official OpenAI endpoint for image generation is:

```
POST https://api.openai.com/v1/images/generations
```

This is a **synchronous** endpoint — unlike some AI generation APIs, it does not return a task ID for you to poll. It waits until the image is ready and returns the result directly in the response body.

Here is how to call it from a terminal using **curl** (a command-line tool available on macOS, Linux, and Windows 11):

```
curl -X POST https://api.openai.com/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-image-1",
    "prompt": "A white ceramic serum bottle on pale marble, studio lighting, 8k product shot, text badge bottom-right reading From $29",
    "size": "1024x1024",
    "quality": "high",
    "n": 1,
    "output_format": "png"
  }'
```

And here is the same request in **JavaScript** using the browser-native `fetch` API:

```
const response = await fetch("https://api.openai.com/v1/images/generations", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer " + process.env.OPENAI_API_KEY
  },
  body: JSON.stringify({
    model: "gpt-image-1",
    prompt: "A white ceramic serum bottle on pale marble, studio lighting, 8k product shot, text badge bottom-right reading From $29",
    size: "1024x1024",
    quality: "high",
    n: 1,
    output_format: "png"
  })
});

const data = await response.json();
// The image is returned as a base64 string — see section 8 for how to decode it
const b64Image = data.data[0].b64_json;
console.log("Image received, base64 length:", b64Image.length);
```

Or skip the API key entirely — paste your prompt into [Chat-to-Ads Studio](https://aicontentdrop.com/) or [AI Content Drop's image generator](https://aicontentdrop.com/best-ai-video-generator), and we'll handle the request for you. No API key, no JSON, no curl — just type and generate.

## What the response looks like

Unlike older OpenAI image models (DALL-E 2 and DALL-E 3) which returned a temporary URL, `gpt-image-1` returns the image inline as a **base64-encoded string**. Base64 is a text representation of binary data — you decode it to get the raw PNG/JPEG/WebP bytes, then write them to a file. The response arrives synchronously — there is no polling step.

A successful response looks like this:

```
{
  "created": 1746000000,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..."
    }
  ]
}
```

The `data` array contains one object per image (matching the `n` you requested). Each object has a `b64_json` field containing the full base64-encoded image. Here is how to decode it and save it to a file in Node.js:

```
const fs = require("fs");

// data is the parsed JSON response from the API
const b64 = data.data[0].b64_json;
const imageBuffer = Buffer.from(b64, "base64");
fs.writeFileSync("output.png", imageBuffer);
console.log("Image saved to output.png");
```

In a browser environment, you can display the image directly by setting it as the `src` of an `<img>` element: `img.src = "data:image/png;base64," + b64;`. GPT Image 1.5 typically completes in 15–40 seconds depending on prompt complexity and the `quality` setting.

## Common errors and fixes

- 401 invalid_api_key
  
  — Your API key is missing, expired, or copied incorrectly. Fix: Check that you passed
  
  Authorization: Bearer $OPENAI_API_KEY
  
  in the request header and that the key starts with
  
  sk-
  
  , is copied exactly from
  
  platform.openai.com/api-keys
  
  , and has no extra spaces. If you recently rolled your key, the old one is invalidated immediately.
- 400 content_policy_violation
  
  — Your prompt triggered OpenAI's content moderation. Fix: Remove any terms referencing violence, explicit content, real named individuals, or other policy-violating content. Rephrase descriptively. The
  
  moderation
  
  field (values:
  
  "low"
  
  or
  
  "auto"
  
  ) can be set to
  
  "low"
  
  for less strict moderation where permitted — but the filter cannot be disabled entirely.
- 400 invalid_size
  
  — You passed a size value not in the allowed list. Fix: Use one of
  
  1024x1024
  
  ,
  
  1024x1536
  
  ,
  
  1536x1024
  
  , or
  
  auto
  
  . You cannot request arbitrary pixel dimensions like
  
  "1200x630"
  
  — pick the closest size and resize the output afterwards in any image editor.
- Prompt too long / 400 string_too_long
  
  — Your prompt exceeds 32,000 characters. Fix: Trim filler phrases like "please make it look like" — the model does not need polite framing, just specific visual instructions.
- 429 rate_limit_exceeded
  
  — You have hit the rate limit for your OpenAI tier. Fix: Add a delay between requests or upgrade your OpenAI usage tier at platform.openai.com. On AI Content Drop, the credit system naturally paces usage since each generation draws from your monthly balance.
- 500 internal_error
  
  — A transient server error on OpenAI's side. Fix: Wait a few seconds and retry. These are rare and usually resolve on the first retry.
- Text in the image is garbled or incorrect
  
  — This happens when the text you want is buried in a long prompt or described ambiguously. Fix: Write the exact string you want rendered as a quoted phrase near the start of the prompt, e.g.:
  
  "Bold white headline text: 'Get Started Free'"
  
  . Shorter strings (1–5 words) render more reliably than long sentences.

## GPT Image 1.5 vs alternatives — when to use this

Not every image job calls for GPT Image 1.5. Here is a quick decision table to help you pick the right model. You can browse all available models in the [AI Content Drop marketplace](https://aicontentdrop.com/marketplace).

| Use case | Best model | Why |
| --- | --- | --- |
| UI mockups, infographics, ad creative with readable text labels, price badges, or button copy | GPT Image 1.5 — 9 credits | Best text rendering and instruction-following in the lineup at this price |
| Photorealistic product shots, lifestyle imagery, or commercial ad images with no text required | Nano Banana Pro — 10 credits | Superior texture fidelity on fabric, packaging, and skin at a similar price point — see the [Nano Banana Pro JSON guide](https://aicontentdrop.com/blog/nano-banana-pro-json-prompt-guide) |
| High-volume concept testing (50+ variants quickly and cheaply) | Seedream 4.5 — 4 credits | Lower cost per image for rapid iteration; quality is good enough for thumbnail testing before committing to a hero image budget |

For a broader comparison of AI image models across different ad use cases, see our [best AI generators guide for 2026](https://aicontentdrop.com/blog/best-ai-video-generators-2026).

## Cost math for newcomers

Here is a concrete example to make the credit system tangible. Say you are running a product launch and you want 10 ad-creative variants — different headlines, different price badge placements, different background colors — to A/B test in a Facebook campaign.

10 images × 9 credits each = **90 credits**.

On the Starter plan ($19/month) you get 150 credits. Your entire 10-image test batch uses 60% of one month of Starter, leaving 60 credits for video or other experiments. And because AI Content Drop uses post-deduct billing — credits are only deducted after a successful generation — none of those 90 credits leave your account if a generation fails or hits a content policy block.

If you scale up to 50 variants (common for performance creative teams), that is 450 credits. The Professional plan ($49/month, 300 credits) combined with a small credit top-up covers the whole batch. Compare that to commissioning a designer for 50 ad creative iterations.

## Glossary

**Prompt**

The text description you give the AI model. It is your instruction for what the generated image should contain, how it should be laid out, and what style it should follow.

**JSON**

JavaScript Object Notation — a plain-text format APIs use to send and receive structured data. It looks like a set of key–value pairs wrapped in curly braces.

**API request**

A message you send to a server asking it to do something — in this case, generate an image. The request contains your instructions in JSON format.

**Endpoint**

A specific URL on a server that is set up to receive a particular type of request. For GPT Image 1.5, the official generation endpoint is `https://api.openai.com/v1/images/generations`.

**Base64**

A text encoding of binary data (like an image file). The OpenAI Images API returns images as base64 strings in the `b64_json` field — you decode this string to get the raw image bytes and save or display them.

**Synchronous response**

A response that arrives in the same HTTP connection you used to send the request — you do not need to poll a separate status endpoint. The OpenAI Images API is synchronous: you send the request and wait for the image to come back directly in the response.

**Post-deduct billing**

A billing model where credits are only deducted from your account after a generation succeeds. Failed or errored generations do not cost you anything.

**Text rendering**

A model's ability to draw legible, correctly spelled text inside the generated image. Most image models do this poorly; GPT Image 1.5 does it noticeably better for short strings.

## FAQ

### Can I just use the chat instead of writing JSON?

Yes. If writing JSON feels like too much right now, open the [Chat-to-Ads Studio](https://aicontentdrop.com/) and describe the image you want in plain English. The studio handles the JSON formatting for you behind the scenes — you can even say "add a button that reads 'Buy Now'" and it will pass that instruction to the model correctly.

### What if I get a 401 error?

A 401 means the server rejected your API key. Check that the `Authorization` header is spelled correctly, that your key starts with `Bearer` (with a space after "Bearer"), and that the key is pasted exactly from [platform.openai.com/api-keys](https://platform.openai.com/api-keys) — no extra spaces at the start or end. If you recently regenerated your key, the old one is invalidated immediately.

### How do I get a size that is not in the list?

You cannot request a custom pixel dimension like `1200x630` directly — the model only accepts the enum values listed in the reference table. Pick the closest size (for a 1200×630 Open Graph image, that is `1536x1024`), generate the image, then resize or crop it to exact pixel dimensions in any image editor or CSS.

### Does GPT Image 1.5 always render text correctly?

For short strings (1–5 words) placed prominently in the prompt, accuracy is high. For longer sentences, body copy, or text in a small font size, results vary. The safest pattern is: keep the string short, quote it explicitly in your prompt (e.g., *"button label: 'Start Free Trial'"*), and describe where in the image the text should appear. If perfect pixel-level typographic control matters — such as a legal disclaimer line — generate the image without text and overlay the copy in your design tool instead.