7. Экскурсии и туры
Метод API для получения данных по экскурсиям и турам:
https://experience.tripster.ru/api/partners/<partner_name>/experiences/?price_format=detailed
Получить только обновления:
https://experience.tripster.ru/api/partners/<partner_name>/experiences/?updated_after=YYYY-DD-MM&price_format=detailed
По одной экскурсии или туру:
https://experience.tripster.ru/api/partners/<partner_name>/experiences/<ID>?price_format=detailed
С описанием тура:
https://experience.tripster.ru/api/partners/<partner_name>/experiences/<ID>/?detailed=true&price_format=detailed
Программу тура можно получить другим методом: 12. Описание программы тура
Структура ответа
Пример ответа
results [
{
"count": 187,
"next": "https://experience.tripster.ru/api/partners/<partner_name>/experiences/?city=3&page=2",
"previous": null,
"results": [
{
"id": 13530,
"title": "Монастырь на Казбеке — «высоко над семьею гор»",
"tagline": "Побывать в месте, воспетом Пушкиным и ставшим одним из символов Грузии",
"url": " ",
"type": "group",
"format": "experience",
"grade": "trip",
"movement_type": "car",
"schedule_type": "weekly_slots",
"instant_booking": true,
"status": "active",
"is_visible": true,
"is_new": false,
"type": "group",
"instant_booking": true,
"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": "2022-09-01",
"expiration_text": "еще 11 часов",
"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.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": null,
"links": {
"reviews": "https://experience.tripster.ru/api/guides/136254/reviews/"
}
},
"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/partners/partner_name/experiences/13530/reviews/",
"schedule": "https://experience.tripster.ru/api/partners/partner_name/experiences/13530/schedule/"
},
"status": "active"
},
"tags": [
{
"id": 284,
"name": "Обзорные",
"experience_count": 70,
"url": " "
}
],
"photos": [
{
"thumbnail": "https://554a875a-71dc-4f5f-b6bf-ae8967f137d5.selcdn.net/thumbs2/155afda4-b1b7-11ec-963f-eebfb3b5e7df.384x289.jpeg",
"medium": "https://554a875a-71dc-4f5f-b6bf-ae8967f137d5.selcdn.net/thumbs2/157e38f0-b1b7-11ec-963f-eebfb3b5e7df.800x600.jpeg",
"type": "default"
}
],
"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/"
},
"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
}
...
]
}
Описание ответа
Параметр | Описание |
|
id | ID экскурсии в Трипстере | Число |
status | active для активных экскурсий, в случае запроса с параметром updated_after, могут быть возвращены экскурсии со статусом inactive | Строка |
title | Название экскурсии | Строка |
tagline | Пояснение к названию для вывода в списке экскурсии | Строка |
annotation | Краткое описание экскурсии для вывода на странице экскурсии. Отображается, если передать параметр detailed=true | Строка |
description | Подробное описание экскурсии для вывода на странице экскурсии. Отображается, если передать параметр detailed=true | Строка |
url | Ссылка на страницу экскурсии на Трипстере (прочитайте про правила формирования ссылок) | Строка |
type | Тип экскурсии: private – индивидуальная, group – групповая, tour - авторский тур | Строка |
movement_type | Тип передвижения: foot - Пешком, car - На машине, bicycle - На велосипеде, bus - На автобусе, motorcycle - На мотоцикле, watership - На кораблике, other - Другое | Строка |
schedule_type | Тп расписания: weekly_slots - еженедельные слоты, fixed_slots - фиксированные слоты, weekly_range - еженедельные интервалы | Строка |
instant_booking | Возможно ли моментальное бронирование экскурсии без ожидания подтверждения от гида: true или false | Boolean |
child_friendly | Подходит ли экскурсия детям: true или false | Boolean |
max_persons | Максимальное число участников экскурсии | Число |
duration | Продолжительность экскурсии в часах | Float |
price | Объект с данными о цене экскурсии (посмотрите на картинку с объяснением параметров) | Объект |
price.value | Цена экскурсии | Float |
price.currency | Валюта экскурсии, совпадает с валютой страны | Строка |
price.currency_rate | Курс валюты экскурсии в рублях | Float |
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 | Индекс популярности, его можно использовать для самостоятельной сортировке экскурсий по популярности | Число |
schedule | Объект расписания экскурсии. Отображается, если передать параметр detailed=true | Объект |
schedule.text | Расписание экскурсии "ежедневно в 10:00". Отображается, если передать параметр detailed=true | Строка |
cover_image | Ссылка на фото обложки экскурсии. Отображается, если передать параметр detailed=true | Строка |
meeting_point | Объект с данными о месте встречи | Объект |
meeting_point.text | Строка с описанием места встречи. Может быть пустой строкой "" | Строка |
finish_point | Объект с данными о месте окончания экскурсии | Объект |
finish_point.text | Строка с описанием места окончания экскурсии. Может быть пустой строкой "" | Строка |
city | Объект с данными о городе экскурсии | Объект |
guide | Объект с данными о гиде | Объект |
guide.guide_type | Типа гида: guide - Гид, team - Представитель команды гидов, agency - Представитель агентства | Строка |
tags | Список рубрик, к которым привязана экскурсия в городе | Список |
photos | Список фотографий экскурсии, первая в списке фотография – для использования в листинге экскурсий. Если передать параметр detailed=true, отобразятся все фотографии. Если detailed=false – только первая. | Список |
photos.thumbnail | Ссылка на картинку-превьюшку города размером 384x289px | Строка |
photos.medium | Ссылка на картинку-превьюшку города размером 800x600px | Строка |
links | Объект со ссылками на методы API для экскурсии | Объект |
links.reviews | Ссылка на метод API для получения списка отзывов по экскурсии | Строка |
links.schedule | Ссылка на метод API для получения расписания по экскурсии | Строка |
geo | Объект с информацией о географической привязке экскурсии | Объект |
geo.country | Объект страны | Объект |
geo.city | Объект города | Объект |
schedule | Объект расписания экскурсии | Объект |
schedule.text | Текстовое описание расписания экскурсии | Строка |
pricing_model | Ценовая модель: за человека (per_person), за экскурсию (per_group), “категории билетов” (per_ticket) | Строка |
Расширенный формат цены
Для того, чтобы получить альтернативное описание объекта price, сделайте запрос списка экскурсий с параметром price_format=detailed либо конкретной экскурсии с параметром price_format=detailed.
Описание параметров объекта price в расширенном формате цены
В зависимости от выбранной гидом ценовой модели (человек/группа) будет передаваться параметр per_person или per_group
Параметр | Описание | Тип |
currency | Валюта, в которой указана цена экскурсии | Строка |
currency_rate | Курс валюты экскурсии в рублях | Float |
onsite_payment | Процент стоимости, оплачиваемой на сайте. Значение 0.2 означает, что 20% пользователь оплатит онлайн, а 80% гиду на месте | Float |
В зависимости от выбранной гидом ценовой модели (человек/группа) будет передаваться параметр per_person или per_group | ||
per_person | Объект, содержащий информацию о стоимости экскурсии за человека. Зачастую в объекте передается единственный элемент со стандартной ценой. Но в случае, если стоимость зависит от категории билета, то объект содержит несколько значений для разных категорий (апример, взрослый и детский билет). Цена из первой категории - всегда основная. Список возможных категорий не фиксированный, гид добавляет свои варианты при добавлении экскурсии (id для вариантов эмулируется налету из названия) | Объект |
per_group | Объект с ценой за экскурсию |
|
discount | Размер скидки в процентах | Число |
value_string | Сформированная строка с описанием цены экскурсии, по которой можно проверить понимание остальных параметров | Строка |
unit_string | Тип цены "за человека" или "за экскурсию" | Строка |
price_description | Подсказка, описывающая формирование цены | Строка |
total_commission_rate | Суммарная комиссия, включая VAT | Строка |