ai

POST /v1/ai/site-builds/{siteBuildId}/images

Draw the draft's images. Charges the content-images meter.

All ai endpoints

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

NameTypeRequiredWhat it is
siteBuildId (path)UuidYes

Request body

NameTypeRequiredWhat it is
agreed_total_usd_microsintegerYesThe `total_usd_micros` you were quoted. Refused with `price_moved` if it no longer matches, and nothing is charged.
providerstringNo
modelstringNo

Response

NameTypeRequiredWhat it is
imagesSiteBuildImage[]Yes
buildSiteBuildYesOne "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