ai
POST /v1/ai/site-builds/{siteBuildId}/images
Draw the draft's images. Charges the content-images meter.
Authentication
Send an API key as a bearer token. The key must carry the sites.create permission; a key without it is refused with 403, not 404.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X POST https://api.zinndigital.com/v1/ai/site-builds/{siteBuildId}/images \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "agreed_total_usd_micros": <integer> }'Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
Generates every image the markup asks for and stores it against the draft, so a publish carries the pictures as well as the markup. **Send back the total you were quoted.** If the price has moved since — the catalogue changed, a model was withdrawn, another tab generated some of the same images — this is refused with `price_moved` and nothing is charged. A confirm that charged a different number from the one on the screen is the one thing a money confirm must never do. Images already generated are skipped and not re-charged, so pressing the button twice costs nothing the second time. Two meters bill for a draft with images: the build's own generation, and this. Both are visible on the organization's AI usage screen. Requires `sites.create`.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
siteBuildId (path) | Uuid | Yes | — |
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
agreed_total_usd_micros | integer | Yes | The `total_usd_micros` you were quoted. Refused with `price_moved` if it no longer matches, and nothing is charged. |
provider | string | No | — |
model | string | No | — |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
images | SiteBuildImage[] | Yes | — |
build | SiteBuild | Yes | One "describe a site and we build it" run. `files` is present on the **detail** and create responses and absent from the **list**, deliberately: a generated tree can be a hundre… |
Errors this endpoint can return
401 · 403 · 404 · 422 · 429