MakeMyTrip APImakemytrip.com ↗
Search airports by name and retrieve cheapest flight fares across 30+ dates via the MakeMyTrip fare calendar API. Returns IATA codes, prices, and airline data.
What is the MakeMyTrip API?
The MakeMyTrip API provides 2 endpoints for flight research: search_airports to resolve city and airport names into IATA codes, and get_fare_calendar to retrieve the cheapest available fares across 30+ dates for any origin-destination pair. Each fare object includes the travel date, price, currency, airline name, and airline codes, making it straightforward to identify the lowest-cost day to fly a given route.
curl -X GET 'https://api.parse.bot/scraper/3733f7b7-76b9-4577-a772-d42e21cee06c/search_airports?limit=5&query=Delhi' \ -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 makemytrip-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.
"""MakeMyTrip Flight Search — find airports and compare fares across dates."""
from parse_apis.makemytrip_flight_search_api import (
MakeMyTrip, Currency, AirportNotFound,
)
client = MakeMyTrip()
# Search airports to resolve city names into IATA codes.
for airport in client.airports.search(query="Mumbai", limit=3):
print(airport.airport_name, airport.iata_code, airport.country_code)
# Get a single airport to use as origin for the fare lookup.
origin = client.airports.search(query="Delhi", limit=1).first()
if origin:
print(f"Origin: {origin.airport_name} ({origin.iata_code})")
if origin.nearby_airports:
for nb in origin.nearby_airports:
print(f" Nearby: {nb.airport_name} — {nb.distance}")
# Fetch fare calendar between two cities.
calendar = client.farecalendars.get(
origin="DEL", destination="BOM", currency=Currency.USD,
)
print(f"Route: {calendar.route}, dates with fares: {calendar.total_dates_with_fares}")
if calendar.cheapest_fare:
print(f"Cheapest: {calendar.cheapest_fare.price} {calendar.cheapest_fare.currency} on {calendar.cheapest_fare.date_display} ({calendar.cheapest_fare.airline})")
# Typed error handling — catch an input_not_found when query yields nothing.
try:
client.airports.search(query="xyznonexistent", limit=1).first()
except AirportNotFound as exc:
print(f"No airports found for query: {exc.query}")
print("exercised: airports.search / farecalendars.get / AirportNotFound")
Search for airports and cities by name to get IATA codes. Returns matching airports with city, country, and nearby airport information. Use this to resolve human-readable city names into IATA codes before querying the fare calendar.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return |
| queryrequired | string | City or airport name to search for (e.g., 'Delhi', 'Mumbai', 'London') |
{
"type": "object",
"fields": {
"query": "string — the search query echoed back",
"airports": "array of airport objects with iata_code, city_name, airport_name, country, country_code, and optional nearby_airports",
"total_results": "integer — number of airports returned"
},
"sample": {
"data": {
"query": "Delhi",
"airports": [
{
"country": "India",
"city_name": "New Delhi",
"iata_code": "DEL",
"airport_name": "Indira Gandhi International Airport",
"country_code": "IN",
"nearby_airports": [
{
"distance": "29 km from New Delhi",
"city_name": "Ghaziabad",
"iata_code": "HDO",
"airport_name": "Hindon Airport"
}
]
},
{
"country": "India",
"city_name": "Jaipur",
"iata_code": "JAI",
"airport_name": "Jaipur Airport",
"country_code": "IN"
},
{
"country": "India",
"city_name": "Chandigarh",
"iata_code": "IXC",
"airport_name": "Chandigarh Airport",
"country_code": "IN"
}
],
"total_results": 3
},
"status": "success"
}
}About the MakeMyTrip API
Airport Search
The search_airports endpoint accepts a query string — a city or airport name such as "Delhi" or "London" — and returns an array of matching airport objects. Each object includes iata_code, city_name, airport_name, country, country_code, and an optional nearby_airports array for cities served by multiple airports. The total_results field tells you how many matches were returned. Use this endpoint first to confirm IATA codes before passing them to the fare calendar.
Fare Calendar
The get_fare_calendar endpoint takes origin and destination as IATA codes and an optional date parameter in YYYY-MM-DD format. It returns fares spanning approximately 30+ dates around that reference date, sorted ascending by price. Each fare object carries date, date_display, price, currency, airline, and airline_codes. The response also surfaces a cheapest_fare object (or null if no fares exist) and a total_dates_with_fares count, so you can quickly identify the single best date without iterating the full array.
Currency and Regional Coverage
The fare calendar is served through MakeMyTrip's global (UAE-region) infrastructure. The currency parameter accepts confirmed values of USD and AED; other currencies such as INR may return an error or empty results. Keep this in mind when building applications targeting Indian domestic routes — convert from USD or AED on your end rather than requesting INR directly.
The MakeMyTrip API is a managed, monitored endpoint for makemytrip.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when makemytrip.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 makemytrip.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?+
- Find the cheapest day to fly between two cities by scanning the full fare calendar and reading
cheapest_fare. - Build a flexible-date flight search UI that displays a month's worth of prices per route using the
faresarray. - Resolve ambiguous city names to IATA codes programmatically before constructing fare queries with
search_airports. - Track fare trends over time by polling
get_fare_calendarfor the same route on different reference dates. - Identify which airlines serve a route on low-fare dates using the
airlineandairline_codesfields. - Power a budget travel alert system that flags routes where
pricedrops below a defined threshold. - Populate airport autocomplete fields in a booking tool using the
airport_name,city_name, andiata_codefields fromsearch_airports.
| 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 MakeMyTrip have an official developer API?+
What does `get_fare_calendar` return and how many dates does it cover?+
date_display, price, currency, airline, and airline_codes. The cheapest_fare field in the response pinpoints the single lowest-priced date without requiring you to sort the array yourself.Which currencies work with the fare calendar?+
currency parameter are USD and AED. The API is served from MakeMyTrip's UAE-region infrastructure, so requesting INR or other currencies may return an error or no results. If you need fares in another currency, retrieve them in USD or AED and convert client-side.