Booking.com Contacts API

The Connectivity Contacts endpoint manages the contact records attached to a property on Booking.com, letting connectivity providers read and maintain property contact details programmatically instead of through the extranet.

Operations 2

GET /properties/{propertyId}/contacts Read all Contact(s) for a Property #
PUT /properties/{propertyId}/contacts Overlay multiple Contacts for a Property #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/booking-com:booking-com-contacts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

booking-com-contacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: endpoint Contacts API
  description: Contains Contacts endpoint specification.
  contact: {}
  license: {}
  version: '1.0'
servers:
- url: https://supply-xml.booking.com/
  description: Test using live endpoint
tags:
- name: Contacts
  description: Manage contact information for properties including contact persons, addresses, phone numbers, and email addresses.
paths:
  /properties/{propertyId}/contacts:
    get:
      tags:
      - Contacts
      summary: Read all Contact(s) for a Property
      operationId: getAllContacts
      parameters:
      - name: Accept-Version
        in: header
        schema:
          type: string
      - name: propertyId
        in: path
        description: The Property ID of which you wish to retrieve the data
        required: true
        schema:
          type: integer
          format: int32
      - name: no_language_fallback
        in: query
        description: Controls language fallback for GET contacts response. If omitted or set to `0` (default), the API falls back to `en-gb` when preferred language is not set. If set to `1`, fallback is skipped and can return `null` for the `language_code`.
        required: false
        schema:
          type: string
          default: '0'
          enum:
          - '0'
          - '1'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactInfoResponse'
    put:
      tags:
      - Contacts
      summary: Overlay multiple Contacts for a Property
      description: Contacts not sent will be reset/deleted.
      operationId: overwriteContacts
      parameters:
      - name: Accept-Version
        in: header
        schema:
          type: string
      - name: propertyId
        in: path
        description: The Property ID of which you wish to update the data
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactInfo'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse'
components:
  schemas:
    ApiResponse:
      type: object
      properties:
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
    ContactPerson:
      required:
      - language_code
      - name
      type: object
      properties:
        gender:
          pattern: male|female
          type: string
          description: 'Contact person''s gender.

            Validation: One of valid value.

            [Current Documentation: Gender](/connectivity/docs/api-reference/name)

            DataMapping: ContactInfo/Names/Gender'
          enum:
          - male, female
        name:
          type: string
          description: 'Contact person''s given name/full name.

            Validation: Cannot be empty or null.

            [Current Documentation: GivenName](/connectivity/docs/api-reference/name)

            DataMapping: ContactInfo/Names/GivenName'
        job_title:
          type: string
          description: 'The contact''s Job Title.

            Validation: One of valid [Booking.com Job Title Code](/connectivity/docs/codes-bcjt/).

            Default: Unknown

            [Current Documentation: JobTitle](/connectivity/docs/api-reference/name)

            DataMapping: ContactInfo/Names/JobTitle'
        language_code:
          type: string
          description: 'The contact''s spoken language.

            Validation: One of valid language codes provided [Booking.com Language Code](/connectivity/docs/codes-bcl/)

            [Current Documentation: Language](/connectivity/docs/api-reference/name)

            DataMapping: ContactInfo/Names/Language'
      description: 'Name details for a contact person.

        [Current Documentation](/connectivity/docs/api-reference/name)

        '
    ContactPhone:
      required:
      - phone_number
      - phone_tech_type
      type: object
      properties:
        phone_number:
          type: string
          description: 'The international phone number.

            Validation: We validate for country specific formats for the number against the address provided.

            [Current Documentation: PhoneNumber](/connectivity/docs/api-reference/phone/)

            DataMapping: ContactInfo/Phones/PhoneNumber'
        phone_tech_type:
          type: integer
          description: 'The type of phone line/device.

            Validations: One of a valid value.

            [Current Documentation: PhoneTechType](/connectivity/docs/api-reference/phone)

            DataMapping: ContactInfo/Phones/PhoneTechType'
          format: int32
          enum:
          - 1
          - 3
          - 5
        extension:
          type: string
          description: 'The extension number that must be dialled in addition to the @PhoneNumber.

            Validation: Only accepted when @PhoneTechType= "1".

            [Current Documentation: Extension](/connectivity/docs/api-reference/phone/)

            DataMapping: ContactInfo/Phones/Extension'
      description: 'Phone number details for a contact person/point. Can be more than 1.

        [Current Documentation](/connectivity/docs/api-reference/phone)'
    Contact:
      required:
      - contact_person
      - contact_profiles
      - email
      - phones
      type: object
      properties:
        contact_profiles:
          type: array
          description: 'Type of Contact Profiles. Each value corresponds with a similarly named heading on the Contacts page.

            Validation: Must be one of provided values.

            [Current Documentation](/connectivity/docs/api-reference/contactinfo/#contactprofiletype)

            DataMapping: ContactInfo/ContactProfileType'
          items:
            $ref: '#/components/schemas/ContactProfile'
        address:
          $ref: '#/components/schemas/ContactAddress'
        contact_person:
          $ref: '#/components/schemas/ContactPerson'
        phones:
          type: array
          description: 'Validation: Cannot be null/empty

            PhoneTechType 1 can have at most 3 entries.

            PhoneTechType 3 and 5 can have at most 1 entry.

            Extension can only be provided for PhoneTechType 1

            DataMapping: ContactInfo/Phones'
          items:
            $ref: '#/components/schemas/ContactPhone'
        email:
          type: string
          description: 'Email address for a contact person/point.

            Validation: Email must be of a standard format.

            [Current Documentation](/connectivity/docs/api-reference/email/)

            DataMapping: ContactInfo/Emails/Email'
      description: One Single Contact Object
    ContactAddress:
      required:
      - country_code
      - language_code
      type: object
      properties:
        city_name:
          type: string
          description: 'The name of the city, town, or village.

            Validation: We do not allow CJK Unified Ideographs

            [Current Documentation: CityName](/connectivity/docs/api-reference/address/)

            DataMapping: ContactInfo/Addresses/CityName'
        country_code:
          type: string
          description: 'The country code of the contact address.

            Validation: One of [Two-letter country code](/connectivity/docs/b_xml-countries/).

            Country codes follow ISO 3166

            [Current Documentation: CountryName](/connectivity/docs/api-reference/address)

            DataMapping: ContactInfo/Addresses/CountryName'
        postal_code:
          type: string
          description: 'Postal/zip code.

            Validation: We validate against country specific post code formats.

            [Current Documentation: PostalCode](/connectivity/docs/api-reference/address)

            DataMapping: ContactInfo/Addresses/PostalCode'
        address_line:
          maxLength: 255
          minLength: 1
          type: string
          description: 'The full street name and number.

            Should not contain abbreviations (such as "Rd." for "Road") and should not exceed 255 characters.

            Validations: Minimum 1 at most 255 characters. We also do not allow CJK Unified Ideographs.

            [Current Documentation: AddressLine](/connectivity/docs/api-reference/address)

            DataMapping: ContactInfo/Addresses/AddressLine'
        language_code:
          type: string
          description: 'The language code for the address details.

            Validation: One of [Booking.com Language Code](/connectivity/docs/codes-bcl/)

            Default: en

            [Current Documentation: Language](/connectivity/docs/api-reference/address)

            DataMapping: ContactInfo/Addresses/Language'
    ContactInfoResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ContactInfo'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
    ContactProfile:
      required:
      - type
      type: object
      properties:
        type:
          type: string
          description: 'Type of Contact Profile. Each value corresponds with a similarly named heading on the Contacts page.

            [Current Documentation](/connectivity/docs/api-reference/contactinfo/#contactprofiletype)

            DataMapping: ContactInfo/ContactProfileType'
          enum:
          - general
          - reservations
          - invoices
          - availability
          - site_content
          - parity
          - requests
          - central_reservations
      description: One Single Contact Profile Object
    ResponseMeta:
      type: object
      properties:
        ruid:
          type: string
    ApiError:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
        details:
          $ref: '#/components/schemas/ObjectNode'
    ContactInfo:
      required:
      - contacts
      type: object
      properties:
        contacts:
          type: array
          description: 'General contact type is mandatory for setting up the property.

            Validation: ContactProfileType entries cannot be repeated within the same array.

            General contact can have only 1 entry in total.

            [Current Documentation: ContactInfo Root Object](/connectivity/docs/api-reference/contactinfo)'
          items:
            $ref: '#/components/schemas/Contact'
      description: List of all contacts
    ObjectNode:
      type: object
x-tagGroups:
- name: API Endpoints
  tags:
  - Contacts
- name: Documentation
  tags:
  - About Try it