Skip to main content

Filtering

Filtering is a technique that allows for the selection and extraction of data from a large dataset based on specified criteria.

Number of adults and children​

To filter search results based on the number of adults, you should use the adults filter. If you want filters results based on number of children you have to also use children and then childrenBirthDate field which have to enter birth date of each child.

The following search query returns offers and term for a configuration of 2 adults and 2 children. It retrieves prices for each person and pesonsConfiguration.

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
adults:2
children:2
childrenBirthDates:["2021-09-04", "2021-09-04"]
}
) {
offers {
id
terms {
id
personsConfiguration {
children
foundAdults
foundChildren
foundChildrenAges
foundChildrenBirthDates
}
totalPrice
personPrices {
price
type
}
}
}
}
}

Sample output from executing the graphql query above:

{
"data": {
"search": {
"offers": [
{
"id": "169",
"terms": [
{
"id": "0013f179ce7570476953a2321605364b",
"personsConfiguration": {
"children": 2,
"foundAdults": 2,
"foundChildren": 2,
"foundChildrenAges": [
3,
3
],
"foundChildrenBirthDates": [
"2021-09-04",
"2021-09-04"
]
},
"totalPrice": 17600,
"personPrices": [
{
"price": 5500,
"type": "ADULT"
},
{
"price": 5500,
"type": "ADULT"
},
{
"price": 3300,
"type": "CHILD"
},
{
"price": 3300,
"type": "CHILD"
}
]
}
]
}
]
}
}
}

Filter by dates​

If you want to filter data based on departure dates, you can use the departureDate filter.

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
departureDate: {min: "2024-10-01", max: "2024-10-31"}
}
){
count
}
}

Filter by destination​

If you want filter data based on destination you are able to use countrySourceName, regionSourceName or citySourceName field. You can also filter by destination id: countrySourceId, regionSourceId or citySourceId.

Country​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
countrySourceName: ["Grecja", "Turcja"]
}
){
count
}
}
query {
search (
countryCode: PL,
languageCode: PL,
filters: {
countrySourceId: ["GR", "TR"]
}
){
count
}
}

Region​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
regionSourceName: ["Rodos", "Alanya"]
}
){
count
}
}
query {
search (
countryCode: PL,
languageCode: PL,
filters: {
regionSourceId: ["5", "6"]
}
){
count
}
}

City​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
citySourceName: ["Okurcalar", "Alanya", "Rodos"]
}
){
count
}
}
query {
search (
countryCode: PL,
languageCode: PL,
filters: {
citySourceId: ["1001", "1002", "1003"]
}
){
count
}
}

Filter by offer type​

If you want to filter data based on offer type, you can use the offerType filter.

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
offerType: ["Wypoczynek", "Narty"]
}
){
count
}
}

Filter by property category​

If you want to filter data by property category, you can use filters: propertyCategoryRange for filtering in specific category range or propertyCategory and propertySourceCategory filter by specific category.

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
propertyCategoryRange: {min: 30, max: 50 }
}
){
count
}
}
query {
search (
countryCode: PL,
languageCode: PL,
filters: {
propertyCategory: ["30", "40"]
}
){
count
}
}

Filter by transport type​

If you want to filter data based on transport type, you can use the transportType filter.

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
transportType: ["samolot", "własny"]
}
){
count
}
}

Filter by departure city​

If you want to filter data based on departure city, you can use the departureCity filter.

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
departureCity: ["Kraków", "Gdańsk"]
}
){
count
}
}

Filter by period​

For filtering results within a specific range period, use the period filter.

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
period: {min: 7, max: 14 }
}
){
count
}
}

Filter by maintenances​

If you want to filter data based on meals, you can use the maintenanceSourceName, maintenanceName, maintenancSourceCode, maintenanceCode filter.

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
maintenanceSourceName: ["Śniadania i obiadokolacje", "Ultra All Inclusive"]
}
){
count
}
}
query {
search (
countryCode: PL,
languageCode: PL,
filters: {
maintenanceName: ["Śniadania i obiadokolacje", "All Inclusive"]
}
){
count
}
}
query {
search (
countryCode: PL,
languageCode: PL,
filters: {
maintenanceSourceCode: ["BB", "UAI"]
}
){
count
}
}
query {
search (
countryCode: PL,
languageCode: PL,
filters: {
maintenanceCode: ["BB", "HB", "AI"]
}
){
count
}
}

Filter by room properties​

If you want to filter data based on room properties, you can use the roomSourceName, roomName, roomSourceCode, roomCode filter.

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
roomSourceName: ["Pokój jednoosobowy", "Apartament", "2-osobowy z łazienką"]
}
){
count
}
}
query {
search (
countryCode: PL,
languageCode: PL,
filters: {
roomName: ["Apartament", "Suite"]
}
){
count
}
}

Filter by prices​

For filtering results within a specific price, use the price filter.

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
price: {min: 1000, max: 8000}
}
){
count
}
}

Filter by offers id​

If you want to filter data based on offer id, you can use the offerIds filter.

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
offerIds: ["177", "167"]
}
){
count
}
}

Filter by semantic categories​

If you want to filter data based on sematic categories, you can use the semanticCategoryAccommodation,semanticCategoryActivity, semanticCategoryBoardType, semanticCategoryHotelAmenities, semanticCategoryHotelAttractions,semanticCategoryOfferType, semanticCategoryRoomType, semanticCategoryTransportation, semanticCategoryTripAttractions filters.

Filters search results by accomodation​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
semanticCategoryAccommodation: ["hotel"]
}
) {
count
}
}

Filters search results by activity​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
semanticCategoryActivity: ["sporty wodne"]
}
) {
count
}
}

Filters search results by board type​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
semanticCategoryBoardType: ["ultra all inclusive"]
}
) {
count
}
}

Filters search results by hotel amenities​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
semanticCategoryHotelAmenities: ["opieka dla dzieci"]
}
) {
count
}
}

Filters search results by hotel attractions​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
semanticCategoryHotelAttractions: ["park wodny"]
}
) {
count
}
}

Filters search results by offer type​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
semanticCategoryOfferType: ["wypoczynek"]
}
) {
count
}
}

Filters search results by room type​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
semanticCategoryRoomType: ["suite"]
}
) {
count
}
}

Filters search results by transportation​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
semanticCategoryTransportation: ["samolot"]
}
) {
count
}
}

Filters search results by trip atractions​

query {
search (
countryCode: PL,
languageCode: PL,
filters: {
semanticCategoryTripAttractions: ["plac zabaw"]
}
) {
count
}
}
If you don't find example

You can explore the available filter options and other fields on our Demo Search Playground. Visit the Docs tab for detailed information on these options.