Goibibo APIgoibibo.com ↗
Search Goibibo flights, compare fare tiers, check cancellation policies, and look up airports by IATA code or city name with 4 structured endpoints.
What is the Goibibo API?
The Goibibo API exposes 4 endpoints covering airport lookup, one-way flight search, fare tier comparison, and cancellation policy retrieval. The search_airports endpoint returns IATA codes, airport names, city names, country codes, and nearby airports within 200 km for any city name or IATA query. The search_flights endpoint delivers live pricing across all carriers Goibibo lists for a given origin-destination-date combination.
curl -X GET 'https://api.parse.bot/scraper/646763c2-828c-4b36-80a4-117d6a320738/search_airports?limit=5&query=DEL' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace goibibo-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Goibibo Airport Search SDK — search airports by name or IATA code."""
from parse_apis.goibibo_airport_search_api import Goibibo, NotFoundError
goibibo = Goibibo()
# Search airports by city name — limit caps total items returned.
for airport in goibibo.airports.search(query="Mumbai", limit=3):
print(airport.iata, airport.airport_name, airport.city_name, airport.country)
# Each airport may include nearby airports within 200km
for nearby in airport.nearby_airports:
print(f" Nearby: {nearby.iata} {nearby.airport_name} ({nearby.distance_info})")
# Search by IATA code and drill into the first result
airport = goibibo.airports.search(query="DEL", limit=1).first()
if airport:
print(airport.iata, airport.airport_name, airport.country_code, airport.locus_code)
# Typed error handling around a search call
try:
results = goibibo.airports.search(query="XYZ", limit=5)
for ap in results:
print(ap.iata, ap.city_name)
except NotFoundError as exc:
print(f"Not found: {exc}")
print("exercised: airports.search (by city name, by IATA code, error handling)")
Search for airports by city name or IATA code. Returns matching airport suggestions including IATA codes, airport names, city names, country information, and nearby airports within 200km. Results are ranked by relevance to the query, with exact IATA matches appearing first. Each result may include a groupData array of nearby airports with distance information.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of airport suggestions to return |
| queryrequired | string | City name or IATA code to search for (e.g. 'DEL', 'Mumbai', 'BOM', 'London') |
{
"type": "object",
"fields": {
"airports": "array of airport objects each containing iata, cityName, airportName, country, countryCode, locusCode, and optional groupData array of nearby airports with distance info"
},
"sample": {
"data": {
"airports": [
{
"iata": "BOM",
"country": "India",
"cityName": "Mumbai",
"groupData": [
{
"iata": "NMI",
"country": "India",
"cityName": "Navi Mumbai",
"locusCode": "CTNVM",
"airportName": "Navi Mumbai International Airport",
"countryCode": "IN",
"distanceInfoText": "22 km from Mumbai"
}
],
"locusCode": "CTBOM",
"airportName": "Chhatrapati Shivaji International Airport",
"countryCode": "IN"
}
]
},
"status": "success"
}
}About the Goibibo API
Airport Lookup
The search_airports endpoint accepts a query string (city name or IATA code, e.g. DEL, Mumbai, London) and an optional limit integer. Each result in the airports array includes iata, cityName, airportName, country, countryCode, and locusCode. An optional groupData array surfaces nearby airports within 200 km, which is useful when users want to compare departure options across a metro area. Exact IATA matches rank first in results.
Flight Search and Fare Details
The search_flights endpoint takes origin and destination IATA codes and a date in YYYYMMDD format. It returns a flights array and a total_found count. Once you have a specific flight, its rKey identifier feeds into two follow-up endpoints: get_fare_details returns a fares array listing the available booking tiers for that flight (such as different cabin classes or bundled ancillary options), and get_fare_rules returns a rules object describing cancellation and date-change policies.
Workflow
A typical integration resolves airport codes with search_airports, runs search_flights to get a candidate list, then calls get_fare_details and get_fare_rules using the rKey from each result to compare cost and flexibility before surfacing options to a user. All four endpoints are stateless — no session needs to be maintained between calls.
The Goibibo API is a managed, monitored endpoint for goibibo.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when goibibo.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official goibibo.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a flight price tracker that monitors fares on specific Goibibo routes daily using
search_flights - Populate an airport autocomplete field for a travel app using
search_airportsIATA and city name data - Compare cancellation flexibility across fare tiers by pairing
get_fare_detailsandget_fare_rulesoutputs - Identify all airports within 200 km of a city using the
groupDatafield fromsearch_airports - Aggregate one-way fare data across multiple Indian city pairs for a flight price analytics dashboard
- Alert users when a fare tier's cancellation policy changes by polling
get_fare_rulesfor trackedrKeyvalues
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Goibibo have an official public developer API?+
What does `search_airports` return beyond basic airport names?+
iata, cityName, airportName, country, countryCode, and locusCode. If the airport belongs to a cluster, a groupData array lists nearby airports within 200 km. Results are ranked by relevance, with exact IATA code matches appearing first.Does the API support round-trip or multi-city flight searches?+
search_flights covers one-way searches between two IATA codes on a single departure date. Round-trip and multi-city itineraries are not exposed. You can fork this API on Parse and revise it to add a round-trip or multi-city endpoint.Can I retrieve seat availability or ancillary options like baggage allowance?+
get_fare_details endpoint returns available fare tiers for a flight, but explicit seat maps and itemized baggage allowance fields are not currently included in the response. You can fork this API on Parse and revise it to add those details if the source exposes them.Is there a way to paginate through a large set of flight results?+
search_flights endpoint returns a total_found count and a flights array, but the current schema does not expose pagination parameters such as page offset or cursor tokens. You can fork this API on Parse and revise it to add pagination support.