CalryOTA Docs
Listing

Bulk update listings

Updates multiple listings in a single request. Allows updating different fields for different listings simultaneously. Returns information about successful updates and any errors encountered.

POST
/api/v1/listing/bulk-update

Authorization

x-calry-api-key
x-calry-api-key<token>

In: header

Header Parameters

x-calry-tenant-id?string

Optional tenant ID to specify which tenant to operate as. If not provided, the default tenant will be used.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/api/v1/listing/bulk-update" \  -H "Content-Type: application/json" \  -d '{    "data": {      "123e4567-e89b-12d3-a456-426614174000": {        "bathroomCount": 3,        "timeZone": "Asia/Dubai"      },      "223e4567-e89b-12d3-a456-426614174000": {        "internalName": "Updated Villa Name",        "maxOccupancy": 8      }    }  }'
{
  "errors": {
    "123e4567-e89b-12d3-a456-426614174000": "Listing not found",
    "0b8c2f59-8142-47f4-b6b0-032d3d21465b": "The following fields cannot be updated because they are synced from the provider: latitude. Updatable fields are: checkIn, contact, checkOut, pictures, timeZone, startPrice, bedroomCount, internalName, maxOccupancy, thumbnailUrl, bathroomCount, parentPropertyID"
  },
  "updated": [
    "323e4567-e89b-12d3-a456-426614174000",
    "423e4567-e89b-12d3-a456-426614174000"
  ]
}
{
  "timestamp": "2025-03-05T11:45:49.631Z",
  "path": "<URL_PATH>",
  "message": "Authentication failed",
  "details": []
}