JetBlue APIjetblue.com ↗
Search JetBlue one-way flights with per-fare-family pricing, look up airports by code or city, and get real-time flight status by flight number and date.
What is the JetBlue API?
The JetBlue API exposes 3 endpoints covering flight search, airport lookup, and real-time flight status for JetBlue-operated routes. search_flights returns every available itinerary between two airports on a given date, including nonstop and connecting options, with per-fare-family pricing across Blue Basic, Blue, Blue Plus, Blue Extra, and Mint cabins. Prices reflect the total cost for the full traveler count supplied.
curl -X GET 'https://api.parse.bot/scraper/4ab12c9b-de44-4658-b77f-ef14b3e98cc1/search_flights?date=2026-09-24&origin=BOS&destination=JFK' \ -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 jetblue-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: JetBlue SDK — find airports, search flights, check status."""
from parse_apis.jetblue_com_api import JetBlue, FlightNotFound
client = JetBlue()
# Find airports matching "boston" to get IATA codes for flight search.
for airport in client.airports.search(query="boston", limit=5):
print(airport.code, airport.name, "| JetBlue served:", airport.jetblue_served)
# Search one-way flights from BOS to JFK on a future date.
for itinerary in client.itineraries.search(
origin="BOS", destination="JFK", date="2026-09-24", limit=3
):
cheapest = min(
(f for f in itinerary.fares if not f.sold_out),
key=lambda f: f.price,
default=None,
)
price_info = f"from ${cheapest.price} ({cheapest.fare_family})" if cheapest else "sold out"
print(
f"{itinerary.departure:%H:%M}-{itinerary.arrival:%H:%M}",
f"{itinerary.itinerary_type} | {itinerary.total_duration}min |",
price_info,
)
# Drill into the first itinerary's segments for carrier details.
first = client.itineraries.search(
origin="BOS", destination="JFK", date="2026-09-24", limit=1
).first()
if first is not None:
for seg in first.segments:
print(seg.flight_number, seg.marketing_airline, seg.aircraft, f"{seg.duration}min")
# Use a segment's flight number to check real-time flight status.
flight_num = first.segments[0].flight_number
try:
status = client.flight_statuses.get(flight_number=flight_num, date="2026-09-24")
for trip in status.trips:
for leg in trip.legs:
print(leg.flight_number, leg.status, leg.origin, "->", leg.destination)
except FlightNotFound:
# Status is only available for dates near today.
print(f"No status available for flight {flight_num} on that date")
print("done: airports.search / itineraries.search / flight_statuses.get")
Searches JetBlue one-way itineraries between an origin and destination airport on a given departure date and returns every itinerary (nonstop and connecting) the site offers, each with its segments and the list of fares offered per fare family. Each fare carries the site's brand code plus the resolved fare family (for example Blue Basic, Blue, EvenMore, Blue Extra Refundable, Mint, Mint Refundable), total price for the whole party in the currency the site quotes, seats remaining and sold-out state. Fare families that are not available for a given itinerary are simply absent from its fares list. Passenger counts default to one adult; children and infants are counted as additional travelers when supplied. Two to three round trips are made per call (site bootstrap, fare-family catalog, search). Returns an empty flights list when the site has no itineraries for the route/date. Dates in the past and malformed airport codes are rejected before any request.
| Param | Type | Description |
|---|---|---|
| daterequired | string | Departure date, ISO YYYY-MM-DD, today or later. |
| adults | integer | Number of adult travelers (at least 1; adults plus children at most 7). Fare prices are the total for the whole party. |
| originrequired | string | Departure airport IATA code (3 letters, e.g. BOS). Use lookup_airports.airports[*].code to find one. |
| infants | integer | Number of lap infants (at most one per adult). |
| children | integer | Number of child travelers. |
| destinationrequired | string | Arrival airport IATA code (3 letters, e.g. JFK). Use lookup_airports.airports[*].code to find one. |
{
"type": "object",
"fields": {
"date": "requested departure date",
"origin": "requested origin airport code",
"flights": "array of itineraries; each has itinerary_type (NONSTOP/CONNECTING), origin/destination with terminals, departure/arrival local datetimes, total_duration (minutes), stops, is_quickest, segments[] (flight_number, marketing/operating airline, aircraft, airports, times, duration, distance, layover_duration) and fares[]",
"travelers": "object with adults, children, infants counts used for pricing",
"destination": "requested destination airport code",
"flight_count": "integer number of itineraries returned",
"brands_offered": "array of brand_code/fare_family pairs the site lists as offered on this search",
"flights[*].fares": "array of fare offers: offer_code, cabin_class, brand_code (site brand id), fare_family_code (BLUE_BASIC, BLUE, BLUE_PLUS, BLUE_EXTRA, EVEN_MORE, MINT), fare_family (display name), fare_name, price (total for party), currency, sold_out, seats_remaining, booking_classes[] and fare_basis[] per segment"
},
"sample": {
"data": {
"date": "2026-09-20",
"origin": "BOS",
"flights": [
{
"fares": [
{
"price": 148.4,
"currency": "USD",
"sold_out": false,
"fare_name": "Main Base",
"brand_code": "DN",
"fare_basis": [
"OI4AUEY1"
],
"offer_code": 235744636,
"cabin_class": "Economy",
"fare_family": "Blue Basic",
"booking_classes": [
"L"
],
"seats_remaining": 9,
"fare_family_code": "BLUE_BASIC"
},
{
"price": 183.4,
"currency": "USD",
"sold_out": false,
"fare_name": "Main",
"brand_code": "AN",
"fare_basis": [
"OI4AUEY5"
],
"offer_code": 1152687090,
"cabin_class": "Economy",
"fare_family": "Blue",
"booking_classes": [
"O"
],
"seats_remaining": 9,
"fare_family_code": "BLUE"
}
],
"stops": 0,
"origin": "BOS",
"arrival": "2026-09-20T06:27:00",
"segments": [
{
"origin": "BOS",
"arrival": "2026-09-20T06:27:00",
"aircraft": "223",
"distance": 187,
"duration": 72,
"departure": "2026-09-20T05:15:00",
"cabin_class": "Economy",
"destination": "JFK",
"segment_type": "JETBLUE",
"flight_number": 717,
"origin_terminal": "C",
"layover_duration": 0,
"marketing_airline": "B6",
"operating_airline": "B6",
"destination_terminal": "5",
"operating_flight_number": 717
}
],
"departure": "2026-09-20T05:15:00",
"destination": "JFK",
"is_quickest": true,
"itinerary_type": "NONSTOP",
"total_duration": 72,
"origin_terminal": "C",
"arrival_date_offset": 0,
"destination_terminal": "5"
}
],
"travelers": {
"adults": 1,
"infants": 0,
"children": 0
},
"destination": "JFK",
"flight_count": 11,
"brands_offered": [
{
"brand_code": "DN",
"fare_family": "Blue Basic"
},
{
"brand_code": "AN",
"fare_family": "Blue"
}
]
},
"status": "success"
}
}About the JetBlue API
Flight Search
search_flights accepts an origin and destination IATA code, a date in ISO format, and optional traveler counts (adults, children, infants). The response includes a flights array where each itinerary carries itinerary_type (NONSTOP or CONNECTING), origin and destination airports with terminals, departure and arrival local datetimes, and a fares array. Each fare entry exposes offer_code, cabin_class, brand_code, fare_family_code (BLUE_BASIC, BLUE, BLUE_PLUS, BLUE_EXTRA, or MINT), and the site's branded price for the full party. The top-level brands_offered array lists every fare family available for the search.
Airport Lookup
lookup_airports takes a free-text query of at least 2 characters — an IATA code, city name, airport name, state, or country — and returns matching entries from JetBlue's origin list. Each result includes code (the IATA code to pass into search_flights), name, a jetblue_served boolean, and the internal search terms that triggered the match. Results are ordered with exact code matches first, then prefix matches. A limit parameter caps results at 100.
Flight Status
get_flight_status takes a flight_number (1–4 digits, with or without a B6 prefix) and a date. The response contains a flights array of trip objects, each with is_connecting and is_through_flight flags and a legs array. Each leg provides origin and destination airports with terminal and gate, scheduled and estimated departure and arrival times in local time with UTC offset, boarding time, door-close time, and actual out/off/on/in times where available, along with a per-leg status text and status group.
The JetBlue API is a managed, monitored endpoint for jetblue.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when jetblue.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 jetblue.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?+
- Compare Blue Basic vs. Mint fares across nonstop and connecting itineraries for a given route and date
- Build a fare-tracking tool that monitors price changes across JetBlue fare families over time
- Populate an airport autocomplete field using lookup_airports with city or IATA code queries
- Display real-time gate, terminal, and departure/arrival status for JetBlue flights in a travel dashboard
- Calculate total trip cost for mixed adult/child/infant parties by passing traveler counts to search_flights
- Identify which routes JetBlue serves nonstop vs. with a connection on a specific departure date
- Alert travelers when estimated departure times diverge from scheduled times using get_flight_status timestamps
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.