Skip to content
Pictastic.ai

API v1

Virtual staging API

Stage an empty room, clear out the furniture, or upscale a finished photo — with one authenticated POST. Built for photographers, brokerages and platforms shipping staging inside their own product.

Free presigned uploads · 1 credit per staged image

bash
# 1. Your key, from the API dashboard. Never commit it.
export PICTASTIC_API_KEY="sk_live_..."

# 2. Ask for an upload slot (free — costs no credits)
curl -H "Authorization: Bearer $PICTASTIC_API_KEY" \
  "https://app.pictastic.ai/api/v1/presigned-urls?count=1"
# → { "uploads": [ { "presignedUrl": "https://...", "publicUrl": "https://..." } ] }

# 3. Push your photo to the presigned URL
curl -X PUT -H "Content-Type: image/jpeg" \
  --data-binary @empty-room.jpg "<presignedUrl>"

# 4. Stage it (1 credit)
curl -X POST "https://app.pictastic.ai/api/v1/virtual-staging" \
  -H "Authorization: Bearer $PICTASTIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "imageUrl": "<publicUrl>",
    "roomType": "Living Room",
    "designStyle": "Modern"
  }'
# → { "jobId": "...", "status": "completed",
#     "outputImageUrl": "https://...", "creditsCharged": 1 }

Overview

What is a virtual staging API?

A virtual staging API is an HTTP endpoint that furnishes empty rooms, removes existing furniture, or upscales real estate photos programmatically — so you can stage listings inside your own software instead of a manual editor. The Pictastic virtual staging API does all three from a single authenticated POST and returns a finished image URL in the same response.

Endpoints

Three operations, one input shape

All three take the same imageUrl and return an output URL plus a job id. Swapping one for another is a one-line change.

POST/virtual-staging

Virtual staging

Furnish an empty room in a chosen style, interior or exterior.

Cost
1 credit
Options
roomType · designStyle · designType · prompt · aiIntervention
POST/furniture-removal

Furniture removal

Strip an occupied room back to empty walls and floors, ready to restage.

Cost
1 credit
Options
prompt (defaults to removing all furniture)
POST/upscale

Upscaling

Raise resolution on a finished image before it goes to the MLS.

Cost
3 credits
Options
scaleFactor — 2 (default) or 4

Full parameter tables, job history and pagination are in the reference docs.

How it works

Upload, call, collect

Image inputs live on Pictastic storage, so every job starts with a free presigned upload.

  1. 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. 2

    Call the endpoint you want

    Pass the returned publicUrl as imageUrl. Staging, removal and upscaling all take the same input shape.

  3. 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 to be the best virtual staging API

No leaderboard claims — just the things you actually evaluate an image API on.

You only pay for success

Requesting upload URLs is free, and a failed job refunds its 1 credit automatically. You are never billed for our errors.

One input shape, three operations

Staging, furniture removal and upscaling all take the same imageUrl. Switching one endpoint for another is a one-line change.

One key, two-line auth

Create a key in the dashboard and send it as an Authorization: Bearer or x-api-key header. No OAuth dance, no SDK required.

Shared credit balance

API calls draw on the same credits you use in the app, so credits you already own work from either side.

MLS-ready resolution

Upscale a finished image 2× or 4× before it goes to the listing, in the same pipeline that staged it.

Synchronous, with a job trail

The POST returns the finished outputImageUrl directly, and every call records a jobId you can re-fetch later instead of holding state yourself.

Who uses it

One API, four ways to ship staging

From a photographer scripting a whole gallery to a platform reselling under its own brand.

Real estate photographers

Script staging across a whole client gallery instead of restaging one photo at a time in an editor.

Brokerages & listing teams

Stage and restage listings at volume inside the workflow your agents already use.

PropTech & listing portals

Offer staging as a feature of your own product — your users never leave your app.

White-label platforms

Resell staging under your own brand and pricing.

See white-label

Auth and billing

One header, and no charge for our failures

Create a key in the dashboard, send it on every request, and check your balance whenever you like.

Authentication

Either header works — pick whichever your HTTP client makes easier.

  • Authorization: Bearer <key>
  • x-api-key: <key>

When it fails

401
Invalid key
402
Not enough credits
403
API access not active

Credits

Charged per successful image, drawn from the same balance you use in the app.

Virtual staging
1 credit
Furniture removal
1 credit
Upscaling
3 credits
Presigned upload URLs
Free

Failed jobs are refunded automatically. If processing does not complete, the credit goes back to your balance.

check your balance
curl -H "Authorization: Bearer $PICTASTIC_API_KEY" \
  "https://app.pictastic.ai/api/v1/credits"

# → { "totalCredits": 100, "usedCredits": 12, "remainingCredits": 88 }

Virtual staging API FAQ

What is a virtual staging API?

A virtual staging API is an HTTP endpoint that furnishes empty rooms, removes existing furniture, or upscales real estate photos programmatically — so you can stage listings inside your own software instead of a manual editor. The Pictastic virtual staging API does all three from a single authenticated POST and returns a finished image URL in the same response.

Is there a free virtual staging API?

You can start for free: new accounts include 5 virtual staging credits, requesting upload URLs never costs credits, and failed jobs are refunded — so you only spend a credit on a finished image. Staged photos work out from $0.24 each after that.

How much does the virtual staging API cost?

Virtual staging and furniture removal are 1 credit per successful image and upscaling is 3 credits, all drawn from the same credit balance you use in the app. Credit packs start from $0.24 per photo, presigned uploads are free, and any failed job is refunded automatically.

Can I send an image from my own S3 bucket or CDN?

Not directly. Image inputs have to live on Pictastic storage, so the flow is: request a presigned upload URL, PUT your bytes to it, then pass the returned publicUrl as imageUrl. Requesting presigned URLs is free and you can ask for several at once, so batching stays cheap.

How do I authenticate?

Create a key in the API dashboard, then send it on every request as either an Authorization: Bearer header or an x-api-key header. Either works. You will get a 401 for an invalid key, a 403 if API access is not active on your account, and a 402 if you are out of credits.

Is the response synchronous?

The POST returns a job with a status and, when it has finished, an outputImageUrl and a downloadUrl. Every call also records a jobId, so you can re-fetch a single job or page through your history per endpoint later rather than holding state yourself.

Do API credits work like credits in the app?

They draw on the same balance, so credits you already own are usable from either side. Check the balance any time with a GET to /credits, which returns your total, used and remaining counts.

Can I white-label the virtual staging API?

Yes. The same staging engine can run under your own brand, domain and pricing as a reseller — talk to us about volume and we will quote against your real numbers.

Start with the virtual staging API today

Create a key in the dashboard and your first request can go out in the next few minutes.

Presigned uploads are free — you only spend credits on finished images.