This page documents the ticketing data endpoints available through the AirStream API. These endpoints provide aggregated analytics derived from the Bureau of Transportation Statistics DB1B and DB1C datasets, enabling market analysis and carrier performance insights.


Understanding Tickets Data

These datasets capture U.S. airline ticketing data at two analytical levels.

Suppose a passenger buys a ticket to fly from MSP to LAX, connecting through ORD.

Level Description Example
Market Origin-destination intent within a ticket One Market: MSP → LAX
Coupon Individual flight segments actually flown Two Coupons: MSP → ORD, ORD → LAX

To understand true origin–destination demand — regardless of routing — use Market data. To understand how airlines actually operate flights, including hub-and-spoke patterns, connections, and segment-level traffic flows, use Coupon data.

Each level has two endpoint types:

Endpoint Purpose
Route (/markets/route, /coupons/route) Aggregate metrics for a specific origin-destination pair
Breakdown (/markets/breakdown, /coupons/breakdown) Analytics grouped by one or more dimensions (carrier, airport, etc.)

Time Parameters

All endpoints support two time modes. DB1B uses quarterly periods. DB1C supports both monthly and quarterly periods.

Single Period

Parameter Type Description
year int Year of the data
quarter int Quarter (1–4)
month int Month (1–12) — DB1C only

For DB1B, provide year + quarter. For DB1C, provide year + month or year + quarter.

Multi-Period Range

Quarterly range (both DB1B and DB1C):

Parameter Type Description
start_year int Start year (inclusive)
start_quarter int Start quarter (inclusive)
end_year int End year (inclusive)
end_quarter int End quarter (inclusive)

Monthly range (DB1C only):

Parameter Type Description
start_year int Start year (inclusive)
start_month int Start month (inclusive)
end_year int End year (inclusive)
end_month int End month (inclusive)

Route endpoints allow up to 20 quarters (or 60 months for DB1C). Breakdown endpoints allow up to 20 quarters (or 60 months for DB1C).

Specific Periods (Across Years)

Specific quarters (DB1B and DB1C):

Parameter Type Description
start_year int Start year (inclusive)
end_year int End year (inclusive)
quarters string Comma-separated quarters (e.g. 1,3)

Specific months (DB1C only):

Parameter Type Description
start_year int Start year (inclusive)
end_year int End year (inclusive)
months string Comma-separated months (e.g. 6,12)

Markets

Route

Aggregate metrics for a specific origin-destination market.

  GET /tickets/markets/route
  

Required Parameters

Parameter Type Description
origin string Origin airport (3-letter IATA code)
destination string Destination airport (3-letter IATA code)

Plus time parameters.

Optional Parameters

Parameter Type Description DB1B DB1C
metrics string Comma-separated list of metrics available in this dataset Yes Yes
tkcarrier string Filter by ticketing carrierThe carrier responsible for ticketing in the market Yes
rpcarrier string Filter by reporting carrierThe carrier responsible for reporting the market data Yes Yes
opcarrier string Filter by operating carrierThe carrier operating the flights in the market Yes Yes
mktcarrier string Filter by marketing carrierThe carrier marketing the flights in the market Yes
mkt_distance_group int Filter by distance band
  • 1 (Less Than 500 Miles)
  • 2 (500-999 Miles)
  • 3 (1000-1499 Miles)
  • 4 (1500-1999 Miles)
  • 5 (2000-2499 Miles)
  • 6 (2500-2999 Miles)
  • 7 (3000-3499 Miles)
  • 8 (3500-3999 Miles)
  • 9 (4000-4499 Miles)
  • 10 (4500-4999 Miles)
  • 11 (5000-5499 Miles)
  • 12 (5500-5999 Miles)
  • 13 (6000-6499 Miles)
  • 14 (6500-6999 Miles)
  • 15 (7000-7499 Miles)
  • 16 (7500-7999 Miles)
  • 17 (8000-8499 Miles)
  • 18 (8500-8999 Miles)
  • 19 (9000-9499 Miles)
  • 20 (9500-9999 Miles)
  • 21 (10000-10499 Miles)
  • 22 (10500-10999 Miles)
  • 23 (11000-11499 Miles)
  • 24 (11500-11999 Miles)
  • 25 (12000 Miles and Greater)
Yes
tkcarrier_change bool Ticketing carrier changedIndicates whether the ticketing carrier changed throughout the market Yes
opcarrier_change bool Operating carrier changedIndicates whether the operating carrier changed throughout the market Yes Yes
mktcarrier_change bool Marketing carrier changedIndicates whether the marketing carrier changed throughout the market Yes
bulk_fare bool Bulk fare flagFlag for bulk fares, typically discounted for group purchases Yes
dollar_cred bool Dollar credibility flagIndicates the dollar credibility of a market, used for statistical adjustments Yes
roundtrip bool Roundtrip flag Yes Yes
online bool Online flag Yes
nonstop bool Nonstop flag Yes Yes
itin_geo_type string Itinerary geography type
  • 0 (International)
  • 1 (Non-contiguous Domestic - Includes Hawaii, Alaska and Territories)
  • 2 (Contiguous Domestic - Lower 48 U.S. States Only)
Yes
mkt_geo_type string Market geography type
  • 0 (International)
  • 1 (Non-contiguous Domestic - Includes Hawaii, Alaska and Territories)
  • 2 (Contiguous Domestic - Lower 48 U.S. States Only)
Yes
tkcarrier_group string Filter by ticketing carrier group Yes
opcarrier_group string Filter by operating carrier group Yes
fare_class string Filter by fare class (use alias or raw DOT code)
  • ground (-)
  • business_unrestricted (C)
  • business_restricted (D)
  • first_unrestricted (F)
  • first_restricted (G)
  • unknown (U)
  • coach_restricted (X)
  • coach_unrestricted (Y)
Yes
coupon_type string Filter by coupon type Yes
purwingrp string Purchase window group
  • 2290 (Ticket purchase occurred 22-90 days before travel)
  • 21AP (Ticket purchase occurred up to 21 days before travel)
  • 91UP (Ticket purchase occurred 91 days or more before travel)
Yes
normalize_to_db1b bool Normalize counts to DB1B scaleNormalize counts to DB1B scale (divide by 4) for comparison purposes Yes
limit int Max rows returned (default 50, max 100) Yes
limit_results bool Limit to most recent data (DB1B: 4 quarters; DB1C: 12 months) Yes Yes

Notes

  • The fare class share metrics, which are percentages themselves, do not return a share field — only value (the percentage itself).

Example

Average fare from LAX to SEA in Q3 2024:

  GET /tickets/markets/route?year=2024&quarter=3&origin=LAX&destination=SEA&metrics=avg_fare
  
  {
  "meta": {
	"year": 2024,
	"quarter": 3,
	"metrics": [
	  "avg_fare"
	],
	"origin": {
	  "iata_code": "LAX",
	  "airport_id": 12892,
	  "city_market_id": 32575,
	  "name": "Los Angeles International",
	  "city": "Los Angeles, CA",
	  "state": "CA",
	  "state_fips": "06",
	  "country": "US",
	  "world_area_code": 91,
	  "latitude": 33.94305556,
	  "longitude": -118.40888889
	},
	"destination": {
	  "iata_code": "SEA",
	  "airport_id": 14747,
	  "city_market_id": 30559,
	  "name": "Seattle/Tacoma International",
	  "city": "Seattle, WA",
	  "state": "WA",
	  "state_fips": "53",
	  "country": "US",
	  "world_area_code": 93,
	  "latitude": 47.45,
	  "longitude": -122.31166667
	}
  },
  "result": {
	"avg_fare": {
	  "value": 160.71
	}
  }
}
  

Breakdown

Market-level analytics grouped by one or more dimensions.

  GET /tickets/markets/breakdown
  

Required Parameters

Parameter Type Description
by string Comma-separated breakdown dimensions to group results by

Plus time parameters.

Optional Parameters

Parameter Type Description DB1B DB1C
metrics string Comma-separated markets metrics, default all base Yes Yes
tkcarrier string Filter by ticketing carrierThe carrier responsible for ticketing in the market Yes
rpcarrier string Filter by reporting carrierThe carrier responsible for reporting the market data Yes Yes
opcarrier string Filter by operating carrierThe carrier operating the flights in the market Yes Yes
mktcarrier string Filter by marketing carrierThe carrier marketing the flights in the market Yes
origin string Filter by origin airport Yes Yes
destination string Filter by destination airport Yes Yes
mkt_distance_group int Filter by distance band
  • 1 (Less Than 500 Miles)
  • 2 (500-999 Miles)
  • 3 (1000-1499 Miles)
  • 4 (1500-1999 Miles)
  • 5 (2000-2499 Miles)
  • 6 (2500-2999 Miles)
  • 7 (3000-3499 Miles)
  • 8 (3500-3999 Miles)
  • 9 (4000-4499 Miles)
  • 10 (4500-4999 Miles)
  • 11 (5000-5499 Miles)
  • 12 (5500-5999 Miles)
  • 13 (6000-6499 Miles)
  • 14 (6500-6999 Miles)
  • 15 (7000-7499 Miles)
  • 16 (7500-7999 Miles)
  • 17 (8000-8499 Miles)
  • 18 (8500-8999 Miles)
  • 19 (9000-9499 Miles)
  • 20 (9500-9999 Miles)
  • 21 (10000-10499 Miles)
  • 22 (10500-10999 Miles)
  • 23 (11000-11499 Miles)
  • 24 (11500-11999 Miles)
  • 25 (12000 Miles and Greater)
Yes
tkcarrier_change bool Ticketing carrier changedIndicates whether the ticketing carrier changed throughout the market Yes
opcarrier_change bool Operating carrier changedIndicates whether the operating carrier changed throughout the market Yes Yes
mktcarrier_change bool Marketing carrier changedIndicates whether the marketing carrier changed throughout the market Yes
bulk_fare bool Bulk fare flagFlag for bulk fares, typically discounted for group purchases Yes
dollar_cred bool Dollar credibility flagIndicates the dollar credibility of a market, used for statistical adjustments Yes
roundtrip bool Roundtrip flag Yes Yes
online bool Online flag Yes
nonstop bool Nonstop flag Yes Yes
itin_geo_type string Itinerary geography type
  • 0 (International)
  • 1 (Non-contiguous Domestic - Includes Hawaii, Alaska and Territories)
  • 2 (Contiguous Domestic - Lower 48 U.S. States Only)
Yes
mkt_geo_type string Market geography type
  • 0 (International)
  • 1 (Non-contiguous Domestic - Includes Hawaii, Alaska and Territories)
  • 2 (Contiguous Domestic - Lower 48 U.S. States Only)
Yes
tkcarrier_group string Filter by ticketing carrier group Yes
opcarrier_group string Filter by operating carrier group Yes
fare_class string Filter by fare class (use alias or raw DOT code)
  • ground (-)
  • business_unrestricted (C)
  • business_restricted (D)
  • first_unrestricted (F)
  • first_restricted (G)
  • unknown (U)
  • coach_restricted (X)
  • coach_unrestricted (Y)
Yes
coupon_type string Filter by coupon type Yes
purwingrp string Purchase window group
  • 2290 (Ticket purchase occurred 22-90 days before travel)
  • 21AP (Ticket purchase occurred up to 21 days before travel)
  • 91UP (Ticket purchase occurred 91 days or more before travel)
Yes
origin_hub string Origin airport hub size
  • L (Large Hub)
  • M (Medium Hub)
  • S (Small Hub)
  • N (Non-Hub)
Yes
destination_hub string Destination airport hub size
  • L (Large Hub)
  • M (Medium Hub)
  • S (Small Hub)
  • N (Non-Hub)
Yes
origin_role string Origin airport FAA role
  • P (Primary Commercial Service)
  • R (Reliever)
  • G (General Aviation)
Yes
destination_role string Destination airport FAA role
  • P (Primary Commercial Service)
  • R (Reliever)
  • G (General Aviation)
Yes
sort_by string Sort column, default first metric (single-period only) Yes Yes
sort_order string asc or desc, default desc (single-period only) Yes Yes
limit int Max rows (single-period: default 50, max 100; multi-period: per period, default 25, max 50) Yes Yes
limit_results bool Limit to most recent data (DB1B: 4 quarters; DB1C: 12 months) Yes Yes
normalize_to_db1b bool Normalize to DB1B scale, default falseDB1C only Yes

Breakdown Dimensions

All dimensions support both single-period and multi-period queries. A dimension cannot be both a breakdown dimension and a filter in the same query.

Dimension Description DB1B DB1C
tkcarrier Ticketing carrier Yes
rpcarrier Reporting carrier Yes Yes
opcarrier Operating carrier Yes Yes
mktcarrier Marketing carrier Yes
origin Origin airport Yes Yes
destination Destination airport Yes Yes
mkt_distance_group Market distance band Yes
tkcarrier_change Ticketing carrier changed Yes
opcarrier_change Operating carrier changed Yes Yes
mktcarrier_change Marketing carrier changed Yes
bulk_fare Bulk fare flag Yes
dollar_cred Dollar credibility flag Yes
roundtrip Roundtrip flag Yes Yes
online Online flag Yes
nonstop Nonstop flag Yes Yes
itin_geo_type Itinerary geography type Yes
mkt_geo_type Market geography type Yes
tkcarrier_group Ticketing carrier group Yes
opcarrier_group Operating carrier group Yes
fare_class Fare class Yes
coupon_type Coupon type Yes
purwingrp Purchase window group Yes

Example

Revenue by destination for markets originating from LAX in Q3 2024:

  GET /tickets/markets/breakdown?year=2024&quarter=3&by=destination&origin=LAX&metrics=revenue
  
  {
  "meta": {
	"year": 2024,
	"quarter": 3,
	"breakdown_by": [
	  "destination"
	],
	"metrics": [
	  "revenue"
	],
	"count": 370,
	"sort_by": "revenue",
	"sort_order": "desc",
	"origin": {
	  "iata_code": "LAX",
	  "airport_id": 12892,
	  "city_market_id": 32575,
	  "name": "Los Angeles International",
	  "city": "Los Angeles, CA",
	  "state": "CA",
	  "state_fips": "06",
	  "country": "US",
	  "world_area_code": 91,
	  "latitude": 33.94305556,
	  "longitude": -118.40888889
	}
  },
  "results": [
	{
	  "destination": {
		"iata_code": "JFK",
		"airport_id": 12478,
		"city_market_id": 31703,
		"name": "John F. Kennedy International",
		"city": "New York, NY",
		"state": "NY",
		"state_fips": "36",
		"country": "US",
		"world_area_code": 22,
		"latitude": 40.64,
		"longitude": -73.77861111
	  },
	  "revenue": {
		"value": 13398250.9,
		"share": 10.45
	  }
	},
	. . .
  ]
}
  

Metrics

All base metrics (indicated in bold) will be returned by default.

Metric Description DB1B DB1C
passengers Number of passengers Yes Yes
revenue Total revenue (dollars) Yes Yes
miles_flown Total miles flown Yes
total_distance Total market distance Yes Yes
count Record count Yes
base_cost Revenue minus taxes Yes
tax_cost Tax amount Yes
connections Total connections Yes
avg_fare Average fare per passenger Yes Yes
avg_distance Average distance per passenger Yes Yes
avg_miles_flown Average miles flown per passenger Yes
avg_base_cost Average base cost per passenger Yes
avg_tax Average tax per passenger Yes
avg_connections Average connections per passenger Yes
circuity Ratio of actual to nonstop distance Yes Yes
ground_share Ground transport passengers as % of total Yes
business_unrestricted_share Unrestricted business class passengers as % of total Yes
business_restricted_share Restricted business class passengers as % of total Yes
first_unrestricted_share Unrestricted first class passengers as % of total Yes
first_restricted_share Restricted first class passengers as % of total Yes
unknown_share Unknown fare class passengers as % of total Yes
coach_restricted_share Restricted coach passengers as % of total Yes
coach_unrestricted_share Unrestricted coach passengers as % of total Yes

Coupons

Route

  GET /tickets/coupons/route
  

Aggregate coupon metrics for a specific origin-destination segment pair. Same structure as Markets Route, but at the coupon (flight segment) level.

Required Parameters

Parameter Type Description
origin string Origin airport (3-letter IATA code)
destination string Destination airport (3-letter IATA code)

Plus time parameters.

Optional Parameters

Parameter Type Description DB1B DB1C
metrics string Comma-separated list of coupon metrics Yes Yes
tkcarrier string Filter by ticketing carrier Yes
rpcarrier string Filter by reporting carrier Yes Yes
opcarrier string Filter by operating carrier Yes Yes
mktcarrier string Filter by marketing carrier Yes
fare_class string Filter by fare class Yes
coupon_type string Filter by coupon type Yes
roundtrip bool Roundtrip flag Yes Yes
online bool Online flag Yes
bulk_fare bool Bulk fare flag Yes
gateway bool Gateway flag Yes
dollar_cred bool Dollar credibility flag Yes
nonstop bool Nonstop flag Yes Yes
distance_group string Distance group Yes
tkcarrier_change bool Ticketing carrier changed Yes
opcarrier_change bool Operating carrier changed Yes Yes
mktcarrier_change bool Marketing carrier changed Yes
itin_geo_type string Itinerary geography type Yes
mkt_geo_type string Market geography type Yes
coupon_geo_type string Coupon geography type Yes
purwingrp string Purchase window group Yes
normalize_to_db1b bool Normalize to DB1B scale (÷4) Yes
limit int Max rows returned (default 50, max 100) Yes
limit_results bool Limit to most recent data (DB1B: 4 quarters; DB1C: 12 months) Yes Yes

Example

Passengers on the JFK → LAX segment in Q1 2025:

  GET /tickets/coupons/route?year=2025&quarter=1&origin=JFK&destination=LAX&metrics=passengers
  
  {
  "meta": {
	"year": 2025,
	"quarter": 1,
	"metrics": [
	  "passengers"
	],
	"origin": {
	  "iata_code": "JFK",
	  "airport_id": 12478,
	  "city_market_id": 31703,
	  "name": "John F. Kennedy International",
	  "city": "New York, NY",
	  "state": "NY",
	  "state_fips": "36",
	  "country": "US",
	  "world_area_code": 22,
	  "latitude": 40.64,
	  "longitude": -73.77861111
	},
	"destination": {
	  "iata_code": "LAX",
	  "airport_id": 12892,
	  "city_market_id": 32575,
	  "name": "Los Angeles International",
	  "city": "Los Angeles, CA",
	  "state": "CA",
	  "state_fips": "06",
	  "country": "US",
	  "world_area_code": 91,
	  "latitude": 33.94305556,
	  "longitude": -118.40888889
	}
  },
  "result": {
	"passengers": {
	  "value": 27468
	}
  }
}
  

Breakdown

  GET /tickets/coupons/breakdown
  

Coupon-level analytics grouped by one or more dimensions.

Required Parameters

Parameter Type Description
by string Comma-separated breakdown dimensions to group results by

Plus time parameters.

Optional Parameters

Parameter Type Description DB1B DB1C
metrics string Comma-separated coupon metrics, default all base Yes Yes
tkcarrier string Filter by ticketing carrier Yes
rpcarrier string Filter by reporting carrier Yes Yes
opcarrier string Filter by operating carrier Yes Yes
mktcarrier string Filter by marketing carrier Yes
origin string Filter by origin airport Yes Yes
destination string Filter by destination airport Yes Yes
fare_class string Filter by fare class Yes
coupon_type string Filter by coupon type Yes
roundtrip bool Roundtrip flag Yes Yes
online bool Online flag Yes
bulk_fare bool Bulk fare flag Yes
gateway bool Gateway flag Yes
dollar_cred bool Dollar credibility flag Yes
nonstop bool Nonstop flag Yes Yes
distance_group string Distance group Yes
tkcarrier_change bool Ticketing carrier changed Yes
opcarrier_change bool Operating carrier changed Yes Yes
mktcarrier_change bool Marketing carrier changed Yes
itin_geo_type string Itinerary geography type Yes
mkt_geo_type string Market geography type Yes
coupon_geo_type string Coupon geography type Yes
purwingrp string Purchase window group Yes
origin_hub string Origin airport hub size
  • L (Large Hub)
  • M (Medium Hub)
  • S (Small Hub)
  • N (Non-Hub)
Yes
destination_hub string Destination airport hub size
  • L (Large Hub)
  • M (Medium Hub)
  • S (Small Hub)
  • N (Non-Hub)
Yes
origin_role string Origin airport FAA role
  • P (Primary Commercial Service)
  • R (Reliever)
  • G (General Aviation)
Yes
destination_role string Destination airport FAA role
  • P (Primary Commercial Service)
  • R (Reliever)
  • G (General Aviation)
Yes
sort_by string Sort column, default first metric (single-period only) Yes Yes
sort_order string asc or desc, default desc (single-period only) Yes Yes
limit int Max rows (single-period: default 50, max 100; multi-period: per period, default 25, max 50) Yes Yes
limit_results bool Limit to most recent data (DB1B: 4 quarters; DB1C: 12 months) Yes Yes
normalize_to_db1b bool Normalize to DB1B scale, default falseDB1C only Yes

Breakdown Dimensions

Pass one or more of the following as by= (comma-separated). All dimensions support both single-period and multi-period queries. A dimension cannot be both a by dimension and a filter in the same query.

Dimension Description DB1B DB1C
tkcarrier Ticketing carrier Yes
rpcarrier Reporting carrier Yes Yes
opcarrier Operating carrier Yes Yes
mktcarrier Marketing carrier Yes
origin Origin airport Yes Yes
destination Destination airport Yes Yes
fare_class Fare class Yes
coupon_type Coupon type Yes
roundtrip Roundtrip flag Yes Yes
online Online flag Yes
bulk_fare Bulk fare flag Yes
gateway Gateway flag Yes
dollar_cred Dollar credibility flag Yes
nonstop Nonstop flag Yes Yes
distance_group Distance band Yes
tkcarrier_change Ticketing carrier changed Yes
opcarrier_change Operating carrier changed Yes Yes
mktcarrier_change Marketing carrier changed Yes
itin_geo_type Itinerary geography type Yes
mkt_geo_type Market geography type Yes
coupon_geo_type Coupon geography type Yes
purwingrp Purchase window group Yes

Example

Passenger count by origin for flights arriving at SEA in Q3 2024:

  GET /tickets/coupons/breakdown?year=2024&quarter=3&by=origin&destination=SEA&metrics=passengers
  
  {
  "meta": {
    "year": 2024,
    "quarter": 3,
    "breakdown_by": ["origin"],
    "metrics": ["passengers"],
    "count": 116,
    "sort_by": "passengers",
    "sort_order": "desc",
    "destination": {
      "iata_code": "SEA",
      "name": "Seattle/Tacoma International",
      "city": "Seattle, WA"
    }
  },
  "results": [
    {
      "origin": {
        "iata_code": "ANC",
        "name": "Ted Stevens Anchorage International",
        "city": "Anchorage, AK"
      },
      "passengers": {
        "value": 31502,
        "share": 5.16
      }
    },
    {
      "origin": {
        "iata_code": "DEN",
        "name": "Denver International",
        "city": "Denver, CO"
      },
      "passengers": {
        "value": 28012,
        "share": 4.59
      }
    },
    . . .
  ]
}
  

Metrics

All base metrics (indicated in bold) will be returned by default.

Metric Description DB1B DB1C
passengers Number of passengers Yes Yes
revenue Revenue (dollars) Yes Yes
total_distance Total segment distance Yes Yes
count Record count Yes
base_cost Revenue minus taxes Yes
tax_cost Tax amount Yes
avg_passengers_per_record Passengers per coupon record Yes
avg_fare Average fare per passenger Yes Yes
avg_distance Average distance per passenger Yes Yes
avg_base_cost Average base cost per passenger Yes
avg_tax Average tax per passenger Yes
yield Revenue per mile Yes

Constraints

  • A dimension cannot be both a breakdown (by) and a filter in the same query.
  • DB1B uses quarters only; DB1C supports months and quarters.
  • Specific period mode uses quarters or months with start_year/end_year and cannot be combined with single-period or range parameters.
  • Route and breakdown ranges are limited to 20 quarters (DB1B/DB1C) or 60 months (DB1C).
  • limit defaults and caps: single-period default 50 (max 100), multi-period default 25 (max 50).
  • limit_results=true restricts to the most recent 4 quarters (DB1B) or 12 months (DB1C).
  • For DB1C route endpoints, only one of opcarrier_change, mktcarrier_change, nonstop, roundtrip, or purwingrp can be provided per request.
  • circuity requires both origin and destination to be pinned (as filters or breakdown dimensions).