CHR API-GATEWAY Search
Hotel search cache
to get data from API-GATEWAY search cache use the following endpoint. All the search cache data with type=public is made with one room and 2 adults
Request info
Item |
Description |
URL |
/v1/hotel-searches |
Type |
GET |
GET params
Item |
Possible values |
Explanation |
_includes |
hotel_search_result.meal_plans, hotel_search_result.rooms, hotel_search_result.discount, hotel_search_result.meal_plans, hotel_search_result.fees |
include solicited data |
type |
public |
type must be public |
Response
Item |
Description |
id |
search id |
destination_id |
destination id see Static Data -> Destinations list |
hotel_id |
hotel id see Static Data -> Hotel list *for cache data hotel_id will be always 0 |
check_in |
check in date (Y-m-s) |
nights |
number of nights |
type |
public or private |
pax |
pax data |
finished |
if the search is finished true or false |
last_result_created_at |
datetime of the last result (Y-md H:i:s) |
_includes.hotel_search_result |
results list |
_includes.hotel_search_result.data.id |
result id |
_includes.hotel_search_result.data.hotel_id |
hotel id see Static Data -> Hotel list |
_includes.hotel_search_result.data.to |
tour operator code |
_includes.hotel_search_result.data.min_price |
the minimum price for the search true or false |
_includes.hotel_search_result.data.gross |
gross price |
_includes.hotel_search_result.data.tax |
tax price |
_includes.hotel_search_result.data.total_discount |
discount |
_includes.hotel_search_result.data.is_hot_deal |
is hot deal true or false |
_includes.hotel_search_result.data.allocation |
allocation |
_includes.hotel_search_result.data.is_available |
is available true or false |
_includes.hotel_search_result.data.currency |
currency |
_includes.hotel_search_result.data._includes.meal_plans |
meal plans list for the result |
_includes.hotel_search_result.data._includes.meal_plans.data.id |
meal plan id |
_includes.hotel_search_result.data._includes.meal_plans.data.label_id |
meal plan label see Static Data Meal plan labels |
_includes.hotel_search_result.data._includes.meal_plans.data.gross |
meal plan price |
_includes.hotel_search_result.data._includes.meal_plans.data.tax |
meal plan tax |
_includes.hotel_search_result.data._includes.rooms.data |
room info |
_includes.hotel_search_result.data._includes.rooms.data.id |
room result id |
_includes.hotel_search_result.data._includes.rooms.data.hotel_room_category_id |
hotel room category id see Static Data Hotel list => room_categories |
_includes.hotel_search_result.data._includes.discount.data |
result discount rules |
_includes.hotel_search_result.data._includes.discount.data.discount_label_id |
discount label id |
_includes.hotel_search_result.data._includes.discount.data.text |
discount description |
_includes.hotel_search_result.data._includes.discount.data.booking_from |
discount booking from |
_includes.hotel_search_result.data._includes.discount.data.booking_to |
discount booking to |
_includes.hotel_search_result.data._includes.discount.data.travel_from |
discount travel from |
_includes.hotel_search_result.data._includes.discount.data.travel_to |
discount travel to |
_includes.hotel_search_result.data._includes.discount.data.percent |
discount percent value |
_includes.hotel_search_result.data._includes.discount.data.value |
discount fixed value |
Example
Request
curl --request GET \
--url 'URL/v1/hotel-searches?_includes=hotel_search_result.meal_plans%2Chotel_search_result.rooms%2Chotel_search_result.discount.label%2Chotel_search_result.meal_plans.label%2Chotel_search_result.fees%2Chotel_search_result.extra_components.extra_component%2Chotel_search_result.extra_info.label&type=public' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/x-www-form-urlencoded'
Response
{
"data": [
{
"id": 64198734,
"destination_id": 26,
"hotel_id": 0,
"check_in": "2021-06-01",
"nights": 3,
"type": "public",
"pax": "[{\"adults\":2,\"child_ages\":[]}]",
"finished": true,
"last_result_created_at": "2021-05-25 00:30:10",
"created_at": "2020-07-12T15:44:12+03:00",
"updated_at": "2021-06-01T01:10:58+03:00",
"_includes": {
"hotel_search_result": {
"data": [
{
"id": 691793634,
"search_id": 64198734,
"hotel_id": 13543,
"to": null,
"min_price": true,
"gross": "187.00",
"tax": "0.00",
"total_discount": "0.00",
"is_hot_deal": true,
"allocation": "not_available",
"is_available": true,
"currency": "EUR",
"fare_type_id": 0,
"created_at": "2021-05-21T01:59:16+03:00",
"updated_at": "2021-06-01T01:10:57+03:00",
"_includes": {
"meal_plans": {
"data": [
{
"id": 717222692,
"result_id": 691793634,
"label_id": 37,
"gross": "0.00",
"tax": "0.00",
"_includes": {
"label": {
"data": {
"id": 37,
"user_id": 1,
"name": "All Inclusive",
"slug": "all-inclusive"
},
"instance": "meal_plan_label"
}
}
}
],
"instance": "search_result_meal_plan"
},
"rooms": {
"data": [
{
"id": 786692577,
"result_id": 691793634,
"api_index": "0",
"hotel_room_category_id": 35074
}
],
"instance": "search_result_room"
},
"discount": {
"data": [
{
"id": 13591463,
"result_id": 305726261,
"discount_label_id": 2907,
"text": null,
"booking_from": "2019-10-28 00:00:00",
"booking_to": "2019-12-31 23:59:00",
"travel_from": null,
"travel_to": null,
"percent": "35.00",
"value": "0.00",
"created_at": "2019-11-27T14:04:27+02:00",
"updated_at": "2019-11-27T14:04:27+02:00"
}
],
"instance": "search_result_discount"
}
}
}
]
}
}
}
],
"links": {
"first": "URL/v1\/hotel-searches?_includes=hotel_search_result.meal_plans%2Chotel_search_result.rooms%2Chotel_search_result.discount.label%2Chotel_search_result.meal_plans.label%2Chotel_search_result.fees%2Chotel_search_result.extra_components.extra_component%2Chotel_search_result.extra_info.label&type=public&_page=1",
"last": "URL/v1\/hotel-searches?_includes=hotel_search_result.meal_plans%2Chotel_search_result.rooms%2Chotel_search_result.discount.label%2Chotel_search_result.meal_plans.label%2Chotel_search_result.fees%2Chotel_search_result.extra_components.extra_component%2Chotel_search_result.extra_info.label&type=public&_page=71808",
"prev": null,
"next": "URL/v1\/hotel-searches?_includes=hotel_search_result.meal_plans%2Chotel_search_result.rooms%2Chotel_search_result.discount.label%2Chotel_search_result.meal_plans.label%2Chotel_search_result.fees%2Chotel_search_result.extra_components.extra_component%2Chotel_search_result.extra_info.label&type=public&_page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 71808,
"path": "URL/v1\/hotel-searches",
"per_page": 10,
"to": 10,
"total": "718079"
}
}
Hotel search
this search is for creating a live search in all the upstreams apis. the search will not return immediate results,
the search will be processed by a background job. to get the results you will need to pool the search until finished became true
first step create a search
Item |
Description |
URL |
/v1/hotel-searches |
Type |
POST |
GET params
Item |
Possible values |
Explanation |
check_in |
check in date (Y-m-d) |
*required |
destination_id |
destination id see Static Data Destinations list |
*required |
hotel_id |
hotel id see Static Data Hotel list |
*optional |
nights |
number of nights to stay at the hotel |
*required |
pax |
search pax |
*required |
Example
Request
curl --request POST \
--url URL/v1/hotel-searches \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
--form check_in=2021-11-27 \
--form destination_id=278 \
--form nights=3 \
--form 'pax[0][adults]=2' \
--form 'pax[0][child_ages]=[]'
Response
{
"data": {
"id": 91177227,
"destination_id": 278,
"hotel_id": 49615,
"check_in": "2021-11-27",
"nights": 3,
"type": "private",
"pax": "[{\"adults\":2,\"child_ages\":\"[]\"}]",
"finished": false,
"last_result_created_at": null,
"created_at": "2021-10-26T20:55:35+03:00",
"updated_at": "2021-10-26T20:55:36+03:00"
}
}
second step pool for results until finished=false
Request info
Item |
Description |
URL |
/v1/hotel-searches/{search_id} |
Type |
GET |
GET params
Item |
Possible values |
Explanation |
_includes |
hotel_search_result.meal_plans, hotel_search_result.rooms, hotel_search_result.discount, hotel_search_result.meal_plans, hotel_search_result.fees |
include solicited data |
Hotel search for booking
is the same as the Hotel search but hotel_id is required, and we need to add to the request
_includes=hotel_search_result.meal_plans,hotel_search_result.rooms,hotel_search_result.discount,hotel_search_result.meal_plans,hotel_search_result.fees
and _sync=true. the results will come when the request is finished. the results can be used to make a book request
Example
Request
curl --request POST \
--url URL/v1/hotel-searches \
--header 'Authorization: Bearer ak9tU1BzN1lFZks0amJ5Rm9kSzJSNmtVenJjckZLdUlEbzZmVnYwbQ==' \
--header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
--form check_in=2021-11-27 \
--form destination_id=278 \
--form hotel_id=49615 \
--form nights=3 \
--form 'pax[0][adults]=2' \
--form 'pax[0][child_ages]=[]' \
--form '_includes=hotel_search_result.meal_plans,hotel_search_result.rooms,hotel_search_result.discount,hotel_search_result.meal_plans,hotel_search_result.fees' \
--form _sync=true
the response is similar with the response from Hotel search cache
Package search cache
to get data from API-GATEWAY search cache use the following endpoint. All the search cache data with type=public is made with one room and 2 adults
Request info
Item |
Description |
URL |
/v1/package-searches |
Type |
GET |
GET params
Item |
Possible values |
Explanation |
_includes |
package_search_result.discount, package_search_result.flights.legs, package_search_result.meal_plans, package_search_result.rooms, package_search_result.bus, package_search_result.fees |
include solicited data |
type |
public |
type must be public |
Response
Item |
Description |
id |
search id |
transport_id |
transport id see Static Data -> Transport list |
departure_point_id |
departure point id see Static Data -> Destinations list |
destination_id |
destination id see Static Data -> Destinations list |
duration |
package number of nights |
hotel_id |
hotel id see Static Data -> Hotel list *for cache data hotel_id will be always 0 |
departure_date |
departure date (Y-m-d) |
type |
search type |
pax |
pax |
last_result_created_at |
datetime for the last result (Y-m-d H:i:s) |
_includes.package_search_result.data |
search results |
_includes.package_search_result.data.id |
package search result id |
_includes.package_search_result.data.hotel_id |
hotel id see Static Data -> Hotel list |
_includes.package_search_result.data.package_id |
package id see Static Data -> Package list |
_includes.package_search_result.data.min_price |
the minimum price for the search true or false |
_includes.package_search_result.data.gross |
gross price |
_includes.package_search_result.data.tax |
tax price |
_includes.package_search_result.data.total_discount |
discount |
_includes.package_search_result.data.is_hot_deal |
is hot deal true or false |
_includes.package_search_result.data.allocation |
allocation |
_includes.package_search_result.data.is_available |
is available true or false |
_includes.package_search_result.data.currency |
currency |
_includes.package_search_result.data._includes.meal_plans |
meal plans list for the result |
_includes.package_search_result.data._includes.meal_plans.data.id |
meal plan id |
_includes.package_search_result.data._includes.meal_plans.data.label_id |
meal plan label see Static Data Meal plan labels |
_includes.package_search_result.data._includes.meal_plans.data.gross |
meal plan price |
_includes.package_search_result.data._includes.meal_plans.data.tax |
meal plan tax |
_includes.package_search_result.data._includes.rooms.data |
room info |
_includes.package_search_result.data._includes.rooms.data.id |
room result id |
_includes.package_search_result.data._includes.rooms.data.hotel_room_category_id |
hotel room category id see Static Data Hotel list => room_categories |
_includes.package_search_result.data._includes.discount.data |
result discount rules |
_includes.package_search_result.data._includes.discount.data.discount_label_id |
discount label id |
_includes.package_search_result.data._includes.discount.data.text |
discount description |
_includes.package_search_result.data._includes.discount.data.booking_from |
discount booking from |
_includes.package_search_result.data._includes.discount.data.booking_to |
discount booking to |
_includes.package_search_result.data._includes.discount.data.travel_from |
discount travel from |
_includes.package_search_result.data._includes.discount.data.travel_to |
discount travel to |
_includes.package_search_result.data._includes.discount.data.percent |
discount percent value |
_includes.package_search_result.data._includes.discount.data.value |
discount fixed value |
_includes.package_search_result.data._includes.bus.data |
bus trip info |
_includes.package_search_result.data._includes.bus.data.price |
price |
_includes.package_search_result.data._includes.bus.data.total_discount |
total discount |
_includes.package_search_result.data._includes.bus.data.label |
label |
_includes.package_search_result.data._includes.bus.data.outbound_date |
departure date |
_includes.package_search_result.data._includes.bus.data.inbound_date |
returning date |
_includes.package_search_result.data._includes.bus.data.from |
departure point id see Static Data -> Destinations list |
_includes.package_search_result.data._includes.bus.data.to |
destination id see Static Data -> Destinations list |
_includes.package_search_result.data._includes.bus.data.bus_type |
bus type |
_includes.package_search_result.data._includes.bus.data.type |
type |
_includes.package_search_result.data._includes.flights.data |
flights list |
_includes.package_search_result.data._includes.flights.data.type |
flight type inbond or outbound |
_includes.package_search_result.data._includes.flights.data.airline |
flight airline |
_includes.package_search_result.data._includes.flights.data.class |
flight class |
_includes.package_search_result.data._includes.flights.data.cabin |
flight cabin |
_includes.package_search_result.data._includes.flights.data.cabin_name |
flight cabin_name |
_includes.package_search_result.data._includes.flights.data._includes.legs.data |
flight legs list |
_includes.package_search_result.data._includes.flights.data._includes.legs.data.from |
departure airport IATA code |
_includes.package_search_result.data._includes.flights.data._includes.legs.data.from |
departure airport IATA code |
_includes.package_search_result.data._includes.flights.data._includes.legs.data.to |
arrival airport IATA code |
_includes.package_search_result.data._includes.flights.data._includes.legs.data.departure |
departure datetime |
_includes.package_search_result.data._includes.flights.data._includes.legs.data.arrival |
arrival datetime |
_includes.package_search_result.data._includes.flights.data._includes.legs.data.airline |
leg airline |
_includes.package_search_result.data._includes.flights.data._includes.legs.data.flight_no |
leg flight number |
_includes.package_search_result.data._includes.flights.data._includes.legs.data.class |
leg class |
_includes.package_search_result.data._includes.flights.data._includes.legs.data.flight_time |
leg flight time |
Example
Request
curl --request GET \
--url 'URL/v1/package-searches?type=public&type=public&_includes=package_search_result.discount%2Cpackage_search_result.flights.legs%2Cpackage_search_result.meal_plans%2Cpackage_search_result.rooms%2Cpackage_search_result.bus%2Cpackage_search_result.fees' \
--header 'Authorization: Bearer TOKEN'
Response
{
"data": [
{
"id": 9483595,
"transport_id": 3,
"departure_point_id": 189,
"destination_id": 2621,
"duration": 7,
"hotel_id": 0,
"departure_date": "2021-06-23",
"type": "public",
"pax": "[{\"adults\":2,\"child_ages\":[]}]",
"last_result_created_at": "2021-01-15 03:11:23",
"created_at": "2020-04-10T00:36:33+03:00",
"updated_at": "2021-06-02T02:01:11+03:00",
"_includes": {
"package_search_result": {
"data": [
{
"id": 544139828,
"search_id": 9483595,
"hotel_id": 14355,
"package_id": 88348,
"min_price": true,
"gross": "858.00",
"tax": "190.00",
"total_discount": "300.00",
"is_hot_deal": false,
"allocation": "not_available",
"is_available": true,
"currency": "EUR",
"fare_type_id": null,
"created_at": "2020-09-30T02:22:08+03:00",
"updated_at": "2021-05-11T01:08:33+03:00",
"_includes": {
"bus": {
"data": [
{
"id": 21732930,
"result_id": 544409286,
"price": "0.00",
"total_discount": "0.00",
"label": "Corfu-iesire Giurgiu",
"outbound_date": "2021-08-29 00:00:00",
"inbound_date": "2021-09-06 00:00:00",
"from": 224,
"to": 2337,
"bus_type": "Setra 59",
"type": null
}
],
"instance": "search_result_bus"
},
"discount": {
"data": [
{
"id": 513066591,
"result_id": 544139828,
"discount_label_id": 13340,
"text": null,
"booking_from": null,
"booking_to": "2021-06-03",
"travel_from": "2021-06-23",
"travel_to": "2021-06-23",
"percent": "0.00",
"value": "0.00"
}
],
"instance": "search_result_discount"
},
"flights": {
"data": [
{
"id": 1009374161,
"result_id": 544139828,
"type": "outbound",
"airline": "A2",
"class": "Y",
"cabin": "",
"cabin_name": null,
"_includes": {
"legs": {
"data": [
{
"id": 1011445741,
"flight_id": 1009374161,
"api_index": 0,
"from": "OTP",
"to": "NBE",
"departure": "2021-06-23T06:00:00+03:00",
"arrival": "2021-06-23T06:30:00+03:00",
"airline": "A2",
"flight_no": "5001",
"class": "Y",
"flight_time": "9000"
}
],
"instance": "search_result_flight_leg"
}
}
},
{
"id": 1009374163,
"result_id": 544139828,
"type": "inbound",
"airline": "A2",
"class": "Y",
"cabin": "",
"cabin_name": null,
"_includes": {
"legs": {
"data": [
{
"id": 1011445743,
"flight_id": 1009374163,
"api_index": 0,
"from": "NBE",
"to": "OTP",
"departure": "2021-06-30T14:00:00+03:00",
"arrival": "2021-06-30T18:45:00+03:00",
"airline": "A2",
"flight_no": "5002",
"class": "Y",
"flight_time": "9000"
}
],
"instance": "search_result_flight_leg"
}
}
}
],
"instance": "search_result_flight"
},
"meal_plans": {
"data": [
{
"id": 611623069,
"result_id": 544139828,
"api_index": 0,
"code": "AI",
"label_id": 37,
"gross": "0.00",
"tax": "0.00"
}
],
"instance": "search_result_meal_plan"
},
"rooms": {
"data": [
{
"id": 544485880,
"result_id": 544139828,
"api_index": "0",
"hotel_room_category_id": 38574,
"code": null,
"pax": "[{\"Type\":\"ADT\",\"Age\":30,\"IsFree\":false},{\"Type\":\"ADT\",\"Age\":30,\"IsFree\":false}]"
}
],
"instance": "search_result_room"
},
"fees": {
"data": [],
"instance": "package_search_result_fee"
}
}
}
]
}
}
}
],
"links": {
"first": "URL/v1\/package-searches?type=public&_includes=package_search_result.discount%2Cpackage_search_result.flights.legs%2Cpackage_search_result.meal_plans%2Cpackage_search_result.rooms%2Cpackage_search_result.bus%2Cpackage_search_result.fees&_page=1",
"last": "URL/v1\/package-searches?type=public&_includes=package_search_result.discount%2Cpackage_search_result.flights.legs%2Cpackage_search_result.meal_plans%2Cpackage_search_result.rooms%2Cpackage_search_result.bus%2Cpackage_search_result.fees&_page=2500",
"prev": null,
"next": "URL/v1\/package-searches?type=public&_includes=package_search_result.discount%2Cpackage_search_result.flights.legs%2Cpackage_search_result.meal_plans%2Cpackage_search_result.rooms%2Cpackage_search_result.bus%2Cpackage_search_result.fees&_page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2500,
"path": "URL/v1\/package-searches",
"per_page": 10,
"to": 10,
"total": 25000
}
}
Package search
this search is for creating a live search in all the upstreams apis. the search will not return immediate results,
the search will be processed by a background job. to get the results you will need to pool the search until finished became true
first step create a search
Item |
Description |
URL |
/v1/package-searches |
Type |
POST |
GET params
Item |
Possible values |
Explanation |
transport_id |
transport id |
*required |
departure_date |
check in date (Y-m-d) |
*required |
destination_id |
destination id see Static Data Destinations list |
*required |
departure_point_id |
departure point id see Static Data Destinations list |
*required |
hotel_id |
hotel id see Static Data Hotel list |
*optional |
duration |
number of nights to stay at the hotel |
*required |
pax |
search pax |
*required |
Example
Request
curl --request POST \
--url URL/v1/package-searches \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data destination_id=28 \
--data transport_id=3 \
--data departure_date=2021-09-16 \
--data duration=7 \
--data departure_point_id=189 \
--data 'pax[0][adults]=2' \
--data 'pax[0][child_ages]=[]'
Response
{
"data": {
"id": 14890469,
"transport_id": 3,
"departure_point_id": 189,
"destination_id": 28,
"duration": 7,
"hotel_id": 0,
"departure_date": "2021-11-16",
"type": "private",
"pax": "[{\"adults\":\"2\",\"child_ages\":\"[]\"}]",
"finished": false,
"last_result_created_at": null,
"created_at": "2021-10-28T13:20:36+03:00",
"updated_at": "2021-10-28T13:20:40+03:00"
}
}
second step pool for results until finished=false
Request info
Item |
Description |
URL |
/v1/package-searches/{search_id} |
Type |
GET |
GET params
Item |
Possible values |
Explanation |
_includes |
package_search_result.discount, package_search_result.flights.legs, package_search_result.meal_plans, package_search_result.rooms, package_search_result.bus, package_search_result.fees |
include solicited data |
Package search for booking
is the same as the Package search but hotel_id is required, and we need to add to the request
_includes=package_search_result.discount,package_search_result.flights.legs,package_search_result.meal_plans,package_search_result.rooms,package_search_result.bus,package_search_result.fees
and _sync=true. the results will come when the request is finished. the results can be used to make a book request
Example
Request
curl --request POST \
--url 'URL/v1/package-searches?_includes=package_search_result.discount%2Cpackage_search_result.flights.legs%2Cpackage_search_result.meal_plans%2Cpackage_search_result.rooms%2Cpackage_search_result.bus%2Cpackage_search_result.fees' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data destination_id=28 \
--data transport_id=3 \
--data departure_date=2021-11-16 \
--data duration=7 \
--data departure_point_id=189 \
--data 'pax[0][adults]=2' \
--data 'pax[0][child_ages]=[]' \
--data hotel_id=14495 \
--data _sync=true
the response is similar with the response from Package search cache
Circuit search cache
to get data from API-GATEWAY search cache use the following endpoint. All the search cache data with type=public is made with one room and 2 adults
Request info
Item |
Description |
URL |
/v1/circuit-searches |
Type |
GET |
GET params
Item |
Possible values |
Explanation |
_includes |
circuit_search_result.discount, circuit_search_result.flights.legs, circuit_search_result.meal_plans, circuit_search_result.rooms, circuit_search_result.bus, circuit_search_result.fees |
include solicited data |
type |
public |
type must be public |
Response
Item |
Description |
id |
search id |
transport_id |
transport id see Static Data -> Transport list |
departure_point_id |
departure point id see Static Data -> Destinations list |
destination_id |
destination id see Static Data -> Destinations list |
duration |
package number of nights |
hotel_id |
hotel id see Static Data -> Hotel list *for cache data hotel_id will be always 0 |
departure_date |
departure date (Y-m-d) |
type |
search type |
pax |
pax |
last_result_created_at |
datetime for the last result (Y-m-d H:i:s) |
_includes.circuit_search_result.data |
search results |
_includes.circuit_search_result.data.id |
package search result id |
_includes.circuit_search_result.data.hotel_id |
hotel id see Static Data -> Hotel list |
_includes.circuit_search_result.data.circuit_id |
package id see Static Data -> Circuit list |
_includes.circuit_search_result.data.min_price |
the minimum price for the search true or false |
_includes.circuit_search_result.data.gross |
gross price |
_includes.circuit_search_result.data.tax |
tax price |
_includes.circuit_search_result.data.total_discount |
discount |
_includes.circuit_search_result.data.is_hot_deal |
is hot deal true or false |
_includes.circuit_search_result.data.allocation |
allocation |
_includes.circuit_search_result.data.is_available |
is available true or false |
_includes.circuit_search_result.data.currency |
currency |
_includes.circuit_search_result.data._includes.meal_plans |
meal plans list for the result |
_includes.circuit_search_result.data._includes.meal_plans.data.id |
meal plan id |
_includes.circuit_search_result.data._includes.meal_plans.data.label_id |
meal plan label see Static Data Meal plan labels |
_includes.circuit_search_result.data._includes.meal_plans.data.gross |
meal plan price |
_includes.circuit_search_result.data._includes.meal_plans.data.tax |
meal plan tax |
_includes.circuit_search_result.data._includes.rooms.data |
room info |
_includes.circuit_search_result.data._includes.rooms.data.id |
room result id |
_includes.circuit_search_result.data._includes.rooms.data.hotel_room_category_id |
hotel room category id see Static Data Hotel list => room_categories |
_includes.circuit_search_result.data._includes.discount.data |
result discount rules |
_includes.circuit_search_result.data._includes.discount.data.discount_label_id |
discount label id |
_includes.circuit_search_result.data._includes.discount.data.text |
discount description |
_includes.circuit_search_result.data._includes.discount.data.booking_from |
discount booking from |
_includes.circuit_search_result.data._includes.discount.data.booking_to |
discount booking to |
_includes.circuit_search_result.data._includes.discount.data.travel_from |
discount travel from |
_includes.circuit_search_result.data._includes.discount.data.travel_to |
discount travel to |
_includes.circuit_search_result.data._includes.discount.data.percent |
discount percent value |
_includes.circuit_search_result.data._includes.discount.data.value |
discount fixed value |
_includes.circuit_search_result.data._includes.bus.data |
bus trip info |
_includes.circuit_search_result.data._includes.bus.data.price |
price |
_includes.circuit_search_result.data._includes.bus.data.total_discount |
total discount |
_includes.circuit_search_result.data._includes.bus.data.label |
label |
_includes.circuit_search_result.data._includes.bus.data.outbound_date |
departure date |
_includes.circuit_search_result.data._includes.bus.data.inbound_date |
returning date |
_includes.circuit_search_result.data._includes.bus.data.from |
departure point id see Static Data -> Destinations list |
_includes.circuit_search_result.data._includes.bus.data.to |
destination id see Static Data -> Destinations list |
_includes.circuit_search_result.data._includes.bus.data.bus_type |
bus type |
_includes.circuit_search_result.data._includes.bus.data.type |
type |
_includes.circuit_search_result.data._includes.flights.data |
flights list |
_includes.circuit_search_result.data._includes.flights.data.type |
flight type inbond or outbound |
_includes.circuit_search_result.data._includes.flights.data.airline |
flight airline |
_includes.circuit_search_result.data._includes.flights.data.class |
flight class |
_includes.circuit_search_result.data._includes.flights.data.cabin |
flight cabin |
_includes.circuit_search_result.data._includes.flights.data.cabin_name |
flight cabin_name |
_includes.circuit_search_result.data._includes.flights.data._includes.legs.data |
flight legs list |
_includes.circuit_search_result.data._includes.flights.data._includes.legs.data.from |
departure airport IATA code |
_includes.circuit_search_result.data._includes.flights.data._includes.legs.data.from |
departure airport IATA code |
_includes.circuit_search_result.data._includes.flights.data._includes.legs.data.to |
arrival airport IATA code |
_includes.circuit_search_result.data._includes.flights.data._includes.legs.data.departure |
departure datetime |
_includes.circuit_search_result.data._includes.flights.data._includes.legs.data.arrival |
arrival datetime |
_includes.circuit_search_result.data._includes.flights.data._includes.legs.data.airline |
leg airline |
_includes.circuit_search_result.data._includes.flights.data._includes.legs.data.flight_no |
leg flight number |
_includes.circuit_search_result.data._includes.flights.data._includes.legs.data.class |
leg class |
_includes.circuit_search_result.data._includes.flights.data._includes.legs.data.flight_time |
leg flight time |
Example
Request
curl --request GET \
--url 'URL/v1/package-searches?type=public&type=public&_includes=package_search_result.discount%2Cpackage_search_result.flights.legs%2Cpackage_search_result.meal_plans%2Cpackage_search_result.rooms%2Cpackage_search_result.bus%2Cpackage_search_result.fees' \
--header 'Authorization: Bearer TOKEN'
Response
{
"data": [
{
"id": 1725754,
"transport_id": 2,
"departure_point_id": 228,
"destination_id": 392,
"duration": 4,
"hotel_id": 0,
"departure_date": "2021-06-30",
"type": "public",
"pax": "[{\"adults\":2,\"child_ages\":[]}]",
"finished": true,
"last_result_created_at": "2020-03-24 02:56:19",
"created_at": "2020-03-24T00:32:12+02:00",
"updated_at": "2021-06-01T22:02:03+03:00",
"_includes": {
"circuit_search_result": {
"data": [
{
"id": 4193338,
"search_id": 1725754,
"hotel_id": 13203,
"circuit_id": 944,
"min_price": 1,
"gross": "430.00",
"tax": "0.00",
"total_discount": "0.00",
"is_hot_deal": true,
"allocation": "not_available",
"is_available": true,
"currency": "EUR",
"fare_type_id": null,
"created_at": "2020-03-24T02:56:18+02:00",
"updated_at": "2021-04-09T22:04:24+03:00",
"_includes": {
"bus": {
"data": [
{
"id": 2154413,
"result_id": 4193338,
"price": "0.00",
"total_discount": "0.00",
"label": "Istanbul 4 nopti\/5 zile",
"outbound_date": "2021-06-30 00:00:00",
"inbound_date": "2021-07-04 12:00:00",
"from": 228,
"to": 392,
"bus_type": "Setra 48",
"type": null,
"created_at": "2020-03-24T02:56:19+02:00",
"updated_at": "2020-03-24T02:56:19+02:00"
}
],
"instance": "search_result_bus"
},
"discount": {
"data": [
{
"id": 3131121,
"result_id": 4193338,
"discount_label_id": 9284,
"text": null,
"booking_from": null,
"booking_to": null,
"travel_from": null,
"travel_to": null,
"percent": "0.00",
"value": "0.00",
"created_at": "2020-06-23T02:25:53+03:00",
"updated_at": "2020-06-23T02:25:53+03:00"
}
],
"instance": "search_result_discount"
},
"flights": {
"data": [
{
"id": 2889389,
"result_id": 3168116,
"type": "outbound",
"airline": "LH",
"class": "Y",
"cabin": "",
"cabin_name": "",
"created_at": "2020-01-15T03:03:01+02:00",
"updated_at": "2021-03-26T22:48:12+02:00",
"_includes": {
"legs": {
"data": [
{
"id": 2896568,
"flight_id": 2889389,
"from": "OTP",
"to": "ANC",
"departure": "2021-09-15T00:00:00+03:00",
"arrival": "2021-09-15T00:00:00+03:00",
"airline": "LH",
"flight_no": "1",
"class": "Y",
"flight_time": "0",
"created_at": "2020-01-15T03:03:01+02:00",
"updated_at": "2021-03-26T22:48:12+02:00"
}
],
"instance": "search_result_flight_leg"
}
}
},
{
"id": 2889390,
"result_id": 3168116,
"type": "inbound",
"airline": "LH",
"class": "Y",
"cabin": "",
"cabin_name": "",
"created_at": "2020-01-15T03:03:01+02:00",
"updated_at": "2021-03-26T22:48:12+02:00",
"_includes": {
"legs": {
"data": [
{
"id": 2896569,
"flight_id": 2889390,
"from": "ANC",
"to": "OTP",
"departure": "2021-09-25T00:00:00+03:00",
"arrival": "2021-09-25T00:00:00+03:00",
"airline": "LH",
"flight_no": "2",
"class": "Y",
"flight_time": "0",
"created_at": "2020-01-15T03:03:01+02:00",
"updated_at": "2021-03-26T22:48:12+02:00"
}
],
"instance": "search_result_flight_leg"
}
}
}
],
"instance": "search_result_flight"
},
"meal_plans": {
"data": [
{
"id": 4193142,
"result_id": 4193338,
"label_id": 32,
"gross": "0.00",
"tax": "0.00",
"created_at": "2020-03-24T02:56:18+02:00",
"updated_at": "2020-03-24T02:56:18+02:00"
}
],
"instance": "search_result_meal_plan"
},
"rooms": {
"data": [
{
"id": 4207712,
"result_id": 4193338,
"hotel_room_category_id": 33722,
"created_at": "2020-03-24T02:56:18+02:00",
"updated_at": "2020-03-24T02:56:18+02:00"
}
],
"instance": "search_result_room"
},
"fees": {
"data": [],
"instance": "circuit_search_result_fee"
}
}
}
],
"instance": "circuit_search_result"
}
}
}
],
"links": {
"first": "URL/v1\/circuit-searches?_includes=circuit_search_result.discount%2Ccircuit_search_result.flights.legs%2Ccircuit_search_result.meal_plans%2Ccircuit_search_result.rooms%2Ccircuit_search_result.bus%2Ccircuit_search_result.fees&_page=1",
"last": "URL/v1\/circuit-searches?_includes=circuit_search_result.discount%2Ccircuit_search_result.flights.legs%2Ccircuit_search_result.meal_plans%2Ccircuit_search_result.rooms%2Ccircuit_search_result.bus%2Ccircuit_search_result.fees&_page=1678",
"prev": null,
"next": "URL/v1\/circuit-searches?_includes=circuit_search_result.discount%2Ccircuit_search_result.flights.legs%2Ccircuit_search_result.meal_plans%2Ccircuit_search_result.rooms%2Ccircuit_search_result.bus%2Ccircuit_search_result.fees&_page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1678,
"path": "URL/v1\/circuit-searches",
"per_page": 10,
"to": 10,
"total": 16777
}
}
Circuit search
this search is for creating a live search in all the upstreams apis. the search will not return immediate results,
the search will be processed by a background job. to get the results you will need to pool the search until finished became true
first step create a search
Item |
Description |
URL |
/v1/circuit-searches |
Type |
POST |
GET params
Item |
Possible values |
Explanation |
transport_id |
transport id |
*required |
departure_date |
check in date (Y-m-d) |
*required |
destination_id |
destination id see Static Data Destinations list |
*required |
departure_point_id |
departure point id see Static Data Destinations list |
*required |
hotel_id |
hotel id see Static Data Hotel list |
*optional |
duration |
number of nights to stay at the hotel |
*required |
pax |
search pax |
*required |
Example
Request
curl --request POST \
--url URL/v1/circuit-searches/ \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
--form transport_id=2 \
--form departure_point_id=189 \
--form destination_id=367 \
--form duration=11 \
--form departure_date=2021-11-26 \
--form 'pax[0][adults]=2' \
--form 'pax[0][child_ages]=[]'
Response
{
"data": {
"id": 14890469,
"transport_id": 3,
"departure_point_id": 189,
"destination_id": 28,
"duration": 7,
"hotel_id": 0,
"departure_date": "2021-11-16",
"type": "private",
"pax": "[{\"adults\":\"2\",\"child_ages\":\"[]\"}]",
"finished": false,
"last_result_created_at": null,
"created_at": "2021-10-28T13:20:36+03:00",
"updated_at": "2021-10-28T13:20:40+03:00"
}
}
second step pool for results until finished=false
Request info
Item |
Description |
URL |
/v1/circuit-searches/{search_id} |
Type |
GET |
GET params
Item |
Possible values |
Explanation |
_includes |
circuit_search_result.discount, circuit_search_result.flights.legs, circuit_search_result.meal_plans, circuit_search_result.rooms, circuit_search_result.bus, circuit_search_result.fees |
include solicited data |
Circuit search for booking
is the same as the Circuit search but hotel_id is required, and we need to add to the request
_includes=circuit_search_result.discount,circuit_search_result.flights.legs,circuit_search_result.meal_plans,circuit_search_result.rooms,circuit_search_result.bus,circuit_search_result.fees
and _sync=true. the results will come when the request is finished. the results can be used to make a book request
Example
Request
curl --request POST \
--url 'http://api-gateway.christiantour.test/v1/circuit-searches?_includes=circuit_search_result.discount%2Ccircuit_search_result.flights.legs%2Ccircuit_search_result.meal_plans%2Ccircuit_search_result.rooms%2Ccircuit_search_result.bus%2Ccircuit_search_result.fees&_sync=true' \
--header 'Authorization: Bearer eTZhWUl4d2szVEgwN0dZZUFXZlBVR0NuN3pVdm82NEdRU3dVbERXTA==' \
--header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
--form transport_id=2 \
--form departure_point_id=189 \
--form destination_id=367 \
--form duration=11 \
--form departure_date=2021-11-26 \
--form 'pax[0][adults]=2' \
--form 'pax[0][child_ages]=[]' \
--form hotel_id=13798
the response is similar with the response from Circuit search cache