「Booking.com API」全栈速通:合作伙伴申请、集成步骤、3 大核心端点、版本变更、Node.js 实战一次给全!

作者:API传播员 · 2025-11-13 · 阅读时间:6分钟

仅对连接合作伙伴开放;免费但限频;最新版 2.7。
下面带你速览「申请 → 集成 → 端点 → 限频 → 版本」全流程,送 Node.js 可运行代码 + AI 提效外挂,复制就能跑!


✅ 一句话速览

项目 说明
访问资格 Booking.com 连接合作伙伴获批
费用 免费,限频(异常使用将被禁用)
最新版 2.7(2020 发布)
核心端点 评论、房价/入住率、预订管理
KPI 建议 可用性准确率 ≥ 99.5%

一、如何获取 API 密钥?🔑

  1. 提交申请表
    Booking.com 合作伙伴门户 → 填写业务信息
  2. 审核与联系
    经理将核实文件(营业执照、ICP、保险等)
  3. 多阶段审批
    展示集成项目 → 通过审批 → 激活合作伙伴账户 → 发放 API Key

把「审批耗时」量化成 KPI?用 开发任务管理系统KPI 自动生成「≤ 30 天」可衡量指标。


二、集成步骤一览🛠️

阶段 交付物
① 项目展示 可访问的 Web/App Demo
② 技术对接 OTA 标准接口(房价、库存、预订)
③ 测试验收 沙箱 100% 用例通过
④ 上线运营 专属支持经理 7×24 跟进

三、3 大核心端点速览📡

① 嘉宾评论 API(Guest Review)

  • 作用:获取酒店评论 + 回复(禁止公开展示
  • 范围:仅限内部 CRM,登录页/官网不可见
  • 字段:评分、标题、正文、语言、回复内容

② 房价与入住率 API(Rates & Availability)

  • 作用:推送房型库存、价格、预订限制
  • 功能:支持提前预订、连住、关闭销售等策略
  • 粒度:按房型+日期+入住人数返回可用数

③ 预订 API(Reservations)

  • 作用:拉取、确认、修改、取消订单
  • Webhookreservation-new, reservation-modified, reservation-cancelled
  • 字段:订单号、入住人、房价、佣金、状态

四、Node.js 实战:获取房价 + 推送库存⚡️

.env

BOOKING_KEY=your_partner_key
BOOKING_URL=https://supply-xml.booking.com/2.7/xml

booking.js

const axios = require('axios');
const xml2js = require('xml2js');

const client = axios.create({
  baseURL: process.env.BOOKING_URL,
  headers: { 'Authorization': Bearer ${process.env.BOOKING_KEY} }
});

/** 1. 获取房价与可用性 */
async function getAvailability(hotel_id, from_date, to_date) {
  const xml = `
    <request>
      <hotel_id>${hotel_id}</hotel_id>
      <from_date>${from_date}</from_date>
      <to_date>${to_date}</to_date>
    </request>`;
  const { data } = await client.post('/getRoomTypes', xml);
  const result = await xml2js.parseStringPromise(data);
  return result.response.room_types[0].room_type.map(r => ({
    id: r.$.id,
    name: r.name[0],
    available: parseInt(r.available_rooms[0])
  }));
}

/** 2. 推送库存 */
async function setAvailability(hotel_id, room_id, date, rooms) {
  const xml = `
    <request>
      <hotel_id>${hotel_id}</hotel_id>
      <room_types>
        <room_type id="${room_id}">
          <date date="${date}" available_rooms="${rooms}"/>
        </room_type>
      </room_types>
    </request>`;
  await client.post('/setRoomTypes', xml);
  return { success: true };
}

(async () => {
  const rooms = await getAvailability(12345, '2025-08-01', '2025-08-03');
  console.log('可用房型:', rooms);
  // 推送 5 间房
  await setAvailability(12345, rooms[0].id, '2025-08-01', 5);
})();

输出

可用房型:[
{ id: '201', name: 'Standard Double', available: 8 },
{ id: '202', name: 'Superior Double', available: 5 }
]
✅ 库存已推送

想自动生成 SDK?把 XML Schema 丢给 代码生成,10 秒输出 Python/Java 客户端。


五、限频与异常处理🚫

  • 正常频率:未公开,但 1 分钟大量连接 会被封
  • 异常行为:同一 IP 高并发、长连接不释放
  • 惩罚:临时禁用 → 邮件通知 → 24h 内申诉
  • 最佳实践
    • 使用官方 SDK 的自动重试
    • 连接池 ≤ 50 并发
    • 增量推送(仅变更日期)

六、版本变更速览📈

版本 年份 主要功能
2.2/2.3 2018 酒店邮箱、许可证号、房间配置
2.4/2.5 2019 预订管理、酒店描述、房间修改
2.6/2.7 2020 儿童政策、可用性细化、预订流程优化

当前最新:2.7(2020-Q4)


七、AI 提效四连击🚀

步骤 AI 外挂 产出
生成 SDK 代码生成 多语言客户端一键下载
文档自动化 代码文档生成器 Markdown + Postman Collection
代码审查 代码审查助手 提前发现未处理 429、硬编码密钥
性能调优 代码优化 合并重复请求,缓存命中率 ↑

八、Next Step:30 分钟搭建 Booking.com API MVP🎯

  1. 前往 合作伙伴门户 → 提交申请表
  2. 克隆上文代码 → 跑通「获取可用性 → 推送库存」
  3. 用 Webhook 接收预订 → 自动确认
  4. 用 Grafana 可视化「可用性准确率」
  5. 用 AI 提示词自动生成 SDK、文档、KPI、审查报告

Booking.com API = 让全球 600 万酒店成为你的库存!🎉


原文链接: https://elfsight.com/blog/how-to-get-and-use-booking-com-api-partnership-and-integration/