booking-com · Schema

Booking.com Promotion

Represents a promotional offer on Booking.com, including deals, discounts, and special rates that properties use to attract travelers and increase bookings.

Properties

Name Type Description
promotion_id string Unique identifier for the promotion
promotion_type string Type of promotional offer
hotel_id integer Booking.com property identifier this promotion applies to
discount_percentage number Discount percentage applied to the parent rate
status string Current status of the promotion
bookable_from string Start date from which the promotion can be booked
bookable_until string End date until which the promotion can be booked
stay_from string Earliest check-in date for stays using this promotion
stay_until string Latest check-out date for stays using this promotion
min_advance_days integer Minimum number of days in advance the booking must be made
max_advance_days integer Maximum number of days in advance the booking can be made
min_stay_nights integer Minimum number of nights required for the stay
applicable_rooms array Room type IDs this promotion applies to; empty means all rooms
applicable_rates array Rate plan IDs this promotion applies to; empty means all rates
target_countries array Country codes eligible for this promotion (country_rate type only)
target_devices array Device types eligible for this promotion (mobile_rate type only)
campaign_name string Name of the campaign (campaign_deal type only)
created_at string Timestamp when the promotion was created
modified_at string Timestamp when the promotion was last modified
View JSON Schema on GitHub

JSON Schema

booking-com-promotion-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://booking.com/schemas/booking-com/promotion.json",
  "title": "Booking.com Promotion",
  "description": "Represents a promotional offer on Booking.com, including deals, discounts, and special rates that properties use to attract travelers and increase bookings.",
  "type": "object",
  "required": ["promotion_id", "promotion_type", "discount_percentage"],
  "properties": {
    "promotion_id": {
      "type": "string",
      "description": "Unique identifier for the promotion"
    },
    "promotion_type": {
      "type": "string",
      "description": "Type of promotional offer",
      "enum": ["basic_deal", "last_minute_deal", "campaign_deal", "country_rate", "mobile_rate"]
    },
    "hotel_id": {
      "type": "integer",
      "description": "Booking.com property identifier this promotion applies to"
    },
    "discount_percentage": {
      "type": "number",
      "description": "Discount percentage applied to the parent rate",
      "minimum": 0,
      "maximum": 100
    },
    "status": {
      "type": "string",
      "description": "Current status of the promotion",
      "enum": ["active", "inactive", "expired", "pending"]
    },
    "bookable_from": {
      "type": "string",
      "format": "date",
      "description": "Start date from which the promotion can be booked"
    },
    "bookable_until": {
      "type": "string",
      "format": "date",
      "description": "End date until which the promotion can be booked"
    },
    "stay_from": {
      "type": "string",
      "format": "date",
      "description": "Earliest check-in date for stays using this promotion"
    },
    "stay_until": {
      "type": "string",
      "format": "date",
      "description": "Latest check-out date for stays using this promotion"
    },
    "min_advance_days": {
      "type": "integer",
      "description": "Minimum number of days in advance the booking must be made",
      "minimum": 0
    },
    "max_advance_days": {
      "type": "integer",
      "description": "Maximum number of days in advance the booking can be made"
    },
    "min_stay_nights": {
      "type": "integer",
      "description": "Minimum number of nights required for the stay",
      "minimum": 1
    },
    "applicable_rooms": {
      "type": "array",
      "description": "Room type IDs this promotion applies to; empty means all rooms",
      "items": {
        "type": "integer"
      }
    },
    "applicable_rates": {
      "type": "array",
      "description": "Rate plan IDs this promotion applies to; empty means all rates",
      "items": {
        "type": "integer"
      }
    },
    "target_countries": {
      "type": "array",
      "description": "Country codes eligible for this promotion (country_rate type only)",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z]{2}$"
      }
    },
    "target_devices": {
      "type": "array",
      "description": "Device types eligible for this promotion (mobile_rate type only)",
      "items": {
        "type": "string",
        "enum": ["mobile", "tablet"]
      }
    },
    "campaign_name": {
      "type": "string",
      "description": "Name of the campaign (campaign_deal type only)"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the promotion was created"
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the promotion was last modified"
    }
  }
}