API для получения информации о турах

1. Получить все туры

Эндпоинт: GET https://mypeterburg.ru/api/tours

Описание: Возвращает список всех туров с основной информацией.

  1. По умолчанию API отдаёт первые 100 туров (параметры: page=1limit=100).

  2. Чтобы получить следующую страницу, нужно увеличить page. Например, page=2 даст вторые 100 туров.

  3. Можно задать limit для изменения количества туров на странице (например, limit=50).

  4. Фильтр по дате дата в формате dd.mm.YYYY передаётся параметром date.

  5. В ответе присутствуют:

    • total_tours - всего туров.

    • page - текущая страница.

    • limit - сколько туров выдано на страницу.

    • sections - массив разделов с id и именем.

    • toursByParent - группы туров по разделам.

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

{
  "success": 1,
  "page": 1,
  "limit": 100,
  "total_tours": 250,
  "sections": [
    {"id": 9, "name": "Коллекция туров 1 (например: Лето)"},
    {"id": 10, "name": "Коллекция туров 2 (например: Новый год)"}
  ],
  "toursByParent": {
    "9": [
      {
        "id": 101,
        "pagetitle": "Хиты Петербурга",
        "price_from": 15000,
        "dates": [ // даты заездов и цены "от"
          {"date": "2026-05-15", "price": 15000},
          {"date": "2026-06-01", "price": 17000},
          {"date": "2026-06-01", "price": 18000},
          итд..
        ],
        "day": "5 дней",
        "original_image": "https://mypeterburg.ru/images/tour1.jpg",
        "mini_image": "https://mypeterburg.ru/thumbs/tour1.jpg",
      },
      "... другие туры"
    ],
    "10": [
      {
        "id": 111,
        "pagetitle": "Лучшее в Петербурге",
        "price_from": 15000,
        "dates": [ // даты заездов и цены "от"
          {"date": "2026-05-15", "price": 15000},
          {"date": "2026-06-01", "price": 17000},
          {"date": "2026-06-01", "price": 18000},
          итд..
        ],
        "day": "6 дней",
        "original_image": "https://mypeterburg.ru/images/tour2.jpg",
        "mini_image": "https://mypeterburg.ru/thumbs/tour2.jpg",
      },
      "... другие туры"
    ]
  }
}

2. Получить полные данные тура по ID

Эндпоинт: GET https://mypeterburg.ru/api/tourDetail/?tour_id=ID

Описание: Возвращает все данные тура, даты, цены, описание (программа тура) с фотографиями.

Расшифровка полей цен Типы размещения и цены

Поле APIНазначениеОписание
avail Наличие мест 1: "открыты продажи",
2: "Закрыты продажи",
3: "Под запрос"
dbl Взрослый 1/2 DBL Цена за 1 взрослого в двухместном номере (½ DBL)
sngl Одноместный номер Доплата за одноместное размещение (SNGL)
extra Третий в номере взрослый Взрослый на доп. месте в двухместном номере
childDbl Ребенок до 14 лет 1/2 DBL Ребёнок до 14 лет в двухместном номере с взрослыми
childExtra Доп. место ребёнок Ребёнок до 14 лет на дополнительном месте

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

[
{
  "success": 1,
  "tour_id": 1350,
  "tour": {
    "id": 1350,
    "pagetitle": "Тур по Санкт-Петербургу",
    "day": "5 дней",
    "content": "• Автобусная экскурсия по городу• Эрмитаж • Петергоф • Царское Село ",
    "texDateStart": "Каждую пятницу",
    "original_image": "https://mypeterburg.ru/images/tour1.jpg",
    "prices": [{
      "date": "2025-12-05",
      "avail": 1,
      "dbl": 11520,
      "sngl": 14500,
      "extra": 3500,
      "childDbl": 8500,
      "hotel_id": 1004,
      "room_id": 25,
      "hotel_name": "Отель Невский Палас",
      "room_name": "Стандарт"
    },{
      "date": "2025-12-06",
      "avail": 1,
      "dbl": 11520,
      "sngl": 14500,
      "extra": 3500,
      "childDbl": 8500,
      "hotel_id": 1004,
      "room_id": 25,
      "hotel_name": "Отель Невский Палас",
      "room_name": "Комфорт"
    }],
    "days": {  //// программа тура
      "11": {
        "id": 11,
        "pagetitle": "День 1: Прибытие",
        "content": "Описание дня..."
      }
      "12": {
        "id": 12,
        "pagetitle": "День 2",
        "content": "Описание дня..."
      } 
      "12": {
        "id": 13,
        "pagetitle": "День 2",
        "content": "Описание дня..."
      }         
    }
  }
}

Пример ответа двух-вкладочного тура, где есть "летняя" и "зимняя" прорамма:

{
  "success": 1,
  "tour_id": 600,
  "tour": {
    "id": 600,
    "pagetitle": "5 дней в Санкт-Петербурге",
    "day": "5",
    "content": "• Автобусная экскурсия по городу• Эрмитаж • Петергоф • Царское Село ",
    "texDateStart": "По средам",
    "originalimage": "https://mypeterburg.ru/assets/image/architecture-3267404_1920.jpg",
    "prices": [
      {
        "date": "2026-05-06",
        "avail": 1,
        "dbl": 28140,
        "sngl": 16860,
        "extra": 24990,
        "childDbl": 25510,
        "childExtra": 22370,
        "hotelid": 694,
        "roomid": 1071,
        "hotelname": "Отель Невский Палас",
        "roomname": "Стандарт"
      }
    ],
    "days": [
      {
        "tabid": 1687,
        "tabname": "Зима",
        "days": [
          {
            "id": 605,
            "pagetitle": "День 1",
            "content": "Описание программы дня...",
            "images": [
              "https://mypeterburg.ru/assets/resource/images/605/pexels-travel-blog-6976175.jpg"
            ]
          }
        ]
      },
      {
        "tabid": 1688,
        "tabname": "Лето",
        "days": [
          {
            "id": 1689,
            "pagetitle": "День 1",
            "content": "Описание летней программы дня...",
            "images": [
              "https://mypeterburg.ru/assets/resource/images/1689/dvortsovaya-pl.jpg"
            ]
          }
        ]
      }
    ]
  }
}