Enhance listing photos programmatically. Every enhancement is disclosure-safe by design (light, color, clarity and framing only) and structure-verified against the original. Base URL: https://verapix.shovelware.ai
Create a key in the app and pass it as a bearer token. Keys draw from your account's shared credit balance (1 credit per enhanced photo). The full secret is shown once at creation — store it securely.
Authorization: Bearer vpx_live_xxxxxxxxxxxxxxxxxxxxxxxx
Submit one photo for enhancement. Accepts either multipart/form-data (field photo) or JSON with a base64 image. Returns 202 with a photo id and a status URL; enhancement runs asynchronously.
| Field | Notes |
|---|---|
photo / image_base64 | The image. JPEG, PNG or WebP, ≤ 15 MB. |
strength | Optional: subtle, standard (default), or strong. |
filename | Optional (JSON mode only). |
# multipart
curl -X POST https://verapix.shovelware.ai/v1/enhance \
-H "Authorization: Bearer $VERAPIX_KEY" \
-F "photo=@living-room.jpg" \
-F "strength=standard"
# → 202
{ "id": "pho_ab12…", "status": "queued",
"status_url": "https://verapix.shovelware.ai/v1/photos/pho_ab12…" }
Poll for the result. When status is done, enhanced_url is a public link to the enhanced JPEG. structure_score is the brightness-invariant similarity to the original (the QA gate).
curl https://verapix.shovelware.ai/v1/photos/pho_ab12… \
-H "Authorization: Bearer $VERAPIX_KEY"
# → 200
{ "id": "pho_ab12…", "status": "done", "room_label": "living room",
"used_generative": true, "structure_score": 0.94,
"enhanced_url": "https://verapix.shovelware.ai/api/share/…/enhanced",
"error": null }
queued → processing → done (or failed, with error). Poll every ~2s; typical completion is a few seconds.
| Code | Meaning |
|---|---|
| 401 | Missing or invalid API key. |
| 402 | No credits remaining. |
| 400 | Bad request (missing/oversized/unsupported image). |
| 429 | Rate limited (per key). |