FX-Port API
Hotels

POST /api/v1/hotels/get_hotel_info

Full hotel detail — rooms, amenities, policies, images, and facts. Tries cache first, falls back to the supplier.

Retrieve full hotel detail: rooms, amenities, images, description, policies, and facts. Tries the FX-Port cache first for speed, and falls back to the supplier live for a single hotel if not cached.

Permission: Read

Request body

FieldTypeRequiredDescription
hotelIdstringOne of hotelId / hotelIdsSingle hotel ID
hotelIdsarray of stringsOne of hotelId / hotelIdsMultiple hotel IDs (cache-only; supplier fallback only applies to a single ID)
languagestringNoResponse language. Default "en".

Request example

curl --request POST \
  --url https://api.fx-port.com/api/v1/hotels/get_hotel_info \
  --header 'Authorization: Bearer fxp_test_YOUR_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "hotelId": "sofitel_algiers_hamma_garden",
    "language": "en"
  }'

Response example

{
  "environment": "sandbox",
  "data": [
    {
      "id": "sofitel_algiers_hamma_garden",
      "hid": 8473727,
      "name": "Sofitel Algiers Hamma Garden",
      "kind": "Hotel",
      "hotelChain": "Sofitel",
      "address": "172 Rue Hassiba Ben Bouali",
      "postalCode": "16000",
      "latitude": 36.7538,
      "longitude": 3.0588,
      "starRating": 5,
      "region": { "id": 6700, "name": "Algiers", "countryCode": "DZ", "type": "City" },
      "contact": { "email": "[email protected]", "phone": "+213..." },
      "checkIn": "14:00:00",
      "checkOut": "12:00:00",
      "images": ["https://cdn.worldota.net/t/{size}/example.jpg"],
      "amenityGroups": [
        {
          "groupName": "General",
          "amenities": ["Wi-Fi", "Parking", "Swimming pool"],
          "paidAmenities": ["Room service"]
        }
      ],
      "descriptionStruct": [
        { "title": "About the hotel", "paragraphs": ["Located in the heart of..."] }
      ],
      "metapolicyStruct": {
        "checkInCheckOut": [],
        "children": [],
        "pets": [],
        "internet": []
      },
      "roomGroups": [
        {
          "roomGroupId": 12345,
          "name": "Superior Room",
          "images": ["https://cdn.worldota.net/t/{size}/example-room.jpg"],
          "roomAmenities": ["air-conditioning", "minibar"],
          "capacity": 2
        }
      ],
      "facts": {
        "floorsNumber": 15,
        "roomsNumber": 200,
        "yearBuilt": 2005,
        "yearRenovated": 2020
      },
      "paymentMethods": ["visa", "mastercard", "cash"]
    }
  ]
}

Field reference

FieldDescription
hidSupplier's internal numeric hotel ID
isClosedtrue when the property is currently closed on the supplier side — availability calls will return no rates
regionCity/area and country the hotel is in
amenityGroupsFree amenities, grouped, plus a separate paidAmenities list per group
metapolicyStruct.childrenThe hotel's own child age/extra-bed rules — check before assuming a child stays free
roomGroups[]Every distinct room type the hotel offers — cross-reference with room.name on get_rates results
factsBuilding facts (floors, rooms, year built/renovated)

Short vs. long detail. search_advanced and name-search both return a compact hotel summary (name, address, a representative rate). Use get_hotel_info when you need the full detail — every room group, amenity, policy, and image — for a hotel the traveler has selected.

On this page