List villas
GET /api/v1/properties
The villas of the key's organization. Archived villas are excluded by default — they no longer take new bookings.
Authorization
| Role in the organization | This endpoint |
|---|---|
owner | Allowed |
admin | Allowed |
member | Allowed |
Query parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number, from 1 |
limit | integer | 20 | Page size, capped at 100 |
search | string | — | Matches the villa name |
status | enum | active | active, archived or all |
Example
bash
curl -H "x-api-key: $VILLASLOT_API_KEY" \
"https://villaslot.app/api/v1/properties?limit=50&status=all"Response
200 OK— the page, withpagination: {total, page, limit, totalPages}.
json
{
"success": true,
"data": [
{
"id": "1f0a…",
"organizationId": "a379bb76-…",
"name": "Villa Suar",
"photoUrl": "https://…/villa.jpg",
"status": "active",
"nightlyRate": 4500000,
"checkInMinute": 840,
"checkOutMinute": 720,
"createdAt": "2026-01-04T08:00:00.000Z",
"updatedAt": "2026-01-04T08:00:00.000Z"
}
],
"pagination": {"total": 4, "page": 1, "limit": 50, "totalPages": 1}
}checkInMinute and checkOutMinute are local organization-timezone minutes,
from 0 to 1439. Defaults are 840 (14:00) and 720 (12:00). Each villa owns its pair;
existing bookings keep their stored instants. Configure the times in the villa settings.
What it refuses
422 Unprocessable Entity—statusis not one of the three accepted values.401 Unauthorized— missing or invalid key, or a key whose bearer left the organization.404 Not Found— unknown id, or an id belonging to another organization. The two are deliberately indistinguishable.429 Too Many Requests— over 120 requests in a minute for this key.