Upload a product photo and review session images through the API

The external API now accepts your own product photos and lets you look at a generated session image and record an accept or reject on it. Both work with an ordinary team API key.

Until now the external API could order generation but could not receive a photo. Products had to be uploaded in the application, which meant that anything built on the API — an integration, an assistant, a script of your own — could work with products you had already added, and nothing else.

Two things change, and they sit at opposite ends of the same workflow.

You can now put a product photo onto your account through the API. It takes two calls. The first asks for an upload address; the second registers the product once the bytes are there. Your file goes straight to storage rather than through our API, which is what keeps large photos fast and reliable.

The platform checks the file rather than taking your word for it. File size, the real image format, and the dimensions are all established from the stored file itself — not from what the request claims. A file that is not an image, or is too large, or too small to generate from, is refused straight away with a reason you can act on, instead of failing quietly somewhere later. A transfer that was cut short is told apart from a file of the wrong kind, because the first needs sending again and the second needs converting.

Registering the same photo twice does not create a second product. If a call times out, sending it again is safe.

A registered product is not ready to generate from immediately. It is described first, the same as a photo uploaded in the application, and that description is what the generators work from. The product list shows the progress, so an integration knows when to start.

At the other end, session images can now be reviewed through the API. You can ask for a single generated image and receive the picture itself, along with a fresh link for opening it full-size, and you can record accept or reject against it. The verdict lands in exactly the same place as one clicked in the application: an image accepted through the API appears as accepted in your gallery, and one accepted in the gallery is visible to the API. There is one decision per image, not two that can disagree.

Both additions work with an ordinary team API key and require no special permission beyond the one your key already uses to order generation.