Hotels integration
FlightGPT calls your API when a traveller searches a place and dates, matches your hotels to the ones we list, and shows your rates with a deeplink to book. Implement the format below or send us your existing API documentation.
Availability request
We search by location. We send a POST with a JSON body and your authentication header.
POST https://api.youragency.in/fgpt/hotels/search
X-API-Key: <the key you issue us>
Content-Type: application/json
{
"location": { "city": "Goa", "country": "IN", "lat": 15.5527, "lng": 73.7517 },
"check_in": "2026-11-14",
"check_out": "2026-11-16",
"rooms": 1,
"adults": 2,
"children": 1,
"child_ages": [7],
"currency": "INR",
"locale": "en-IN"
}
lat and lng are sent when we know the area the traveller asked for; otherwise they are null and you should search the city.
Availability response
{
"hotels": [
{
"id": "GOA-10482",
"name": "Seaview Palms Resort",
"address": "Calangute Beach Road, Calangute",
"city": "Goa", "country": "IN",
"lat": 15.5439, "lng": 73.7553,
"stars": 4,
"image": "https://cdn.youragency.in/h/10482.jpg",
"rates": [
{
"room": "Deluxe King Room",
"board": "breakfast",
"refundable": true,
"pay_at_hotel": false,
"total": 14160,
"base": 12000, "taxes": 2160, "fees": 0,
"currency": "INR",
"deeplink": "https://www.youragency.in/hotels/10482?rate=DLXKG-BB&in=2026-11-14&out=2026-11-16&rooms=1&ad=2&ch=1&ages=7"
}
]
}
]
}
| Field | Meaning |
|---|---|
id | Your hotel id. Keep it stable. |
name, address, lat, lng | Required for matching. We match your hotel to ours by name and by distance (within about 600 m). Without coordinates the name has to match almost exactly. |
stars, image | Optional. Used when we show your hotel on its own card. |
rates[].total | Required. Total for the whole stay, all rooms and guests, all mandatory taxes and fees included. |
rates[].base, taxes, fees | Recommended price breakdown. fees covers any mandatory hotel charges. |
rates[].room | Room name as the traveller will see it. |
rates[].board | room_only, breakfast, half_board, full_board or all_inclusive. |
rates[].refundable | true if free cancellation is possible. |
rates[].pay_at_hotel | true if the traveller pays at the property. |
rates[].deeplink | Required. https link to your booking page for this rate, dates, rooms and guests. |
Rates without a positive INR total or an https deeplink are not shown.
Static data (optional, improves matching)
If you send us your hotel list — id, name, address, city, country, latitude and longitude at minimum, as CSV or JSON, or a URL we can fetch monthly — we can match your hotels ahead of time instead of per search. Images of at least 1000 px on the long side, amenities, star rating and check-in times help us show your hotels well.
Speed, caching and deeplinks
- We wait up to 8 seconds and cache your answer for 30 minutes by default. Tell us if you need either changed.
- Deeplinks should open the booking page with the room rate selected. We add the click id — see conversion tracking.
- Tell us about limits: maximum rooms per search, maximum nights, whether children are supported.
- If you restrict API access by IP, allow
69.62.85.241.