API v1 · Bulk staging
Bulk virtual staging API
Stage an entire gallery programmatically instead of one photo at a time. Request as many free upload slots as you need in a single call, then fire one staging request per image.
Free presigned uploads · request many at once
# Your key, from the API dashboard. Never commit it.
export PICTASTIC_API_KEY="sk_live_..."
# 1. Ask for many upload slots at once (free — costs no credits)
curl -H "Authorization: Bearer $PICTASTIC_API_KEY" \
"https://app.pictastic.ai/api/v1/presigned-urls?count=25"
# 2. PUT each photo to its slot, then loop the gallery through staging
for url in "${publicUrls[@]}"; do
curl -X POST "https://app.pictastic.ai/api/v1/virtual-staging" \
-H "Authorization: Bearer $PICTASTIC_API_KEY" \
-H "Content-Type: application/json" \
-d "{ \"imageUrl\": \"$url\", \"roomType\": \"Living Room\", \"designStyle\": \"Modern\" }"
done
# Each POST returns its own jobId and outputImageUrl.Overview
What is bulk virtual staging?
Bulk virtual staging means staging a whole batch of listing photos programmatically instead of one at a time in an editor. With the Pictastic API you request as many free upload slots as you need in one call, then send one staging request per image — so an entire gallery stages in a loop your software controls.
How it works
Upload, call, collect
Image inputs live on Pictastic storage, so every job starts with a free presigned upload.
- 1
Get a presigned upload URL
Ask for as many slots as you need, then PUT your image bytes straight to storage. This call is free — no credits.
- 2
Call the endpoint you want
Pass the returned publicUrl as imageUrl. Staging, removal and upscaling all take the same input shape.
- 3
Read the output URL
The response carries outputImageUrl and a downloadUrl, plus a jobId you can re-fetch later from the jobs history.
Why developers pick it
Built for whole-gallery volume
Everything you evaluate a batch staging workflow on, stated as capabilities rather than adjectives.
Batch your uploads in one call
Request as many presigned upload slots as you need with a single count parameter — free, so a large batch costs nothing to set up.
Pay per staged image, not per batch
Each successful staging is 1 credit, and any image that fails is refunded — so a big run only ever bills for the photos that came out.
A jobId per image
Every call in the loop returns its own jobId and outputImageUrl, so you can track, retry or re-fetch any single photo in the batch independently.
Your loop, your concurrency
Each request is an independent synchronous POST, so you control batch size and parallelism from your own code — no proprietary batch format to learn.
Part of one API
This is one operation of the virtual staging API
Staging, furniture removal and upscaling share one key, one input shape and one credit balance. See the full API overview, or jump to a related endpoint.
Bulk virtual staging API FAQ
What is bulk virtual staging?
Bulk virtual staging means staging a whole batch of listing photos programmatically instead of one at a time in an editor. With the Pictastic API you request as many free upload slots as you need in one call, then send one staging request per image — so an entire gallery stages in a loop your software controls.
How do I stage many photos at once?
Request several presigned upload URLs in one call using the count parameter, PUT each photo to its slot, then send one staging POST per image from your own loop. Each call is independent and returns its own result.
Is there a batch discount?
Staging is a flat 1 credit per successful image whether you send one or a thousand, all drawn from the same balance, and failed images are refunded — so you only ever pay for photos that come out.
Can I bulk-remove furniture or upscale too?
Yes. The same loop works for the furniture removal and upscaling endpoints — they take the same input shape, so a batch can clear rooms, restage them and upscale the results.
Start staging galleries in bulk today
Create a key in the dashboard and batch-stage your first gallery in the next few minutes.
Presigned uploads are free — you only spend credits on finished images.