FAA Service Difficulty Report Scraper avatar

FAA Service Difficulty Report Scraper

Pricing

from $1.60 / 1,000 record scrapeds

Go to Apify Store
FAA Service Difficulty Report Scraper

FAA Service Difficulty Report Scraper

Scrapes the FAA Service Difficulty Reporting System (SDRS) — the public airworthiness-defect database. Returns aircraft make/model/serial and ATA (JASC) code; filter by date range or aircraft type. Optional best-effort detail enrichment adds part name/number/condition, engine make/model, remarks.

Pricing

from $1.60 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Share

Scrapes the FAA Service Difficulty Reporting System (SDRS) — the public airworthiness-defect database maintained by the Federal Aviation Administration. Returns structured SDR records including aircraft make/model/serial, operator designator, difficulty date, and ATA (JASC) code, filterable by date range and aircraft type.

What it scrapes

The FAA SDRS is the canonical public record of aviation service difficulties — reports filed by air carriers, repair stations, and manufacturers when they encounter mechanical issues with aircraft or components. Over 1 million records covering all commercial and general aviation operations.

Populated fields per record:

  • Unique control number (SDR submission ID)
  • Difficulty date
  • Operator designator (4-character ICAO carrier code)
  • Aircraft registration (N-number)
  • Aircraft make and model
  • JASC/ATA system code (e.g., 5310 = fuselage)

Optional, best-effort detail-page fields (off by default — enable with fetchDetails, one extra request per record, billed as a premium record): submitter type, engine make/model, part name/number/condition, nature of condition, precautionary procedure, remarks, and stage of operation. Left as empty strings when fetchDetails is off — and the target's own protection on this specific view means some records may still come back empty even with it on.

Use cases

  • Airworthiness analysis: Track failure patterns by aircraft type, component, or date range
  • MRO reliability research: Identify high-incidence parts across operator fleets
  • Aviation litigation: Document history of known issues on specific aircraft
  • Insurance underwriting: Assess service difficulty trends for specific make/model combinations
  • Regulatory research: Monitor defect reporting trends across the industry

Input

FieldTypeDefaultDescription
dateFromstring30 days agoStart date for difficulty date range (MM/DD/YYYY)
dateTostringtodayEnd date for difficulty date range (MM/DD/YYYY)
aircraftMakestring—Filter by aircraft manufacturer (e.g., BOEING, CESSNA)
aircraftModelstring—Filter by aircraft model (e.g., 737, 172)
maxItemsinteger10Maximum records to return
fetchDetailsbooleanfalseFetch each record's detail page for the fields listed above

Note: The SDRS server caps results at 1,500 records per query. For large date ranges, narrow with aircraft make/model filters.

Note: fetchDetails adds one extra request per record and increases run time — leave it off for the fast listing-only scrape.

Output

{
"control_number": "IPXA2026051640926",
"operator_designator": "IPXA",
"difficulty_date": "5/12/2026",
"aircraft_serial": "621UP",
"aircraft_make": "BOEING",
"aircraft_model": "7478F",
"ata_code": "5310",
"submitter_type": "",
"engine_make": "",
"engine_model": "",
"part_name": "",
"part_number": "",
"part_condition": "",
"nature_of_condition": "",
"precautionary_procedure": "",
"remarks": "",
"stage_of_operation": "",
"detail_url": "https://sdrs.faa.gov/Query.aspx?ControlNumber=IPXA2026051640926",
"scraped_at": "2026-06-11T18:06:07.005Z"
}

With fetchDetails: true, the ten fields above are populated from each record's detail page instead of left as empty strings (subject to the notes above).

Technical notes

The SDRS uses ASP.NET WebForms with per-session __VIEWSTATE tokens. The actor:

  1. GETs the Query.aspx form to establish a session and capture viewstate tokens
  2. POSTs search criteria with the viewstate tokens
  3. Parses the results DataGrid (8 columns: control#, operator, date, N-number, make, model, ATA code)
  4. Paginates via __EVENTTARGET postbacks if the result set requires multiple pages
  5. When fetchDetails is on, fetches each record's detail panel via the same postback mechanism (the row's own __EVENTTARGET) — a plain GET on the record's detail_url does not render the detail panel

The FAA publishes this data openly.