OnSeasonChannel API

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

ParameterTypeDescription
statusenumACTIVE or INACTIVE. Send ACTIVE to import sellable listings.
displayCurrencystringISO 4217 currency for price fields.
guestsintegerMinimum occupancy. 1 to 100.
bedroomCountintegerNumber of bedrooms. 0 to 20.
bathroomCountintegerNumber of bathrooms. 0 to 20.
amenitiesstring listComma-separated amenity IDs.
petFriendlybooleantrue returns pet-friendly listings only.
propertyTypestring listComma-separated property categories, such as Villa,Apartment.
tagsUUID listComma-separated tag IDs.
locationstringCoordinates as latitude,longitude. Send with radius.
radiusnumberRadius in kilometers around location.
pageintegerPage number. Default 1.
limitintegerItems 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

FieldTypeDescription
dataarrayListings. See Get a listing for the fields.
metaobjectPagination metadata.

Status codes

StatusMeaning
200Listings returned.
400A filter, currency, or pagination value is invalid.
401The API key is missing or invalid.

On this page