LastShoot
Use cases / Marketplaces & retailers

A uniform catalogue,
at any size.

Bring seller photos to one backdrop, upscale low-resolution uploads, and run the whole catalogue as async jobs with webhooks.

POST/background/change/image/v1POST/upscale/image/v1POST/upload/image/v1
On-model shot on a warm beige backdrop
Seller photo
Same shot moved to a light studio backdrop
Background changed
POST/background/change/image/v1
Step 01

One backdrop for every listing

Describe the backdrop your catalogue uses. The subject, pose and product stay as shot, the background changes.

POST/background/change/image/v1
$POST/background/change/image/v1
{
  "input_image": "https://cdn.brand.com/listings/88214.jpg",
  "prompt": "clean light grey studio backdrop, soft floor shadow",
  "output_format": "webp",
  "callback_url": "https://hooks.brand.com/lastshoot"
}
Listing photo on a beige backdrop
input_image
Listing photo moved to a light studio backdrop
New backdrop
POST/background/change/image/v1
Step 02

Upscale low-resolution uploads

Bring small or soft seller images up to 2048 px with sharper detail, so every listing can use the same zoom.

POST/upscale/image/v1
$POST/upscale/image/v1
{
  "input_image": "https://cdn.brand.com/listings/88215.jpg",
  "width": 2048,
  "height": 2048,
  "output_format": "webp"
}
Portrait before upscaling, close crop
Before
Portrait after upscaling, close crop
After upscale
POST/upscale/image/v1
Step 03

Upload files you do not host

Have images that are not on a public URL yet? Upload the file and pass the returned url to any endpoint.

POST/upload/image/v1
$POST/upload/image/v1
-F "file=@listing-88216.jpg"
Local listing photo to upload
file
Uploaded photo after a background change
Processed
POST/upload/image/v1
The code

One key. Async jobs.

Every call takes an X-API-Key header and returns a job_id. Poll the status endpoint, or pass a callback_url and get a webhook when the job completes or fails.

Read the docs
batch.sh
1# 1. Upload a local file, get back a url
2curl https://api.lastshoot.com/upload/image/v1 \
3 -H "X-API-Key: $LASTSHOOT_API_KEY" \
4 -F "file=@listing-88216.jpg"
5
6# 2. Queue the job. The webhook fires when it completes or fails.
7curl https://api.lastshoot.com/background/change/image/v1 \
8 -H "X-API-Key: $LASTSHOOT_API_KEY" \
9 -H "Content-Type: application/json" \
10 -d '{
11 "input_image": "<url from step 1>",
12 "prompt": "clean light grey studio backdrop, soft floor shadow",
13 "output_format": "webp",
14 "callback_url": "https://hooks.brand.com/lastshoot"
15 }'
16
17# Async: the call returns a job_id. Poll, or wait for the webhook.
18curl https://api.lastshoot.com/background/change/image/v1/status/$JOB_ID \
19 -H "X-API-Key: $LASTSHOOT_API_KEY"

Try it on your own catalogue.

Bring a few product photos. We will run them through these endpoints with you.