Expedia Group Geography API

The EPS Geography API provides geography content for regions around the world.

OpenAPI Specification

expedia-group-geography-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Expedia Group EPS Deposit Bookings Geography API
  description: 'The EPS Deposit API manages the deposit policy for a property, offering operations to create/update, read and delete it. <br/><br/>To start experimenting, please use your existing EQC credentials and properties. We''ve also made the following test credentials available: EQCtest12933870 / ew67nk33 assigned to test property ID 12933870.'
  contact:
    name: Expedia Partner Services
    url: https://expediaconnectivity.com/developer
    email: eqcss@expedia.com
  version: '1.0'
servers:
- url: https://services.expediapartnercentral.com/
security:
- Basic: []
tags:
- name: Geography
  description: The EPS Geography API provides geography content for regions around the world.
paths:
  /regions:
    get:
      tags:
      - Geography
      summary: Expedia Group Regions
      description: 'Returns the geographic definition and property mappings of regions matching the specified parameters.<br><br>

        To request all regions in the world, omit the `ancestor` query parameter. To request all regions in a specific

        continent, country or other level, specify the ID of that region as the `ancestor`. Refer to the list of

        [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists).

        <br><br>

        The response is a paginated list of regions. See the `Link` header in the 200 response section.

        '
      operationId: getRegions
      parameters:
      - name: Accept
        in: header
        description: 'Specifies the response format that the client would like to receive back. This must be `application/json`.

          '
        required: true
        schema:
          type: string
        example: application/json
      - name: Accept-Encoding
        in: header
        description: 'Specifies the response encoding that the client would like to receive back. This must be `gzip`.

          '
        required: true
        schema:
          type: string
        example: gzip
      - name: User-Agent
        in: header
        description: 'The `User-Agent` header string from the customer''s request, as captured by your integration. If you are building an application then the `User-Agent` value should be `{app name}/{app version}`.

          '
        required: true
        schema:
          type: string
        example: TravelNow/3.30.112
      - name: Customer-Session-Id
        in: header
        description: 'Insert your own unique value for each user session, beginning with the first API call.

          Continue to pass the same value for each subsequent API call during the user''s session, using a new value for every new customer session.<br>

          Including this value greatly eases EPS''s internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user''s session.

          '
        schema:
          type: string
      - name: include
        in: query
        description: "Options for which content to return in the response. This parameter can be supplied multiple times with different values. The standard and details options cannot be requested together. The value must be lower case.\n  * standard - Include the metadata and basic hierarchy of each region.\n  * details - Include the metadata, coordinates and full hierarchy of each region.\n  * property_ids - Include the list of property IDs within the bounding polygon of each region.\n  * property_ids_expanded - Include the list of property IDs within the bounding polygon of each region and property IDs from the surrounding area if minimal properties are within the region.\n"
        required: true
        schema:
          type: array
          items:
            type: string
            enum:
            - standard
            - details
            - property_ids
            - property_ids_expanded
        example:
        - details
      - name: language
        in: query
        description: 'Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/)


          Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options)

          '
        required: true
        schema:
          type: string
        example: en-US
      - name: ancestor_id
        in: query
        description: 'Search for regions whose ancestors include the requested ancestor region ID. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists).

          '
        schema:
          type: string
        example: 602962
      - name: area
        in: query
        description: "Filter the results to regions that intersect with a specified area.<br><br>\nThe area may be defined in one of two ways:\n  * radius,region_id\n  * radius,latitude,longitude\n\nRadius combined with region id would search an area that extends the number of kilometers out from the boundaries of the region in all directions.<br>\nRadius combined with a single point, specified by a latitude, longitude pair would search an area in a circle with the specified radius and the point as the center.<br>\nRadius should be specified in non-negative whole kilometers, decimals will return an error. A radius of 0 is allowed.<br>\nWhen specifying the area parameter, there will be a limit of 100 results, which can be narrowed further by the limit parameter.<br>\nDue to the number of results, unless `point_of_interest` is specified as the only type, regions of type `point_of_interest`\nwill not be included in a request that filters to an area.<br><br>\nAn example use case would be searching for the closest 3 airports within 50 kilometers of a specified point.<br>\n  `&type=airport&limit=3&area=50,37.227924,-93.310036`\n"
        schema:
          type: string
        example: 3,602962
      - name: country_code
        in: query
        description: 'Filter the results to a specified ISO 3166-1 alpha-2 country code.


          For more information see: [https://www.iso.org/obp/ui/#search/code/](https://www.iso.org/obp/ui/#search/code/)

          '
        schema:
          type: array
          items:
            type: string
        example:
        - US
      - name: country_subdivision_code
        in: query
        description: Filter the results down to only the ISO 3166-2 country subdivision.
        schema:
          type: array
          items:
            type: string
        example:
        - US-MO
      - name: iata_location_code
        in: query
        description: 'Search for regions by the requested 3-character IATA location code, which will apply to both iata_airport_code and iata_airport_metro_code. The code must be upper case.

          '
        schema:
          type: string
        example: SGF
      - name: limit
        in: query
        description: 'Limit the number of results returned.

          Using the area parameter will impose a max value of 100 for this whether specified or not.

          '
        schema:
          type: number
      - name: supply_source
        in: query
        description: "Options for which supply source you would like returned in the geography response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times.\n  * `expedia` - Standard Expedia supply.\n  * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information.\n"
        schema:
          type: string
        example: vrbo
      - name: type
        in: query
        description: 'Filter the results to a specified region type.

          '
        schema:
          type: array
          items:
            type: string
      - name: billing_terms
        in: query
        description: 'This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately.

          '
        schema:
          type: string
      - name: partner_point_of_sale
        in: query
        description: 'This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately.

          '
        schema:
          type: string
      - name: payment_terms
        in: query
        description: 'This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately.

          '
        schema:
          type: string
      - name: platform_name
        in: query
        description: 'This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately.

          '
        schema:
          type: string
      responses:
        '200':
          description: OK
          headers:
            Rate-Limit-Day:
              description: Reserved for future use. Optional header for request capacity per day.
              schema:
                type: number
            Rate-Limit-Day-Remaining:
              description: Optional header for the remaining capacity, as a percentage, for the daily time window.
              schema:
                type: number
            Rate-Limit-Day-Reset:
              description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets.
              schema:
                type: number
            Rate-Limit-Minute:
              description: Reserved for future use. Optional header for request capacity per minute.
              schema:
                type: number
            Rate-Limit-Minute-Remaining:
              description: Optional header for the remaining capacity, as a percentage, for the per minute time window.
              schema:
                type: number
            Rate-Limit-Minute-Reset:
              description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets.
              schema:
                type: number
            Rate-Limit-Reduction-Status:
              description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used.
              schema:
                type: string
            Region:
              $ref: '#/components/headers/Region'
            Link:
              description: 'Contains a single link to get the immediate next page of results, and follows the

                [IETF standard](https://tools.ietf.org/html/rfc5988). To get the next page of results, simply follow

                the `next` URL in this header without modifying it. This header will be missing when there are no

                further pages. If the link expires, there will be an `expires` link-extension that is the UTC date the

                link will expire, in ISO 8601 format.

                '
              schema:
                type: string
                example: <https://test.ean.com/v3/regions?token=Q11RF1Vda1JREAQQCQMFVgpRDVQDDFsAFgJVgYBDQYAUw==>; rel="next"; expires=2023-06-29T20:15:05.324083439Z
            Pagination-Total-Results:
              description: Header that returns the pagination total results.
              schema:
                type: string
                example: '2801'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Region'
              examples:
                Regions:
                  value:
                  - id: '602962'
                    type: multi_city_vicinity
                    name: Springfield
                    name_full: Springfield, Missouri, United States of America
                    descriptor: and vicinity
                    country_code: US
                    country_subdivision_code: US-MO
                    coordinates:
                      center_longitude: -93.310036
                      center_latitude: 37.227924
                      bounding_polygon:
                        type: Polygon
                        coordinates:
                        - - - -93.446782
                            - 37.169329
                          - - -93.4244
                            - 37.169432
                          - - -93.371097
                            - 37.168636
                          - - -93.376295
                            - 37.139236
                          - - -93.361419
                            - 37.138634
                          - - -93.347109
                            - 37.100601
                          - - -93.215792
                            - 37.095905
                          - - -93.215259
                            - 37.138013
                          - - -93.189332
                            - 37.141503
                          - - -93.191278
                            - 37.333322
                          - - -93.438268
                            - 37.339372
                          - - -93.446782
                            - 37.169329
                    ancestors:
                    - id: '227'
                      type: province_state
                    - id: '201'
                      type: country
                    - id: '500001'
                      type: continent
                    descendants:
                      point_of_interest:
                      - '6064841'
                      - '6064853'
                  - id: '6064841'
                    type: point_of_interest
                    name: American National Fish and Wildlife Museum
                    name_full: American National Fish and Wildlife Museum, Springfield, Missouri, United States of America
                    country_code: US
                    country_subdivision_code: US-MO
                    coordinates:
                      center_longitude: -93.29635
                      center_latitude: 37.1826
                    ancestors:
                    - id: '602962'
                      type: multi_city_vicinity
                    - id: '227'
                      type: province_state
                    - id: '201'
                      type: country
                    - id: '500001'
                      type: continent
                  - id: '4605779'
                    type: airport
                    name: Springfield, MO (SGF-Springfield-Branson National)
                    name_full: Springfield, MO, United States (SGF-Springfield-Branson National)
                    iata_airport_code: SGF
                    country_code: US
                    country_subdivision_code: US-MO
                    coordinates:
                      center_longitude: -93.382095
                      center_latitude: 37.24233
                    associations:
                      multi_city_vicinity:
                      - '6058734'
                    ancestors:
                    - id: '602962'
                      type: multi_city_vicinity
                    - id: '227'
                      type: province_state
                    - id: '201'
                      type: country
                    - id: '500001'
                      type: continent
                No regions:
                  value: []
        '400':
          description: Bad Request
          headers:
            Rate-Limit-Day:
              description: Reserved for future use. Optional header for request capacity per day.
              schema:
                type: number
            Rate-Limit-Day-Remaining:
              description: Optional header for the remaining capacity, as a percentage, for the daily time window.
              schema:
                type: number
            Rate-Limit-Day-Reset:
              description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets.
              schema:
                type: number
            Rate-Limit-Minute:
              description: Reserved for future use. Optional header for request capacity per minute.
              schema:
                type: number
            Rate-Limit-Minute-Remaining:
              description: Optional header for the remaining capacity, as a percentage, for the per minute time window.
              schema:
                type: number
            Rate-Limit-Minute-Reset:
              description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets.
              schema:
                type: number
            Rate-Limit-Reduction-Status:
              description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used.
              schema:
                type: string
            Region:
              $ref: '#/components/headers/Region'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                type: invalid_input
                message: An invalid request was sent in, please check the nested errors for details.
                errors:
                - type: include.invalid
                  message: 'Include is invalid. Accepted include values are: [details, property_ids, property_ids_expanded, standard]'
                  fields:
                  - name: include
                    type: querystring
                    value: STANDARD
        '401':
          description: Unauthorized
          headers:
            Region:
              $ref: '#/components/headers/Region'
            WWW-Authenticate:
              description: Provides an example of the Authorization header.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                type: request_unauthenticated
                message: Data required to authenticate your request is missing or inaccurate. Ensure that your request follows the guidelines in our documentation.
                fields:
                - name: apikey
                  type: header
                  value: jaj3982k239dka328e
                - name: signature
                  type: header
                  value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b
                - name: timestamp
                  type: header
                  value: 198284729
                - name: servertimestamp
                  type: server
                  value: 198284729
        '403':
          description: Forbidden
          headers:
            Region:
              $ref: '#/components/headers/Region'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                type: request_unauthorized
                message: Your request could not be authorized.
        '410':
          description: Gone
          headers:
            Rate-Limit-Day:
              description: Reserved for future use. Optional header for request capacity per day.
              schema:
                type: number
            Rate-Limit-Day-Remaining:
              description: Optional header for the remaining capacity, as a percentage, for the daily time window.
              schema:
                type: number
            Rate-Limit-Day-Reset:
              description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets.
              schema:
                type: number
            Rate-Limit-Minute:
              description: Reserved for future use. Optional header for request capacity per minute.
              schema:
                type: number
            Rate-Limit-Minute-Remaining:
              description: Optional header for the remaining capacity, as a percentage, for the per minute time window.
              schema:
                type: number
            Rate-Limit-Minute-Reset:
              description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets.
              schema:
                type: number
            Rate-Limit-Reduction-Status:
              description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used.
              schema:
                type: string
            Region:
              $ref: '#/components/headers/Region'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                type: link.expired
                message: The link that you followed has expired and this paginated session is now gone. Please restart the regions call from the beginning.
        '426':
          description: Upgrade Required
          headers:
            Region:
              $ref: '#/components/headers/Region'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                type: upgrade_required
                message: This service requires the use of TLS.
        '429':
          description: Too Many Requests
          headers:
            Rate-Limit-Day:
              description: Reserved for future use. Optional header for request capacity per day.
              schema:
                type: number
            Rate-Limit-Day-Remaining:
              description: Optional header for the remaining capacity, as a percentage, for the daily time window.
              schema:
                type: number
            Rate-Limit-Day-Reset:
              description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets.
              schema:
                type: number
            Rate-Limit-Minute:
              description: Reserved for future use. Optional header for request capacity per minute.
              schema:
                type: number
            Rate-Limit-Minute-Remaining:
              description: Optional header for the remaining capacity, as a percentage, for the per minute time window.
              schema:
                type: number
            Rate-Limit-Minute-Reset:
              description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets.
              schema:
                type: number
            Rate-Limit-Reduction-Status:
              description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used.
              schema:
                type: string
            Region:
              $ref: '#/components/headers/Region'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                type: too_many_requests
                message: You have reached your capacity for this type of request.
        '500':
          description: Internal Error
          headers:
            Rate-Limit-Day:
              description: Reserved for future use. Optional header for request capacity per day.
              schema:
                type: number
            Rate-Limit-Day-Remaining:
              description: Optional header for the remaining capacity, as a percentage, for the daily time window.
              schema:
                type: number
            Rate-Limit-Day-Reset:
              description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets.
              schema:
                type: number
            Rate-Limit-Minute:
              description: Reserved for future use. Optional header for request capacity per minute.
              schema:
                type: number
            Rate-Limit-Minute-Remaining:
              description: Optional header for the remaining capacity, as a percentage, for the per minute time window.
              schema:
                type: number
            Rate-Limit-Minute-Reset:
              description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets.
              schema:
                type: number
            Rate-Limit-Reduction-Status:
              description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used.
              schema:
                type: string
            Region:
              $ref: '#/components/headers/Region'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                type: internal_error
                message: An internal server error has occurred. Please discard any previously received results in this pagination and restart the pagination from the beginning.
        '503':
          description: Service Unavailable
          headers:
            Region:
              $ref: '#/components/headers/Region'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                type: service_unavailable
                message: This service is currently unavailable.
      security:
      - rapidAuth: []
  /regions/{region_id}:
    get:
      tags:
      - Geography
      summary: Expedia Group Region
      description: 'Returns the geographic definition and property mappings for the requested Region ID. The response is a single JSON formatted region object.

        '
      operationId: getRegion
      parameters:
      - name: Accept
        in: header
        description: 'Specifies the response format that the client would like to receive back. This must be `application/json`.

          '
        required: true
        schema:
          type: string
        example: application/json
      - name: Accept-Encoding
        in: header
        description: 'Specifies the response encoding that the client would like to receive back. This must be `gzip`.

          '
        required: true
        schema:
          type: string
        example: gzip
      - name: Customer-Session-Id
        in: header
        description: 'Insert your own unique value for each user session, beginning with the first API call.

          Continue to pass the same value for each subsequent API call during the user''s session, using a new value for every new customer session.<br>

          Including this value greatly eases EPS''s internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user''s session.

          '
        schema:
          type: string
      - name: User-Agent
        in: header
        description: 'The `User-Agent` header string from the customer''s request, as captured by your integration. If you are building an application then the `User-Agent` value should be `{app name}/{app version}`.

          '
        required: true
        schema:
          type: string
        example: TravelNow/3.30.112
      - name: region_id
        in: path
        description: 'ID of the region to retrieve.

          '
        required: true
        schema:
          type: string
        example: 178248
      - name: language
        in: query
        description: 'Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/)


          Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options)

          '
        required: true
        schema:
          type: string
        example: en-US
      - name: include
        in: query
        description: "Options for which content to return in the response. This parameter can be supplied multiple times with different values. The value must be lower case.\n  * details - Include the metadata, coordinates and full hierarchy of the region.\n  * property_ids - Include the list of property IDs within the bounding polygon of the region.\n  * property_ids_expanded - Include the list of property IDs within the bounding polygon of the region and property IDs from the surrounding area if minimal properties are within the region.\n"
        required: true
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - details
            - property_ids
            - property_ids_expanded
        example:
        - details
      - name: billing_terms
        in: query
        description: 'This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately.

          '
        schema:
          type: string
      - name: partner_point_of_sale
        in: query
        description: 'This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately.

          '
        schema:
          type: string
      - name: payment_terms
        in: query
        description: 'This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately.

          '
        schema:
          type: string
      - name: platform_name
        in: query
        description: 'This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately.

          '
        schema:
          type: string
      - name: supply_source
        in: query
        description: "Options for which supply source you would like returned in the geography response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times.\n  * `expedia` - Standard Expedia supply.\n  * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information.\n"
        schema:
          type: string
        example: vrbo
      responses:
        '200':
          description: OK
          headers:
            Rate-Limit-Day:
              description: Reserved for future use. Optional header for request capacity per day.
              schema:
                type: number
            Rate-Limit-Day-Remaining:
              description: Optional header for the remaining capacity, as a percentage, for the daily time window.
              schema:
                type: number
            Rate-Limit-Day-Reset:
              description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets.
              schema:
                type: number
            Rate-Limit-Minute:
              

# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/expedia-group/refs/heads/main/openapi/expedia-group-geography-api-openapi.yml