Карточка страницы
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_ACCOUNTS | Email, страна, язык, валюта, телефон |
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/privacy2 Запросите экспорт данных
Нажмите 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))
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.
data-portability.booking.com/..., работает 24 часа.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 её не хранит ни в одном из доступных полей. Но возраст определяется по самым ранним следам активности:
- Самая ранняя дата
Createdсреди бронирований - Самая ранняя дата
last_changeу вишлистов - Самые ранние записи в истории поисков (
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 годы), но точной датой не является.
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 (консоль) |