Discover/Itasoftware API
live

Itasoftware APImatrix.itasoftware.com

Search ITA Matrix for one-way flight itineraries across multiple origins. Get fares, airlines, times, stops, and connections sorted by price via a single endpoint.

Endpoint health
verified 2d ago
search_flights
1/1 passing latest checkself-healing
Endpoints
1
Updated
16d ago

What is the Itasoftware API?

The ITA Matrix Flights API exposes a single search_flights endpoint that queries Google's ITA Matrix for one-way flight itineraries across up to dozens of origin airports simultaneously. Each result returns at least 7 fields per itinerary — including price, airlines, departure and arrival times, total duration, number of stops, and connection airports — all sorted by cheapest fare ascending. It supports multi-origin searches, routing constraints, cabin class filtering, and paginated results up to 500 per page.

This call costs1 credit / call— charged only on success
Try it
Page number for paginated results.
Cabin class for the search.
Comma-separated IATA airport codes for origin airports (e.g. BEL,CNF,GIG). Supports multiple origins in a single search.
Optional routing constraint — an IATA airport code that connections must route through (e.g. GRU for São Paulo Guarulhos). Omitting returns all available routings.
Currency code for prices (e.g. BRL, USD, EUR).
Number of results per page. Maximum 500.
IATA airport code for the destination airport.
Departure date in YYYY-MM-DD format.
api.parse.bot/scraper/4657c280-b419-4e2b-b4e7-26c6ccf21ed1/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/4657c280-b419-4e2b-b4e7-26c6ccf21ed1/search_flights?origins=BEL%2CCNF&departure_date=2027-03-15' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 matrix-itasoftware-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: ITA Matrix flight search — find cheap flights across origins."""
from parse_apis.matrix_itasoftware_com_api import ITAMatrix, InputFormatInvalid

client = ITAMatrix()

# Search for one-way flights from two Brazilian airports to Fortaleza.
try:
    flights = client.flights.search(
        origins="BEL,CNF",
        departure_date="2027-04-12",
        destination="FOR",
        currency="BRL",
        limit=5,
    )
except InputFormatInvalid as e:
    print("Bad input:", e.message)
    raise

# Iterate the cheapest results and print a summary line for each.
for flight in flights:
    print(
        flight.origin_airport, "→", flight.destination_airport,
        flight.departure_time, "|",
        ", ".join(flight.airlines),
        flight.duration, f"({flight.num_stops} stops)",
        flight.price,
    )

# Drill into the single cheapest option via .first().
cheapest = client.flights.search(
    origins="GIG,GRU",
    departure_date="2027-04-12",
    destination="FOR",
    cabin="COACH",
    limit=1,
).first()

if cheapest is not None:
    print(
        "Cheapest:", cheapest.price,
        "on", ", ".join(cheapest.flight_numbers),
        "arriving", cheapest.arrival_datetime,
    )

print("done")
All endpoints · 1 totalmissing one? ·

Search ITA Matrix for one-way flight itineraries from one or more origin airports to a destination on a specific date. Returns all matching fare combinations sorted by cheapest price, including price, airlines, departure/arrival times, duration, number of stops, and connection airports. Supports pagination via page and page_size parameters; when omitted, page defaults to 1 and page_size to 25. The upstream search is computation-intensive for large origin lists; very large queries (30+ origins) may occasionally time out on the first attempt and succeed on retry.

Input
ParamTypeDescription
pageintegerPage number for paginated results.
cabinstringCabin class for the search.
originsrequiredstringComma-separated IATA airport codes for origin airports (e.g. BEL,CNF,GIG). Supports multiple origins in a single search.
routingstringOptional routing constraint — an IATA airport code that connections must route through (e.g. GRU for São Paulo Guarulhos). Omitting returns all available routings.
currencystringCurrency code for prices (e.g. BRL, USD, EUR).
page_sizeintegerNumber of results per page. Maximum 500.
destinationstringIATA airport code for the destination airport.
departure_daterequiredstringDeparture date in YYYY-MM-DD format.
Response
{
  "type": "object",
  "fields": {
    "page": "Current page number.",
    "flights": "Array of flight itineraries sorted by price ascending. Each contains price, airlines, origin/destination airports, departure/arrival times, duration, stops, and flight numbers.",
    "total_pages": "Total number of pages available.",
    "search_params": "Echo of the search parameters used.",
    "total_results": "Number of flight results on this page."
  },
  "sample": {
    "data": {
      "page": 1,
      "flights": [
        {
          "cabin": "COACH",
          "price": "BRL299.00",
          "stops": [],
          "flights": [
            "LA4719"
          ],
          "airlines": [
            "LATAM"
          ],
          "duration": "2h 0m",
          "num_stops": 0,
          "origin_name": "Belem Val de Cans International",
          "solution_id": "FJuA7cC4eF3QJeleZQRiBJ002",
          "total_price": "BRL298.87",
          "arrival_time": "07:50",
          "airline_codes": [
            "LA"
          ],
          "price_numeric": 299,
          "departure_time": "05:50",
          "origin_airport": "BEL",
          "arrival_datetime": "2027-04-12T07:50-03:00",
          "destination_name": "Fortaleza Pinto Martins International",
          "duration_minutes": 120,
          "departure_datetime": "2027-04-12T05:50-03:00",
          "destination_airport": "FOR"
        },
        {
          "cabin": "COACH",
          "price": "BRL774.00",
          "stops": [],
          "flights": [
            "AD4097"
          ],
          "airlines": [
            "Azul"
          ],
          "duration": "2h 45m",
          "num_stops": 0,
          "origin_name": "Belo Horizonte Tancredo Neves",
          "solution_id": "FJuA7cC4eF3QJeleZQRiBJ005",
          "total_price": "BRL773.62",
          "arrival_time": "10:45",
          "airline_codes": [
            "AD"
          ],
          "price_numeric": 774,
          "departure_time": "08:00",
          "origin_airport": "CNF",
          "arrival_datetime": "2027-04-12T10:45-03:00",
          "destination_name": "Fortaleza Pinto Martins International",
          "duration_minutes": 165,
          "departure_datetime": "2027-04-12T08:00-03:00",
          "destination_airport": "FOR"
        }
      ],
      "total_pages": 1,
      "search_params": {
        "cabin": "COACH",
        "origins": [
          "BEL",
          "CNF"
        ],
        "routing": null,
        "currency": "BRL",
        "destination": "FOR",
        "departure_date": "2027-04-12"
      },
      "total_results": 8
    },
    "status": "success"
  }
}

About the Itasoftware API

What the API Returns

The search_flights endpoint accepts one or more origin IATA codes as a comma-separated origins parameter alongside a required destination airport code and departure_date in YYYY-MM-DD format. The response includes a flights array where each itinerary contains price (in the requested currency), airline(s) operating the flight, origin and destination airport codes, departure and arrival times, total flight duration, and stop count with connection airport details. Results are sorted price-ascending so the cheapest option appears first.

Filtering and Pagination

You can constrain searches by cabin class (e.g. COACH, BUSINESS), set a routing airport that all connections must pass through (useful for hub-based searches such as forcing connections via GRU), and choose a display currency like BRL, USD, or EUR. Pagination is controlled via page and page_size (maximum 500 results per page); the response echoes back total_results, total_pages, and the full search_params used, making it straightforward to walk through large result sets.

Multi-Origin Coverage

A notable capability is the multi-origin search: you can pass 20 or more IATA codes in a single origins call and get consolidated results across all of them. This is useful for fare comparison across an entire region — for example, all airports in Brazil — against a single destination in one request rather than firing separate queries per origin. The search_params echo in the response includes the full origin list so results can be attributed correctly.

ITA Matrix as a Source

ITA Matrix, built by ITA Software (acquired by Google), is widely regarded as one of the most thorough fare-combination engines available to consumers. It evaluates a broader set of routing and fare combinations than most consumer booking tools. The API surfaces the same itinerary data end-users see on matrix.itasoftware.com, without requiring a browser session.

Reliability & maintenanceVerified

The Itasoftware API is a managed, monitored endpoint for matrix.itasoftware.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when matrix.itasoftware.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 matrix.itasoftware.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.

Last verified
2d ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Find the cheapest one-way fare to a hub airport from all regional airports in a country simultaneously using multi-origin origins input.
  • Build a fare-alert system by polling search_flights on a schedule and comparing the price field across runs.
  • Identify the lowest-cost routing via a specific connecting hub by setting the routing parameter to a hub airport code.
  • Compare economy vs. business class pricing by running parallel requests with different cabin values and diffing the price fields.
  • Aggregate departure time distributions across airlines on a route using the departure and arrival time fields in the flights array.
  • Power a travel dashboard showing stop counts and connection airports for all itineraries between a set of origins and one destination.
  • Support multi-currency fare display by requesting the same search in BRL, USD, and EUR via the currency parameter.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does ITA Matrix have an official developer API?+
No. ITA Matrix at matrix.itasoftware.com is a consumer-facing tool with no publicly documented or commercially available developer API. Google's QPX Express API, which was based on ITA technology, was shut down in 2018.
What exactly does the `flights` array contain for each itinerary?+
Each element in flights includes the fare price in the requested currency, the operating airline or airlines, origin and destination IATA codes, departure and arrival times, total journey duration, number of stops, and the connection airport codes for multi-stop itineraries. Results are pre-sorted cheapest-first.
Does the API support round-trip or multi-city searches?+
Not currently. The search_flights endpoint covers one-way itineraries only. You can fork this API on Parse and revise it to add a round-trip or multi-city search endpoint.
Can I filter results by a specific airline or alliance?+
The endpoint does not currently accept an airline filter parameter — it returns all matching itineraries and you filter by airline on the client side using the airline field in each flights element. You can fork this API on Parse and revise it to add server-side airline filtering.
How should I handle large result sets with many origins?+
Use page_size (up to 500) and paginate through results using the page parameter. The response provides total_pages and total_results so you know exactly how many pages to fetch. The search_params echo confirms which origins were included in each response.
Page content last updated . Spec covers 1 endpoint from matrix.itasoftware.com.
Related APIs in TravelSee all →
flights.google.com API
Access data from flights.google.com.
us.trip.com API
Search for flights across Trip.com and view a low-price calendar to find the cheapest travel dates for your destination. Compare flight options and prices to book your next trip at the best rates available.
makemytrip.com API
Search for airports and compare the cheapest flight fares between any two cities across multiple dates with MakeMyTrip's fare calendar to find your best deal. Quickly identify the most affordable travel options and plan your trip with real-time pricing information.
skyscanner.com API
Search for flights and compare prices across multiple booking agents, while exploring airports and cities to plan your trip. View daily and monthly price calendars to find the best deals for your travel dates.
flightconnections.com API
Search for flights with detailed information about pricing, schedules, and layover options to find the best travel connections for your trips. Compare multiple flight choices and their costs in one convenient search.
skiplagged.com API
Search for flights across airlines including hidden-city ticketing options, and look up airport information by name or code to find the best travel deals. Access Skiplagged's flight inventory and routing data to discover cheaper itineraries and alternative airport combinations.
kayak.com.hk API
Search for flights and compare prices across airlines and routes, including flexible-date searches across multiple origin airports. View monthly price calendars to find the cheapest travel dates and get real-time fare information for any route.
flightsfrom.com API
Discover nonstop flight routes from any airport worldwide by searching locations by name, city, or IATA code, then view detailed daily flight schedules for your chosen routes. Plan your travel efficiently with instant access to all available destinations and their complete flight timetables from any airport.