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
| Field | Type | Required | Description |
|---|---|---|---|
hotelId | string | One of hotelId / hotelIds | Single hotel ID |
hotelIds | array of strings | One of hotelId / hotelIds | Multiple hotel IDs (cache-only; supplier fallback only applies to a single ID) |
language | string | No | Response 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
| Field | Description |
|---|---|
hid | Supplier's internal numeric hotel ID |
isClosed | true when the property is currently closed on the supplier side — availability calls will return no rates |
region | City/area and country the hotel is in |
amenityGroups | Free amenities, grouped, plus a separate paidAmenities list per group |
metapolicyStruct.children | The 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 |
facts | Building 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.