Aircraft For Sale Scraper - Planes, Jets & Helicopters Leads avatar

Aircraft For Sale Scraper - Planes, Jets & Helicopters Leads

Pricing

from $17.00 / 1,000 results

Go to Apify Store
Aircraft For Sale Scraper - Planes, Jets & Helicopters Leads

Aircraft For Sale Scraper - Planes, Jets & Helicopters Leads

Scrape aircraft for sale listings with make, model, year, price, total time hours, category, tail number, location and seller or broker contact details. Search by make, model or type. Export to JSON, CSV or Excel.

Pricing

from $17.00 / 1,000 results

Rating

5.0

(1)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

9 days ago

Last modified

Share

Aircraft For Sale Scraper - Planes, Jets & Helicopters Leads

Aircraft For Sale Scraper - Planes, Jets & Helicopters Leads

Here is one real result, with every field the actor returns:

{
"adId": "2065662",
"title": "1979 CESSNA C172N",
"make": "Cessna",
"model": "C172N",
"year": 1979,
"category": "Cessna",
"priceAmount": 140000,
"priceCurrency": "USD",
"priceLabel": "$140,000",
"totalTimeHours": 4196,
"tailNumber": null,
"status": "AVAILABLE FOR SALE",
"description": "1979 Cessna C172N: $140,000.00 OBO TTAF 4196.6, 0320 H2AD-76 TTSMOH 758 all new accessories, mounts, and fuel, oil lines. Prop 758 since overhaul. Garmin 530W overhauled by Garmin, Garmin GMA 345 audio panel, Garmin 327 transponder, MX 385 overhauled for com 2, 106a CDI, GDL 88 for ADSB, AV 30. Located in Central Missouri next to KMYJ on private strip. Phil 407 402 0768",
"sellerName": "Richard Nation",
"sellerTitle": null,
"dealerName": null,
"sellerType": null,
"sellerPhone": "407 402 0768",
"sellerEmail": null,
"fullDescription": "1979 Cessna C172N: $140,000.00 OBO TTAF 4196.6, 0320 H2AD-76 TTSMOH 758 all new accessories, mounts, and fuel, oil lines. Prop 758 since overhaul. Garmin 530W overhauled by Garmin, Garmin GMA 345 audio panel, Garmin 327 transponder, MX 385 overhauled for com 2, 106a CDI, GDL 88 for ADSB, AV 30. Located in Central Missouri next to KMYJ on private strip.",
"imageUrls": [
"https://barnstormers.s3.amazonaws.com/media/listing_images/thumbnail/thumbnail_image_2065662_1_1786321324.jpeg",
"https://barnstormers.s3.amazonaws.com/media/listing_images/thumbnail/thumbnail_image_2065662_2_1786321325.jpeg"
],
"city": "Wellsville",
"state": "MO",
"zip": "63384",
"country": "United States",
"listingUrl": "https://www.barnstormers.com/classified-2065662-1979-Cessna-C172N.html",
"imageUrl": null,
"sellerLogoUrl": null,
"contactUrl": "https://www.barnstormers.com/contact_seller.php?id=2065662",
"sellerId": "237354",
"searchQuery": "Cessna 172",
"source": "barnstormers",
"aiListingSummary": null,
"aiSpecs": null,
"observedAt": "2026-08-10T14:04:50.755Z",
"error": null
}

The most complete aircraft-for-sale scraper available. It returns every field the listing exposes (make, model, year, price, total time, tail number, seller and location), opens each ad for the full description, the seller's phone when published and the full photo set, and offers optional AI add-ons for a buyer-facing summary and structured spec extraction.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor runs one or more aircraft searches by make, model or type (for example Cessna 172, Piper, Cirrus SR22, Helicopter, Jet, Warbird), matches each query to its category, and writes one record per aircraft for sale to the run's dataset. Each record carries the ad id, title, make, model, year, category, price, total time hours, tail number, status, seller name and type, location (city, state, zip, country) and the listing and contact URLs.

When fetchDetails is on (the default), each listing is opened for the complete description, the seller's phone number when published in the ad, and the full photo set. Two optional AI add-ons (paid Apify plans only) add a buyer-facing summary and structured spec extraction (make, model, year, engine, total/engine hours, avionics, registration). An optional contact-enrichment add-on can look up a public business email and contact name for results without an email. Missing values are returned as null, never invented.

Quickstart

Open the actor, paste this into the input, and press Run. It returns up to 10 aircraft across two searches with full details.

{
"searchQueries": ["Cessna 172", "Piper"],
"maxAircraft": 10,
"fetchDetails": true
}

Add any make, model or type to searchQueries. Every input field is optional; with an empty input the actor runs the prefilled searches.

Input reference

FieldTypeRequiredDefaultDescription
searchQueriesstring[]no["Cessna 172", "Piper"]One or more aircraft searches by make, model or type, for example Cessna 172, Piper, Cirrus SR22, Helicopter, Jet, Warbird.
maxAircraftintegerno10Maximum number of aircraft listings to collect across all searches.
fetchDetailsbooleannotrueWhen on, opens each listing for the full description, seller phone and all photos. Billed per listing enriched (details event).
enrichContactsbooleannofalsePaid contact add-on. For results without an email, attempt to find a public business email and contact name. Billed per attempt, plus an extra charge only when an email is found.
enrichContactsMaxintegerno50Cap how many results the contact add-on attempts, to control cost. Free Apify accounts are capped at 3.
withAiListingSummarybooleannofalsePaid AI add-on. Writes a concise buyer-facing summary. Charged per listing only when a summary is produced.
withAiSpecExtractbooleannofalsePaid AI add-on. Extracts structured make, model, year, engine, hours, avionics and registration. Charged per listing only when specs are produced.

Output reference

One dataset item per aircraft. Types: string, number, string[], object, or null when the source value is absent.

FieldTypeDescription
adIdstringListing ad id.
titlestringListing title.
makestringAircraft make, or null.
modelstringAircraft model, or null.
yearnumberModel year, or null.
categorystringSearch category the query matched.
priceAmountnumberNumeric price, or null.
priceCurrencystringCurrency code, or null.
priceLabelstringHuman-readable price label.
totalTimeHoursnumberTotal airframe time in hours, or null.
tailNumberstringRegistration or tail number, or null.
statusstringSale status, for example AVAILABLE FOR SALE.
descriptionstringListing description.
sellerNamestringSeller name, or null.
sellerTitlestringSeller title, or null.
dealerNamestringDealer name if a dealer, or null.
sellerTypestringSeller type (for example Owner, Dealer), or null.
sellerPhonestringSeller phone when published (with fetchDetails), or null.
sellerEmailstringSeller email when found, or null.
fullDescriptionstringComplete description (with fetchDetails), or null.
imageUrlsstring[]Full photo set (with fetchDetails), or null.
citystringSeller city.
statestringSeller state.
zipstringSeller postal code.
countrystringSeller country.
listingUrlstringDirect link to the listing.
imageUrlstringPrimary image URL, or null.
sellerLogoUrlstringDealer logo URL, or null.
contactUrlstringContact-seller URL.
sellerIdstringSeller id.
searchQuerystringThe query that returned this aircraft.
sourcestringAlways barnstormers.
aiListingSummarystringAI buyer-facing summary when the add-on is enabled, else null.
aiSpecsobjectAI structured specs when the add-on is enabled, else null.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringPresent only on a failed run; a single item with a populated error field is written instead.

Example output record

Real record from a live run with AI spec extraction enabled (input {"searchQueries": ["Piper Cherokee"], "withAiSpecExtract": true}):

{
"adId": "2054867",
"title": "1969 PIPER CHEROKEE 180D",
"make": "Piper",
"model": "CHEROKEE 180D",
"year": 1969,
"category": "Piper",
"priceAmount": 99500,
"priceCurrency": "USD",
"priceLabel": "$99,500",
"totalTimeHours": 3576,
"tailNumber": "N7940N",
"status": "FOR SALE BY OWNER",
"description": "Own a classic Cherokee 180D. N7940N combines dependable flying qualities with cross-country capability. Just 3,576 hours TT, 1,681 SMOH, and an impressive 1,017-lb useful load. Garmin GNS 430 GPS, S-TEC 30 two-axis autopilot with altitude hold and GPSS, JPI engine monitor, and ADS-B. Hangared, complete logs, no known damage history. Based at KTOC.",
"sellerName": "Steve Pfeiffer",
"sellerType": "Owner",
"sellerPhone": null,
"sellerEmail": null,
"city": "Lavonia",
"state": "GA",
"zip": "30553",
"country": "United States",
"listingUrl": "https://www.barnstormers.com/classified-2054867-1969-Piper-Cherokee-180D.html",
"contactUrl": "https://www.barnstormers.com/contact_seller.php?id=2054867",
"sellerId": "42468",
"searchQuery": "Piper Cherokee",
"source": "barnstormers",
"aiListingSummary": null,
"aiSpecs": {
"make": "Piper",
"model": "CHEROKEE 180D",
"year": 1969,
"engine": null,
"totalTimeHours": 3576,
"engineTimeHours": 1681,
"avionics": ["Garmin GNS 430 GPS", "S-TEC 30 two-axis autopilot with altitude hold and GPSS", "JPI engine monitor", "ADS-B"],
"registration": "N7940N"
},
"observedAt": "2026-08-14T06:22:56.656Z"
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~aircraft-for-sale-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQueries":["Cessna 172"],"maxAircraft":25,"fetchDetails":true}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~aircraft-for-sale-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQueries":["Cirrus SR22","Helicopter"],"maxAircraft":100}'

Apify CLI:

apify call scrapers_lat/aircraft-for-sale-scraper \
--input '{"searchQueries":["Piper"],"fetchDetails":true}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per aircraft record returned (result event). See the pricing tab for the current per-result price.
  • Add-ons billed separately. details is charged per listing enriched; ai_listing_summary and ai_spec_extract are each charged per listing only when the model returns usable output (paid Apify plans only). Contact enrichment is billed per attempt plus an extra charge only when an email is found.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxAircraft.

FAQ and troubleshooting

A run returned 0 records. Why? The search matched no aircraft for sale. Try a broader make or type. Zero-result runs are not charged.

Do I get the seller's phone number? When fetchDetails is on and the seller published a phone in the ad, sellerPhone is populated. Not every ad includes one.

How do I get structured specs like engine hours and avionics? Enable withAiSpecExtract on a paid plan. The aiSpecs object then holds make, model, year, engine, total/engine hours, avionics and registration.

Why is sellerEmail null? Most ads route contact through a form (contactUrl) rather than a public email. Enable the contact-enrichment add-on to attempt to find a public business email.

Is this an official Barnstormers tool? No. This actor is independent and has no affiliation with Barnstormers. It reads only data that is publicly available on the site.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with Barnstormers. Accesses only publicly available listing data.