Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Each unit type can have a description, facilities, maximum number of guests, etc.

Integration Steps

Available Endpoints

Status
colourBlue
titleGET

/v1/updates/listings

Status
colourBlue
titleGET

/v1/listings/{listingId}

Step 1: Fetching the Listing Updates

  • Make an API call to route

    Status
    colourBlue
    titleGET
    /v1/updates/listings to fetch the latest listing updates.

  • As this is a paginated API, you have to pass the following parameters:

Parameter

Description

cursor

Each response contains a next cursor, that you can then use to retrieve the next page of updates.

limit

The maximum number of listing updates returned by API. (Maximum: 50)

  • If you are integrating with this API for the first time, the cursor parameter should be omitted. Every subsequent request should contain the cursor that is provided to you in the previous call’s next field. That way you can efficiently poll for listing updates that happened after the last successful pull.

...

Code Block
curl -X 'GET' \
  'https://chapi.bookiplyholidu.com/v1/updates/listings?cursor=asJ34sgt&limit=3' \
  -H 'Accept: application/json'
  -H 'Authorization: Bearer SIGNED_JWT'

...

Code Block
languagejson
{
  "updates": [
    {
      "listingId": "21e63d96-41aa-471c-af61-965f85e7a22a",
      "listingUrl": "/listings/21e63d96-41aa-471c-af61-965f85e7a22a",
      "active": true,
      "version": "9"
    },
    {
      "listingId": "706b9f81-9c3b-4c1b-8bf9-9ee4489d4b3e",
      "listingUrl": "/listings/706b9f81-9c3b-4c1b-8bf9-9ee4489d4b3e",
      "active": true,
      "version": "11"
    },
    {
      "listingId": "2409f4e5-d4c8-4fda-a1a5-b5d49677191b",
      "listingUrl": "/listings/2409f4e5-d4c8-4fda-a1a5-b5d49677191b",
      "active": true,
      "version": "12"
    }
  ],
  "next": "RyNAJRykNaJRxJSMjIwtNQD1sykxRsjK0M"
}

Parameter

Description

listingId

Unique id of the listing

listingUrl

The listing URL which can be used to fetch the listing

active

Boolean field.

  • true- The listing is active and accepts bookings.

  • false - The Listing is inactive and does not accept any future bookings

version

An unique identifier, specifying the update version in a global incremental series for every update.

If the version is 20, this means that this is the 20th update on Listing or Pricing in our inventory

Step 2: Processing the Listing Update

...

Code Block
curl -X 'GET' \
  'https://chapi.bookiplyholidu.com/v1/listings/21e63d96-41aa-471c-af61-965f85e7a22a' \
  -H 'Accept: application/json'
  -H 'Authorization: Bearer SIGNED_JWT'

...

Code Block
languagejson
{
  "listingId": "21e63d96-41aa-471c-af61-965f85e7a22a",
  "location": {
    "lat": 50.9293009,
    "lng": 5.9779776,
    "country": "Germany",
    "city": "Munich",
    "street": "Karlstrasse 66a",
    "postCode": "76133"
  },
  "photos": [
    {
      "id": "PHOTO-1",
      "url": "http://r-ec.bstatic.com/images/hotel/max500/149/14959242.jpg",
      "position": 1,
      "type": "INTERIOR",
      "size": {
        "width": 1920,
        "height": 1080
      },
      "photoTags": [
        "String"
      ]
    }
  ],
  "facilitiesamenities": [
    {
      "name": "SAUNA",
      "maxCount": 1,
      "privateUsage": true,
      "onDemand": true,
      "facilityCostextraCostsApply": false
 {   }
  ],
  "priceunitTypes": [
  20,  {
      "currencyunitTypeId": "EUR21e63d96-41aa-471c-af61-965f85e7a222",
 
      "mandatorylocalizations": [
true,        {
"includedInBasePrice": true,         "costsApplicableTypelanguage": "PER_PERSONen",
          "payOnSitetitle": true,"La Grotta",
          "costApplicabledescription": [
     "Die Appartament is located in the center of Bardolino...",
     {     "arrivalInstructions": "Die Appartamen can be reached by train "from": "2022-04-26",
 via ...",
          "tocrucialInformation": "2022-04-26"
Pets are not allowed ...",
          }
        ]"roomsAndAmenities": "The apartment has two rooms with WIFI ...",
       }   "outdoorArea": "There }is a shared ],pool and a "unitTypes": [
private garden ...",
   {       "unitTypeId": "21e63d96-41aa-471c-af61-965f85e7a222",
      "localizations": [
        {
          "language": "en",
          "title": "La Grotta",
          "description": "Die Appartament is located in the center of Bardolino...",
          "arrivalInstructions": "Die Appartamen can be reached by train via ...",
          "crucialInformation": "Pets are not allowed ...",
          "roomsAndAmenities": "The apartment has two rooms with WIFI ...",
          "outdoorArea": "There is a shared pool and a private garden ...",
          "surroundings": "A supermarket is near by ...",
          "additionalInformation": "Cleaning on request for additional fee ..."
        }
      ],
      "details": {
        "maxPersons": 4,
        "category": "STUDIO",
        "sizeInSqm": 100,
        "rooms": {
          "numberOfBedrooms": 2,
          "numberOfLivingrooms": 1,
          "numberOfBathrooms": 2,
          "configuration": [
            {
              "roomId": "room1",
              "roomType": "BED_ROOM",
              "beds": [
                {
                  "type": "BED_SINGLE",
                  "quantity": 1
                }
              ]
            }
          ]
        },
        "rules": {
          "checkInFrom": "11:00surroundings": "A supermarket is near by ...",
          "checkInToadditionalInformation": "11:00",Cleaning on request for additional       "checkOutUntil": "11:00",
 fee ..."
        "minLeadTime":}
{      ],
      "durationdetails": 6,
   {
        "unitmaxPersons": "HOURS"4,
          },
 "category": "STUDIO",
        "freeStayCutoffAgesizeInSqm": 2100,
 
        "petsAllowedrooms": true,{
          "childrenAllowednumberOfBedrooms": true2,
          "babiesAllowednumberOfLivingrooms": true1,
          "partiesAllowednumberOfBathrooms": true
       2,
 },         "cancellationPoliciesconfiguration": [
            {
              "policyIdroomId": "STRICTroom1",
              "gracePeriodroomType": {"BED_ROOM",
              "durationbeds": 2, [
                {
  "minCheckInOffset": 14,               "refundPercenttype": 100,"BED_SINGLE",
                  "unitquantity": "DAYS" 1
                },
             "paymentPolicies": []
            }
 {         ]
       "offset": 10},
        "rules": {
          "percentagecheckInFrom": 100,
     "11:00",
          "referenceDateTypecheckInTo": "CHECKIN11:00",
     
          "unitcheckOutUntil": "DAYS11:00",
           "minLeadTime": {
 }             ]"duration": 6,
            "periodsunit": "HOURS"
 [         },
     {     "freeStayCutoffAge": 2,
          "cutoffTimepetsAllowed": "MIDNIGHT_BEFORE_CHECKIN"true,
          "childrenAllowed": true,
    "offset": -30,     "babiesAllowed": true,
          "refundPercentpartiesAllowed": true
 50,        },
        "typecancellationPolicy": "CHECKIN",
     {
          "unitpolicyId": "DAYSSTRICT",
          "gracePeriod": {
  }             ]"duration": 2,
           } "minCheckInOffset": 14,
      ]      "refundPercent": }100,

     "facilities": [         {
"unit": "DAYS"
         "name": "SAUNA" },
          "maxCountpaymentPolicies": 1, [
            {
  "privateUsage": true,           "onDemandoffset": true10,
              "facilityCostpercentage": 100,
 {             "pricereferenceDateType": 20"CHECKIN",
              "currencyunit": "EURDAYS",
            "mandatory": true,
  }
         "includedInBasePrice": true],
 
          "costsApplicableTypeperiods": "PER_PERSON", [
            {
"payOnSite": true,             "costApplicablecutoffTime": ["MIDNIGHT_BEFORE_CHECKIN",
              {
 "offset": -30,
              "fromrefundPercent": "2022-04-26",
 50,
              "totype": "2022-04-26"CHECKIN",
               }"unit": "DAYS"
            ]}
          }]
        }
      ]},
      "photosamenities": [
        {
          "id": "PHOTO-1",
          "url": "http://r-ec.bstatic.com/images/hotel/max500/149/14959242.jpgname": "LINEN",
          "positionmaxCount": 1,
          "typeprivateUsage": "INTERIOR"null,
          "sizeonDemand": {
 true,
          "widthextraCostsApply": 1920, true
        }
      ],
      "heightphotos": 1080 [
        {
           }"id": "PHOTO-1",
          "photoTagsurl": [
 "http://r-ec.bstatic.com/images/hotel/max500/149/14959242.jpg",
          "Stringposition": 1,
         ] "type": "INTERIOR",
      }       ],"size": {
      "extraCosts": [       "width": 1920,
 {           "typeOfExtraCostheight": "LINEN",1080
          "costsApplicableType": "PER_PERSON_PER_WEEK"},
          "pricephotoTags": [
10,           "currency": "EURString",
          "isMandatory": true,]
        }
  "payOnSite": false,    ],
      "costApplicableextraCosts": [
   [     {
       {   "typeOfExtraCost": "LINEN",
          "fromchargeCycle": "2022-04-26",PER_PERSON",
          "price": 10,
          "tocurrency": "2022-04-26EUR",
          "type": "MANDATORY",
}           ]"paymentTime": "ON_SITE"
        }
      ],
      "reviews": [
        {
          "reviewId": "REVIEW-1",
          "reviewCreation": "2021-12-23T15:17:59.136Z",
          "arrivalDate": "2022-04-26",
          "headline": "Best Finca in Germany",
          "language": "en",
          "text": "Really nice Finca.",
          "textPositive": "Beautiful Garden. Plenty Sunlight.",
          "textNegative": "There is no tea kettle.",
          "score": 4.2
        }
      ]
    }
  ],
  "details": {
    "storey": 1,
    "sizeOfPlot": 140.5,
    "buildYear": 2001,
    "modernizedYear": 2007,
    "license": "123-456789",
    "classification": "FOUR_STARS",
    "mainResidence": "PRIMARY"
  }
}

Sync Frequency

To have the latest details for the listings, partners should poll the listing updates regularly. The listing updates API can be polled up to the interval provided in the Rate limiting. We recommend polling it at least every minute.

...