Prepare image uploads
Get temporary PUT URLs for original image uploads.
/v1/properties/{property_id}/images/uploadsRequires the properties:write scope
Send file metadata to reserve an upload session. Upload each accepted file's bytes directly to upload_url with HTTP PUT and the declared Content-Type. Do not send your Vestta API key to the storage URL.
Files must be JPEG, PNG or WebP, at most 10 MiB each. A property can contain at most 15 images. file_id is your correlation ID and must be unique within the session.
The original goes into private storage. An upload URL is temporary, permits upload only and is not a public photo URL. Inspect rejected before continuing; complete only accepted uploads.
Example request
curl -X POST "https://api.vestta.app/v1/properties/1/images/uploads" \
-H "X-Api-Key: $VESTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"files": [
{
"file_id": "photo-1",
"filename": "living-room.jpg",
"content_type": "image/jpeg",
"size": 125000
}
]
}'Authorization
X-Api-KeystringheaderrequiredYour API key,
AC_LIVE_<key_id>.<secret>.Authorization: ApiKey <key>is also accepted.
Path parameters
property_idintegerrequired≥ 1
Request body
application/json · required
filesarray of objectsrequired
Response
201 Successful response.
Response fields
session_idstringrequiredacceptedarray of objectsrequiredrejectedarray of objectsrequired
Errors
Error bodies and how to handle each case: Errors.