Карточка страницы

Booking.com - определить возраст аккаунта

Как получить полный отчёт по аккаунту Booking.com (report.zip) и определить его возраст

Booking.com не показывает в личном кабинете ни дату регистрации аккаунта, ни полную историю активности. Но у каждого аккаунта есть GDPR-экспорт данных — архив report.zip с файлом report.json внутри, где лежат все бронирования с датами создания, вишлисты, история поисков, отзывы и прочие данные. Отчёт выдаётся за 5–10 минут, прямо из браузера, без установки чего-либо.

1. Что лежит в отчёте

Секция в report.jsonЧто содержит
RESERVATION_SERVICEВсе бронирования: Created (точная дата создания брони), даты заезда/выезда, отель, номер, IP буккера, страна, число гостей, статус
WISHLISTВишлисты и дата last_change (последнее изменение)
SEARCH_V2История поисковых запросов
REVIEWSОтзывы и фотографии
FLIGHTSПолёты и платежи по ним
USER_ACCOUNTSEmail, страна, язык, валюта, телефон
CS_TOOLING, WEB_MARKETING и др.Служебные данные (обычно пусто)

Пример записи бронирования из отчёта:

{
  "Hotel name": "Marina Resort Benidorm",
  "Checkin date": "2017-12-06",
  "Checkout date": "2017-12-08",
  "Created": "2017-12-05 22:15:45",
  "Booker IP": "84.76.192.186",
  "Booker country code": "es",
  "Number of guests": 2,
  "Reservation state": "successful"
}

2. Способ 1 — консоль браузера (рекомендуется)

Ничего устанавливать не нужно. Нужен только браузер, в котором вы уже залогинены в нужный аккаунт.

1 Откройте страницу приватности

Перейдите по адресу (важно: домен именно account.booking.com):

https://account.booking.com/mysettings/privacy

2 Запросите экспорт данных

Нажмите F12 → вкладка Console, вставьте команду и Enter:

fetch("/api/privacy/v1.0/data-portability/request",{method:"POST"}).then(r=>r.json()).then(d=>console.log("port_id:",d.port_id,"status:",d.status))

В ответе — port_id (UUID) и status: "pending". Сохраните port_id.

3 Подождите 5–10 минут и проверьте статус

fetch("/api/privacy/v1.0/data-portability/status").then(r=>r.json()).then(d=>console.log(d.status,d.data_size,d.port_id))

Повторяйте, пока не появится status: "active" и data_size (размер отчёта в байтах).

4 Скачайте отчёт

Когда статус active, откройте в новой вкладке адрес (подставьте свой port_id):

https://account.booking.com/api/privacy/v1.0/data-portability/download-report/ВАШ_PORТ_ID

Браузер скачает архив report.zip.

5 Распакуйте и смотрите

Распакуйте архив (7-Zip, WinRAR, двойной клик). Внутри — report.json. Откройте его блокнотом или перетащите в браузер. Ищите секции RESERVATION_SERVICE, WISHLIST, SEARCH_V2.

3. Способ 2 — кнопки на странице privacy (без консоли)

  • «Export data» — генерирует URL для передачи данных третьей стороне. Это тот же самый отчёт; полученный URL ведёт на data-portability.booking.com/..., работает 24 часа.
  • «Manage» (форма запроса приватности) — классический DSR-запрос «Download your data». Ссылку на скачивание пришлют на почту аккаунта, готовность может занять до нескольких суток. Для быстрого результата используйте Способ 1.

4. Способ 3 — HTTP-запросы (для автоматизации и массовых проверок)

Все три шага — обычные HTTP-запросы с куками сессии:

POST https://account.booking.com/api/privacy/v1.0/data-portability/request
GET  https://account.booking.com/api/privacy/v1.0/data-portability/status
GET  https://account.booking.com/api/privacy/v1.0/data-portability/download-report/{port_id}
  • request → {"port_id":"...","status":"pending"}
  • status → {"status":"active","data_size":1345,"port_id":"..."}
  • download-report/{port_id} → ZIP-архив с report.json

Куки сессии можно взять из браузера через CDP (Storage.getCookies). Это позволяет автоматизировать экспорт для пачки аккаунтов.

5. Как определить возраст аккаунта

Точной даты регистрации в отчёте нет — Booking её не хранит ни в одном из доступных полей. Но возраст определяется по самым ранним следам активности:

  1. Самая ранняя дата Created среди бронирований
  2. Самая ранняя дата last_change у вишлистов
  3. Самые ранние записи в истории поисков (SEARCH_V2)

Пример. В отчёте аккаунта: вишлист «My next trip» — last_change: 2017-03-09, бронирование Marina Resort Benidorm — Created: 2017-12-05. → аккаунт существовал уже в марте 2017 года.

Дополнительный ориентир — userId. В залогиненном браузере откройте https://secure.booking.com/mytrips.html, нажмите F12 и выполните:

document.documentElement.outerHTML.match(/userIdentity.{0,200}/)[0]

Результат: "userIdentity":{"type":"customer","userId":166008865,...}. Номер userId косвенно коррелирует с эпохой регистрации (сотни миллионов — примерно 2016–2018 годы), но точной датой не является.

Важно: маленький отчёт (1–2 КБ) не означает «аккаунт новый». Пустой отчёт — это просто аккаунт без броней, поисков и вишлистов. Возраст может быть любым.

6. Частые проблемы

ПроблемаПричинаРешение
status: "pending" держится долгоОтчёт ещё генерируетсяЖдать 5–10 минут, повторять запрос статуса
Скачивание даёт 401 или «Report could not be downloaded»Отчёт ещё не готовПодождать status: "active"
fetch в консоли не работаетВы не на домене account.booking.comПерейти на account.booking.com/mysettings/privacy
Отчёт 1–2 КБАккаунт без активностиНормально; возраст так не определяется
Кнопки «Download your data» нет на страницеФлоу называется «Export data», полный DSR — через «Manage»Использовать Способ 1 (консоль)