Skip to content

Loading…

Publish or unpublish

Set desired visibility and generate protected public images.

PUT/v1/properties/{property_id}/publication

Requires the properties:publish scope

On this page

Send {"published": true} to publish. The response is 202 Accepted, with Location and Retry-After: 2. Follow publication status until published is true. A property remains private while processing or after an error.

Send {"published": false} to remove it from the catalogue immediately (200). A pending worker cannot publish it afterwards. This does not guarantee removal of images already downloaded or cached by third parties.

Publication is an explicit choice, independent of commercial status. Save the property before publishing; external API requests also require type, operation, title and city. Each public photo is a permanent copy with an independent random ID. New photos are watermarked; existing photos grandfathered during migration may remain unmarked. No original path, filename or private storage URL is returned.

Example request

curl -X PUT "https://api.vestta.app/v1/properties/1/publication" \
  -H "X-Api-Key: $VESTTA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "published": true
}'

Authorization

  • X-Api-Keystringheaderrequired

    Your API key, AC_LIVE_<key_id>.<secret>. Authorization: ApiKey <key> is also accepted.

Path parameters

  • property_idintegerrequired≥ 1

Request body

application/json · required

  • publishedbooleanrequired

    Desired visibility. Publishing prepares public copies before making the property public; new photos are watermarked.

Response

200 Successful response.

Example response
{
  "status": "ok",
  "data": {
    "status": "private",
    "published": false,
    "requested": false,
    "images": []
  }
}

Response fields

  • statusstring default: ok always ok
  • dataPublicationStaterequired

Errors

StatusWhen
401 UnauthorizedThe API key is missing, malformed, unknown, revoked or expired.
403 ForbiddenThe API key lacks the required scope.
404 Not FoundThe resource does not exist in this business.
409 ConflictDuplicate contact or idempotency key reused with a different payload.
422 Unprocessable ContentA path parameter, query parameter or body field is invalid.
500 Internal Server ErrorUnexpected server error while processing the request.

Error bodies and how to handle each case: Errors.