8. Фильтрация экскурсий / туров

Для фильтрации экскурсий используйте метод

https://experience.tripster.ru/api/partners/<partner_name>/search/experiences/

Параметры запроса для фильтрации

  • Фильтры

    • type фильтр по типу, private,group,tour,ticket (значения через запятую)

    • ids фильтр по ID экспириенса (числа через запятую)

    • exclude_ids исключить экспириенсы с заданными ID (числа через запятую)

    • city фильтр по ID города

    • city__slug фильтр по строковому идентификатору города

    • country фильтр по ID страны

    • country__slug фильтр по строковому идентификатору страны

    • region фильтр по ID региона

    • region__slug фильтр по slug региона

    • citytag фильтр по ID рубрики

    • guide фильтр по ID гида

    • exp_format фильтр по типу экскурсии (exp_format=9 – онлайн-экскурсии)

    • type фильтр по типу экспириенса (private/group/tour)

    • movement_type фильтр по типу передвижения (foot/car/bicycle/watership/etc.)

    • tags фильтр по по одному или нескольким ID рубрик (через запятую)

    • tag__slugs фильтр по по одному или нескольким slug рубрик (через запятую)

    • persons_count количество человек

    • children_allowed признак “можно с детьми“ (true/false)

    • start_price минимальная стоимость

    • end_price максимальная стоимость

    • start_date дата "от" включительно в формате YYYY-MM-DD

    • end_date дата "по" включительно в формате YYYY-MM-DD

  • Сортировка

    • по дефолту - как на сайте

    • sorting=popularity по популярности экскурсии в городе (sorting=-popularity по убыванию, sorting=popularity по возрастанию)

    • sorting=price по цене

  • Набор данных

    • detailed=false сокращенный набор полей. Используйте для загрузки списка экскурсий и отображения его у себя в реальном времени. 

    • detailed=true расширенный набор полей. Используйте для загрузки полных данных по экскурсиям к себе в БД, а также для отображения одной экскурсии в реальном времени. По умолчанию включен при запросе конкретной экскурсии по ID

  • Запрос обновленных данных

    • updated_after=YYYY-MM-DD или YYYY-MM-DD HH:MM:SS будут возвращены экскурсии, которые изменились с указанного времени

    • schedule_updated_after=YYYY-MM-DD или YYYY-MM-DD HH:MM:SS будут возвращены экскурсии, в расписании которых появились изменения с указанного времени

  • Стандартные параметры format и page/per_page, прочитайте про постраничную загрузку данных

  • Доп. параметры

  • need_results - отдавать результаты поиска. По умолчанию true

  • need_aggregations - отдавать агрегированные данные по умолчанию false

  • need_upcoming_events - отдавать список ближайших свободных слотов. По умолчанию false

 

Структура ответа

 

Пример ответа API

results [ {     "count": 216,     "next": "https://experience.tripster.ru/api/partner/partner_name/search/experiences/?city=3&page=2",     "previous": null,     "results": [         {             "id": 13530,             "title": "Монастырь на Казбеке — «высоко над семьею гор»",             "tagline": "Побывать в месте, воспетом Пушкиным и ставшим одним из символов Грузии",             "url": " ",             "is_new": false,             "type": "group", "format": "experience", "grade": "other", "movement_type": "foot", "schedule_type": "weekly_slots",             "instant_booking": true, "status": "active",             "child_friendly": true,             "max_persons": 20,             "duration": 10.0,             "meeting_point": {                 "text": "в районе площади Мейдан"             }, "finish_point": {                 "text": ""             }             "price": {                 "value": 25.0,                 "currency": "EUR",     "currency_rate": 60.0,                 "price_from": false,                 "unit_string": "за человека",                 "value_string": "€25 за человека",                 "discount": {                     "value": 0.4,                     "expiration_date": "2019-07-07",                     "expiration_text": "",                     "original_price": 41.0                 }             },             "review_count": 463,             "rating": 4.78,             "popularity": 103170, "city": {                 "id": 60,                 "name_ru": "Тбилиси",                 "name_en": "Tbilisi",                 "iata": "TBS",                 "country": {                     "id": 136,                     "name_ru": "Грузия",                     "name_en": "Georgia",                     "currency": "EUR",                     "in_obj_phrase": "в Грузии",                     "across_obj_phrase": "по Грузии",                     "experience_count": 362,                     "tours_count": 10,                     "url": " ",                     "region": "CIS"                 },                 "experience_count": 270,                 "in_obj_phrase": "в Тбилиси",                 "from_obj_phrase": "из Тбилиси",                 "name_prepositional": "Тбилиси",                 "url": "https://experience-feature-exp-8526-xe16xd.staging.k8s-dev.tripster.ru/experience/Tbilisi/",                 "image": {                     "thumbnail": "https://554a875a-71dc-4f5f-b6bf-ae8967f137d5.selcdn.net/photos/e82d4032-68a7-4e2a-8644-35017cc40326.jpg",                     "cover": "https://554a875a-71dc-4f5f-b6bf-ae8967f137d5.selcdn.net/photos/a2998b43-5585-4347-9fa4-88d9d646b011.jpg"                 },                 "utc_offset": 14400.0,                 "guides_count": 115,                 "slug": "Tbilisi"             },             "guide": {                 "id": 136254,                 "first_name": "Давид",                 "url": " ",                 "avatar": {                     "small": "https://experience-ireland.s3.amazonaws.com/avatar/65484e1c-7312-11e8-b3c5-6e714efd800d.31x31.jpg",                     "medium": "https://experience-ireland.s3.amazonaws.com/avatar/653e91d8-7312-11e8-b3c5-6e714efd800d.150x150.jpg"                 },                 "rating": 4.68,                 "review_count": 772,                 "avg_reaction_delay": 17,                 "links": {                     "reviews": "https://experience.tripster.ru/api/guides/136254/reviews/"                 },     "guide_type": "agency",                 "is_guide_since": "2018-07-11T20:08:33+03:00",                 "date_joined": "2018-06-18T16:47:29+03:00",                 "number_of_persons_paid": 10457,                 "orders_count_guide": 7794             },             "photos": [                 {                     "thumbnail": "https://experience-ireland.s3.amazonaws.com/thumbs2/07ac3232-852d-11e8-9de2-0ac55974a77a.384x289.jpg",                     "medium": "https://experience-ireland.s3.amazonaws.com/thumbs2/bd68c2fa-852c-11e8-9de2-0ac55974a77a.800x600.jpg"                 }             ],             "links": {                 "reviews": "https://experience.tripster.ru/api/partner/partner_name/experiences/13530/reviews/",                 "schedule": "https://experience.tripster.ru/api/partner/partner_name/experiences/13530/schedule/"             },             "status": "active"         }, "tags": [                 {                     "id": 7016,                     "name": "Кахетия",                     "slug": "ekslkursii-v-kahetiyu",                     "url": "https://experience-feature-exp-8526-xe16xd.staging.k8s-dev.tripster.ru/experience/Tbilisi/7016-ekslkursii-v-kahetiyu/",                     "is_hidden": false,                     "experience_count": 46,                     "review_count": 2753,                     "tag": {                         "id": 55,                         "name": "Кахетия",                         "slug": "ekslkursii-v-kahetiyu",                         "is_common": false,                         "is_attraction": true,                         "is_auto": false,                         "is_hidden": false                     },                     "image": {                         "thumbnail": "https://554a875a-71dc-4f5f-b6bf-ae8967f137d5.selcdn.net/thumbs2/a102d664-2f37-11eb-82f5-e6903622bc3f.384x289.jpg",                         "medium": "https://554a875a-71dc-4f5f-b6bf-ae8967f137d5.selcdn.net/thumbs2/a1417aa4-2f37-11eb-82f5-e6903622bc3f.800x600.jpg"                     }                 } ], "links": {                 "reviews": "https://experience.tripster.ru/api/partner/partner_name/experiences/14201/reviews/",                 "schedule": "https://experience.tripster.ru/api/partner/partner_name/experiences/14201/schedule/"             },             "geo": {                 "country": [                     {                         "id": 136,                         "slug": "georgia",                         "name": "Грузия",                         "in_obj_phrase": "в Грузии",                         "from_obj_phrase": "из Грузии",                         "across_obj_phrase": "по Грузии"                     }                 ],                 "city": [                     {                         "id": 60,                         "slug": "Tbilisi",                         "name": "Тбилиси",                         "in_obj_phrase": "в Тбилиси",                         "from_obj_phrase": "из Тбилиси",                         "across_obj_phrase": "по Тбилиси"                     }                 ]             },             "exp_format": 1,             "schedule": {                 "upcoming_events": [                     "2022-09-02T09:00:00",                     "2022-09-02T09:30:00",                     "2022-09-03T09:00:00",                     "2022-09-03T09:30:00",                     "2022-09-04T09:00:00",                     "2022-09-04T09:30:00",                     "2022-09-05T09:00:00",                     "2022-09-05T09:30:00",                     "2022-09-06T09:00:00",                     "2022-09-06T09:30:00"                 ]             },             "tag_slugs": [                 "alazanskaya-dolina",                 "all",                 "ekslkursii-v-kahetiyu",                 "group",                 "monastyr-bodbe",                 "na-avtomobile",                 "osenyu",                 "sightseeing",                 "signahi",                 "special_offers",                 "vinnye",                 "vinodelni",                 "weekend",                 "zimoj"             ] } ... ],     "aggregations": {         "date": [             "2019-04-22T17:30:00",             "2019-10-19T00:00:00"         ],         "price": {             "histogram_interval": 0.164,             "range": [                 20.0,                 720.0             ],             "histogram": {                 "20": 3,                 "23": 2,                 "27": 7,                 "32": 7,                 "37": 2,                 "44": 11,                 "52": 7,                 "61": 10,                 "72": 13,                 "84": 17,                 "99": 14,                 "117": 38,                 "138": 27,                 "162": 18,                 "191": 8,                 "225": 16,                 "265": 7,                 "312": 4,                 "367": 1,                 "432": 1,                 "509": 0,                 "600": 2,                 "707": 1             },             "persons_count": 1         },         "availability": {             "1": 216,             "2": 215,             "3": 213,             "4": 196,             "5": 173,             "6": 145,             "7": 98,             "8": 89,             "9": 59,             "10": 55         },         "tags": {             "all": 216,             "25": 61,             "193": 58,             "23": 40,             "310": 37,             "group": 30,             "194": 24,             "16": 20,             "18": 14,             "7641": 12,             "19": 10,             "special_offers": 10,             "7326": 9,             "21": 7,             "324": 7,             "6522": 7,             "3249": 2,             "311": 1,             "3248": 1         }     } }

Описание ответа

Основные параметры

Параметр

Описание

Тип

id

ID экскурсии в Трипстере

Число

title

Название экскурсии

Строка

tagline

Пояснение к названию для вывода в списке экскурсии

Строка

url

Ссылка на страницу экскурсии на Трипстере (прочитайте про правила формирования ссылок)

Строка

type

Тип экскурсии: private – индивидуальная, group – групповая

Строка

instant_booking

Возможно ли моментальное бронирование экскурсии: true или false

Boolean

schedule_type

 

 

movement_type

 

 

child_friendly

Подходит ли экскурсия детям: true или false

Boolean

max_persons

Максимальное число участников экскурсии

Число

duration

Продолжительность экскурсии в часах

Float

meeting_point

Объект с данными о месте встречи

Объект

meeting_point.text

Строка с описанием места встречи. Может быть пустой строкой ""

Строка

finish_point

 

 

finish_point.text

 

 

price

Объект с данными о цене экскурсии (посмотрите на картинку с объяснением параметров)

Объект

price.value

Цена экскурсии

Float

price.currency

Валюта экскурсии, совпадает с валютой страны

Строка

price.currency_rate

 

 

price.price_from

Точная ли цена или это "цена от": false –  точная, true – цена "от"

Boolean

price.unit_string

Тип цены "за человека" или "за экскурсию"

Строка

price.value_string

Сформированная строка с описанием цены экскурсии, по которой можно проверить понимание остальных параметров

Строка

price.discount

Объект со скидкой на экскурсию, или null, если скидки нет

Объект

price.discount.value

Размер скидки, "0.3" значит скидку 30%

Float

price.discount.expiration_date

Дата окончания действия скидки, скидка предоставляется для всех заказов, сделанных до этой даты

Дата в формате YYYY-MM-DD

price.discount.expiration_text

Подсказка о скором завершении действии скидки. Например, "еще 3 дня"

Строка

price.discount.original_price

Оригинальная цена до скидки, чтобы показать ее зачеркнутой

Float

review_count

Количество отзывов

Число

rating

Рейтинг экскурсий от 0 до 5

Float

popularity

Индекс популярности, его можно использовать для самостоятельной сортировке экскурсий по популярности

Число

city

Объект с данными о городе

Объект

guide

Объект с данными о гиде

Объект

tags

Список рубрик, к которым привязана экскурсия

Список

schedule

Объект расписания экскурсии. Отображается, если передать параметр detailed=true

Объект

schedule.text

Расписание экскурсии "ежедневно в 10:00". Отображается, если передать параметр detailed=true

Строка

schedule.upcoming_events

Ближайшие свободные слоты на экскурсию. Отображается, если передать параметр neep_upcoming_events=true.

Список 

photos

Список фотографий экскурсии, первая в списке фотография – для использования в листинге экскурсий. Если передать параметр detailed=true, отобразятся все фотографии. Если detailed=false – только первая.

Список

photos.thumbnail

Ссылка на картинку-превьюшку города размером 384x289px

Строка

photos.medium

Ссылка на картинку-превьюшку города размером 800x600px

Строка

links.reviews

Ссылка на api отзывов для данной экскурсии

Строка

links.schedule

Ссылка на API расписания этой экскурсии

Строка

geo

 

 

geo.country

Список объектов стран, к которым привязана экскурсия

Список

geo.city

Список объектов городов, к которым привязана экскурсия

Список

tag_slugs

Список строковых идентификаторов рубрик, к которым привязана экскурсия

Список

Дополнительные параметры

Aggregations, если передан need_aggregations=true, отдаёт дополнительные данные, которые можно использовать в фильтрах по дате, цене, количеству человек, рубрикам.

Параметр

Описание

Тип

date

Массив из двух дат, в пределах которых возможен поиск экскурсий. Например, "date": [

"2019-04-22T17:30:00",

"2019-10-19T00:00:00"

],

Массив дат в формате YYYY-MM-DDTHH:MM:SS

price

Объект, содержащий информацию о цене

Объект

price.range

Массив из двух дат, в пределах которых возможен поиск по ценам.

Массив Float

price.histogram

Позволяет построить график цен на экскурсии в логарифмической шкале. Объект, содержащий пары ключ-значение (например, {"20": 3, "23": 2}).

Массив ключ (строка) значение (Float)

price.histogram_interval

Вычисленный интервал для гистограммы

Float

price.persons_count

Количество людей, для которых произведён подсчёт цен

Число

availability

Позволяет узнать количество экскурсий в выдаче, если изменить количество человек в поиске. Объект, содержащий пары ключ-значение (например, {"1": 216, "2": 180}). 

Массив ключ (строка) значение (Float)

tags

Позволяет узнать количество экскурсий в выдаче при выборе другой рубрики. Объект, содержащий пары ключ-значение (например, {"all": 216, "25": 61, "group": 30})

Массив ключ (строка) значение (Число)

movement_type

Позволяет узнать количество экскурсий в рубрике по типу передвижения. Объект, содержащий пары ключ-значение (например, {"car": 173, "foot": 61, "other": 3})

Массив ключ (строка) значение (Число)

type

Количество экскурсий разного типа в рубрике. Объект, содержащий пары ключ-значение (например, {"private": 213, "group": 50, "tour": 6}) 

Массив ключ (строка) значение (Число)