Reference Data API

Overview

This API fetches comprehensive property content by property IDs or by city.

  • Method: GET
  • Endpoint: https://example-server.com/api/v2/content/reference-data
  • Authentication: Required (Use OAuth 2.0)
  • Rate Limited: Yes

Request parameters

ParameterTypeRequiredDescription
entityStringYesEntity for which reference data is needed, like continent, country, state, city, etc.
localesStringNoLocale code for localized content. Defaults to en-us. Format: xx-yy.
Note: Only en-us is supported currently.

Reference data entities

Entity parameterDescriptionTypical Use
continentTop-level geographic groupingNavigation, filtering
countryCountry with continent associationGeographic mapping
stateState/province within a countryAddress resolution
cityCity within a country/stateProperty grouping, search
areaSub-city neighborhood/districtFine-grained location
brandHotel brand (e.g., Hyatt Hotels)Brand filtering
chainHotel chain (e.g., Marriott, Hilton)Chain filtering
themeProperty theme (e.g., Beach, Romantic, Business)Category tagging
property_typeAccommodation type (Hotel, Apartment, Villa, etc.)Type filtering
facilityAmenity/facility (WiFi, Pool, Parking, etc.)Feature display
viewRoom/property view type (Sea view, City view, etc.)Room feature display
imageImage Captions that are available with ImagesImage Tagging
airportAirport locationsProperty grouping, search
reviewProperty reviews
*Not currently available. Will be supported in a later phase.
Display reviews

Entity relationships and data summary

You may arrange the download order of your reference data entities based on the following relationship mappings.

Response schema

FieldTypeDescription
metaObjectMetadata about the response.
meta.entityStringEntity type of the reference data returned (e.g., CITY).
meta.totalCountIntegerTotal number of records available for the entity.
dataArray of ObjectList of reference data records for the requested entity.
data[].idIntegerUnique ID of the entity. Map the Properties API reference ID to this entity ID.
data[].codeStringCode for the entity. Can be an empty string if none is assigned. Only applicable to the following entities: COUNTRY, CITY, STATE, AREA, AIRPORT.
data[].continentIdIntegerID of the state the entity belongs to. Only applicable to the following entities: COUNTRY.
data[].stateIdIntegerID of the state the entity belongs to. Only applicable to the following entities: CITY, AREA.
data[].countryIdIntegerID of the country the entity belongs to. Only applicable to the following entities: CITY, STATE, AREA.
data[].cityIdIntegerID of the city an entity belongs to. Only applicable to the following entities: AREA, AIRPORT.
data[].nameObjectLocalized city names, keyed by locale code (format xx-yy).
data[].name.<locale>StringCity name in the given locale (e.g., name.en-us). Defaults to en-us.
data[].groupObjectThe group the entity belongs to, indicating the group ID and name. Only applicable to the following entities: FACILITY.

Refresh reference data

Reference data is not expected to change frequently.

  • A weekly refresh will be sufficient for all entity types.
  • Fetch the full reference data entity (same calls as during first-time download) during refresh.
  • Compare with your stored version for changes.
  • Add new entries and update modifications accordingly.
  • Do not delete any removed reference entries when refreshing. They may still be referenced in existing properties.

Continents

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=continent' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "CONTINENT",
        "totalCount": 8
    },
    "data": [
        {
            "id": 1,
            "name": {
                "en-us": "Africa"
            }
        },
        {
            "id": 2,
            "name": {
                "en-us": "Asia"
            }
        },
        {
            "id": 3,
            "name": {
                "en-us": "Central America and Caribbean"
            }
        },
        {
            "id": 4,
            "name": {
                "en-us": "Europe"
            }
        }
    ]
}

Countries

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=country' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "COUNTRY",
        "totalCount": 221
    },
    "data": [
        {
            "id": 288,
            "code": "AF",
            "continentId": 2,
            "name": {
                "en-us": "Afghanistan"
            }
        },
        {
            "id": 53,
            "code": "AL",
            "continentId": 4,
            "name": {
                "en-us": "Albania"
            }
        },
        {
            "id": 143,
            "code": "DZ",
            "continentId": 1,
            "name": {
                "en-us": "Algeria"
            }
        }
    ]
}

States

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=state' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "STATE",
        "totalCount": 2791
    },
    "data": [
        {
            "id": 2797,
            "code": "",
            "countryId": 152,
            "name": {
                "en-us": "`Ammān"
            }
        },
        {
            "id": 1569,
            "code": "",
            "countryId": 74,
            "name": {
                "en-us": "`Asir"
            }
        },
        {
            "id": 1134,
            "code": "",
            "countryId": 51,
            "name": {
                "en-us": "Aargau"
            }
        },
        {
            "id": 1311,
            "code": "",
            "countryId": 65,
            "name": {
                "en-us": "Abia"
            }
        }
    ]
}

Cities

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=city' \
--header 'Authorization: Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "CITY",
        "totalCount": 93414
    },
    "data": [
        {
            "id": 739710,
            "code": "",
            "stateId": 56,
            "countryId": 181,
            "name": {
                "en-us": " Buchanan (TN)"
            }
        },
        {
            "id": 166113,
            "code": "",
            "stateId": 1354,
            "countryId": 68,
            "name": {
                "en-us": "`Ayn Drafil"
            }
        },
        {
            "id": 144052,
            "code": "",
            "stateId": 2748,
            "countryId": 144,
            "name": {
                "en-us": "`Azriqam"
            }
        },
        {
            "id": 143904,
            "code": "",
            "stateId": 2745,
            "countryId": 144,
            "name": {
                "en-us": "`En `Iron"
            }
        },
        {
            "id": 1278,
            "code": "",
            "stateId": 2,
            "countryId": 100,
            "name": {
                "en-us": "100 Mile House (BC)"
            }
        }
    ]
}

Areas

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=area&cityId=9395' \
--header 'Authorization: Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "AREA",
        "totalCount": 20
    },
    "data": [
        {
            "id": 514611,
            "code": "",
            "cityId": 9395,
            "stateId": 2028,
            "countryId": 106,
            "name": {
                "en-us": "Bang Kapi"
            }
        },
        {
            "id": 514609,
            "code": "",
            "cityId": 9395,
            "stateId": 2028,
            "countryId": 106,
            "name": {
                "en-us": "Bang Na"
            }
        },
        {
            "id": 31432,
            "code": "",
            "cityId": 9395,
            "stateId": 2028,
            "countryId": 106,
            "name": {
                "en-us": "Bangkok Riverside"
            }
        }
    ]
}

Brands

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=brand' \
--header 'Authorization: Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "BRAND",
        "totalCount": 9918
    },
    "data": [
        {
            "id": 44,
            "name": {
                "en-us": "Banyan Tree Hotels & Resorts"
            }
        },
        {
            "id": 45,
            "name": {
                "en-us": "Best Western International"
            }
        },
        {
            "id": 46,
            "name": {
                "en-us": "Country Inns & Suites"
            }
        },
        {
            "id": 47,
            "name": {
                "en-us": "Hotel Missoni"
            }
        },
        {
            "id": 48,
            "name": {
                "en-us": "Park Inn"
            }
        },
        {
            "id": 49,
            "name": {
                "en-us": "Park Plaza"
            }
        },
        {
            "id": 50,
            "name": {
                "en-us": "Radisson Blu"
            }
        }]
}

Chains

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=chain' \
--header 'Authorization: Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "CHAIN",
        "totalCount": 10966
    },
    "data": [
        {
            "id": 0,
            "name": {
                "en-us": "No Chain"
            }
        },
        {
            "id": 3,
            "name": {
                "en-us": "Accor Hotels"
            }
        },
        {
            "id": 4,
            "name": {
                "en-us": "Ascott International"
            }
        },
        {
            "id": 5,
            "name": {
                "en-us": "Banyan Tree Hotels & Resorts"
            }
        }
    ]
}

Themes

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=theme' \
--header 'Authorization: Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "THEME",
        "totalCount": 28
    },
    "data": [
        {
            "id": 5,
            "name": {
                "en-us": "Business hotels"
            }
        },
        {
            "id": 6,
            "name": {
                "en-us": "Shopping hotels"
            }
        },
        {
            "id": 7,
            "name": {
                "en-us": "Conference hotels"
            }
        },
        {
            "id": 8,
            "name": {
                "en-us": "Airport hotels"
            }
        },
        {
            "id": 9,
            "name": {
                "en-us": "Family hotels"
            }
        }
    ]
}

Property types

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=property_type' \
--header 'Authorization: Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "PROPERTY_TYPE",
        "totalCount": 43
    },
    "data": [
        {
            "id": 28,
            "name": {
                "en-us": "Villa"
            }
        },
        {
            "id": 29,
            "name": {
                "en-us": "Apartment/Flat"
            }
        },
        {
            "id": 30,
            "name": {
                "en-us": "Villa"
            }
        },
        {
            "id": 32,
            "name": {
                "en-us": "Guesthouse/bed and breakfast"
            }
        }
    ]
}

Facilities

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=facility' \
--header 'Authorization: Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "FACILITY",
        "totalCount": 307
    },
    "data": [
        {
            "id": 21,
            "name": {
                "en-us": "Bicycle rental"
            },
            "group": {
                "id": 77,
                "name": {
                    "en-us": "Sports equipment rental"
                }
            }
        },
        {
            "id": 151,
            "name": {
                "en-us": "English"
            },
            "group": {
                "id": 12,
                "name": {
                    "en-us": "Languages spoken"
                }
            }
        },
        {
            "id": 152,
            "name": {
                "en-us": "Thai"
            },
            "group": {
                "id": 12,
                "name": {
                    "en-us": "Languages spoken"
                }
            }
        },
        {
            "id": 153,
            "name": {
                "en-us": "Japanese"
            },
            "group": {
                "id": 12,
                "name": {
                    "en-us": "Languages spoken"
                }
            }
        }
    ]
}

Views

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=view' \
--header 'Authorization: Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "VIEW",
        "totalCount": 29
    },
    "data": [
        {
            "id": 1,
            "name": {
                "en-us": "Ocean"
            }
        },
        {
            "id": 2,
            "name": {
                "en-us": "Garden"
            }
        },
        {
            "id": 3,
            "name": {
                "en-us": "Pool"
            }
        } }
        }
    ]
}

Images

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=image' \
--header 'Authorization: Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "IMAGE",
        "totalCount": 97
    },
    "data": [
        {
            "id": 1,
            "name": {
                "en-us": "Balcony/Terrace"
            }
        },
        {
            "id": 2,
            "name": {
                "en-us": "Ballroom"
            }
        },
        {
            "id": 3,
            "name": {
                "en-us": "Bathroom"
            }
        }
    ]
}

Airports

Request

curl --location '{{baseURL}}/api/v2/content/reference-data?entity=airport' \
--header 'Authorization: Authorization: Bearer YOUR_ACCESS_TOKEN'

Response (excerpt)

{
    "meta": {
        "entity": "AIRPORT",
        "totalCount": 3172
    },
    "data": [
        {
            "id": 14751,
            "code": "AAE",
            "cityId": 103441,
            "name": {
                "en-us": "Rabah Bitat Airport"
            }
        },
        {
            "id": 57841,
            "code": "AAL",
            "cityId": 8016,
            "name": {
                "en-us": "Aalborg Airport"
            }
        },
        {
            "id": 14797,
            "code": "AAM",
            "cityId": 8086,
            "name": {
                "en-us": "Mala Mala Airport"
            }
        },
        {
            "id": 32172,
            "code": "AAN",
            "cityId": 9174,
            "name": {
                "en-us": "Al Ain International Airport"
            }
        }
    ]
}

Did this page help you?