List listings
Page through the listings enabled for your channel.
GET/api/v1/listing
Returns the listings enabled for your channel, one page at a time. Each item uses the same model as Get a listing.
Query parameters
| Parameter | Type | Description |
|---|---|---|
status | enum | ACTIVE or INACTIVE. Send ACTIVE to import sellable listings. |
displayCurrency | string | ISO 4217 currency for price fields. |
guests | integer | Minimum occupancy. 1 to 100. |
bedroomCount | integer | Number of bedrooms. 0 to 20. |
bathroomCount | integer | Number of bathrooms. 0 to 20. |
amenities | string list | Comma-separated amenity IDs. |
petFriendly | boolean | true returns pet-friendly listings only. |
propertyType | string list | Comma-separated property categories, such as Villa,Apartment. |
tags | UUID list | Comma-separated tag IDs. |
location | string | Coordinates as latitude,longitude. Send with radius. |
radius | number | Radius in kilometers around location. |
page | integer | Page number. Default 1. |
limit | integer | Items per page. Default 20, maximum 100. |
The propertyType parameter filters by category, such as Apartment or Villa. In the response, the category is in type, and propertyType holds the unit model: SINGLE_UNIT, MULTI_UNIT, or COMPLEX.
Example
curl --get "https://zepl-staging.calry.app/api/v1/listing" \
--header "x-calry-api-key: <API_KEY>" \
--data-urlencode "status=ACTIVE" \
--data-urlencode "displayCurrency=EUR" \
--data-urlencode "page=1" \
--data-urlencode "limit=20"{
"data": [
{
"id": "80e0e6d4-48cf-4ca7-8c85-6e8d7e9d969a",
"providerID": "staging-property-101",
"name": "Staging Apartment",
"description": "Two-bedroom apartment available for API testing.",
"type": "Apartment",
"propertyType": "SINGLE_UNIT",
"thumbnailURL": "https://example.com/images/staging-apartment.jpg",
"pictures": [
{ "url": "https://example.com/images/staging-apartment-1.jpg", "description": "Living room" }
],
"address": {
"city": "Paris",
"line1": "10 Example Street",
"state": "Ile-de-France",
"country": "France",
"postal_code": "75001"
},
"latitude": 48.8566,
"longitude": 2.3522,
"minimumNights": 2,
"maximumNights": 30,
"maxOccupancy": 4,
"startPrice": 120,
"currency": "EUR",
"timeZone": "Europe/Paris",
"status": "ACTIVE",
"rating": { "count": 12, "average": 4.7 },
"bedroomCount": 2,
"bathroomCount": 1,
"checkIn": { "op": "CHECK_IN", "start": "15:00:00", "end": "20:00:00" },
"checkOut": { "op": "CHECK_OUT", "start": "08:00:00", "end": "11:00:00" },
"houseRules": { "smokingAllowed": false, "petsAllowed": false },
"listingDetails": { "neighborhood": "Central Paris", "transit": "Metro station nearby" },
"amenities": {
"categories": {
"General": {
"categoryID": "general",
"values": [
{ "id": "wifi", "name": "Wi-Fi" },
{ "id": "kitchen", "name": "Kitchen" }
]
}
}
},
"tags": [],
"createdAt": "2026-07-01T09:00:00.000Z",
"updatedAt": "2026-07-15T09:00:00.000Z"
}
],
"meta": { "total": 2, "limit": 20, "totalPages": 1, "current": 1 }
}Response
| Field | Type | Description |
|---|---|---|
data | array | Listings. See Get a listing for the fields. |
meta | object | Pagination metadata. |
Status codes
| Status | Meaning |
|---|---|
200 | Listings returned. |
400 | A filter, currency, or pagination value is invalid. |
401 | The API key is missing or invalid. |