Ourairports Data Scraper avatar

Ourairports Data Scraper

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Ourairports Data Scraper

Ourairports Data Scraper

OurAirports Data Scraper extracts global aviation metadata (ICAO/IATA codes, coordinates, runways, frequencies) from OurAirports into CSV/JSON formats for GIS and flight tracking.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

ZeroBreak

ZeroBreak

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

OurAirports Data Scraper: Airports and Runways CSV Export

OurAirports Data Scraper

Collect publicly available airport and runway data from OurAirports and save filtered records to an Apify dataset. Export results as JSON, CSV, or Excel for aviation research, geographic analysis, travel planning, and reference-data matching.

The actor supports two datasets: airports and runways. It downloads the selected CSV file once per run, applies the relevant filters, removes duplicate IDs, and stops when the configured row limit is reached.

Use Cases

  • Airport directories: Collect airport identifiers, IATA and ICAO codes, coordinates, and airport types.
  • Runway datasets: Organize runway length, width, surface, and runway-end identifiers.
  • Travel research: Combine airport names with municipalities, elevation, and scheduled-service information.
  • Scheduled data refreshes: Rerun the same country and airport-type filters to compare changes over time.
  • Reference-data matching: Join runway records to airport records using airport_ident and ident.

What Data Does the OurAirports Scraper Extract?

The actor supports two collection modes:

  • Airports: Produces one row per matching airport after applying the country and airport-type filters.
  • Runways: Produces one row per runway, including dimensions, surface, lighting, closure status, and runway-end information.

Country and airport-type filters apply only to airport records because the runway dataset does not contain those fields. You can join the two datasets afterward to associate runways with airports.

The source column type is saved as airportType to avoid conflicts with the dataset field name.

Input Parameters

ParameterTypeDefaultDescription
datasetstringairportsDataset to collect: airports or runways. Unsupported values produce an error row.
countrystringUSISO country code matched against iso_country. An empty value includes all countries. Ignored in runway mode.
typestringlarge_airportAirport type, such as large_airport or heliport. An empty value includes all airport types. Ignored in runway mode.
maxItemsinteger100Maximum matching rows to save. Hard maximum: 1,000.
timeoutSecsinteger300Maximum run duration in seconds.
requestTimeoutSecsinteger30Timeout for an individual download attempt before retry handling.

Example Input

Collect large airports in the United States:

{
"dataset": "airports",
"country": "US",
"type": "large_airport",
"maxItems": 100,
"timeoutSecs": 300,
"requestTimeoutSecs": 30
}

To collect runway records instead, change dataset to runways. Country and airport-type filters will not apply in that mode.

Output Fields

FieldTypeDescription
idstringSource record identifier.
identstringAirport identifier.
airportTypestringAirport category from the source type column.
namestringAirport name with HTML tags removed.
latitude_degstringLatitude in degrees.
longitude_degstringLongitude in degrees.
elevation_ftstringElevation in feet.
continentstringContinent code.
iso_countrystringISO country code.
iso_regionstringISO region code.
municipalitystringAssociated city or town.
scheduled_servicestringScheduled-service indicator.
iata_codestringIATA airport code.
icao_codestringICAO airport code.
gps_codestringGPS identifier.
local_codestringLocal airport code.
home_linkstringAirport homepage reference, when available.
wikipedia_linkstringWikipedia reference, when available.
keywordsstringAdditional source keywords.
airport_identstringAssociated airport identifier on a runway record.
airport_refstringAirport reference associated with a runway.
length_ftstringRunway length in feet.
width_ftstringRunway width in feet.
surfacestringRunway surface type.
lightedstringIndicates whether the runway is lighted.
closedstringRunway closure indicator.
Runway-end fieldsstringLow-end and high-end identifiers, coordinates, elevations, headings, and displaced thresholds.
sourceUrlstringSource CSV reference for the download.
scrapedAtstringUTC timestamp when the row was saved.
errorstringError information, present on error rows.
inputstringJSON snapshot of the input associated with an error row.

Example Airport Record

{
"id": "323361",
"ident": "00AA",
"airportType": "small_airport",
"name": "Aero B Ranch Airport",
"latitude_deg": "38.704022",
"longitude_deg": "-101.473911",
"elevation_ft": "3435",
"continent": "NA",
"iso_country": "US",
"iso_region": "US-KS",
"municipality": "Leoti",
"scheduled_service": "no",
"icao_code": "",
"iata_code": "",
"gps_code": "00AA",
"local_code": "00AA",
"home_link": "",
"wikipedia_link": "",
"keywords": "",
"sourceUrl": "AIRPORTS_CSV_SOURCE",
"scrapedAt": "2026-10-12T00:00:00+00:00"
}

Limits and Error Handling

Row Limits and Processing

The actor clamps maxItems to a range of 1–1,000. It downloads the selected CSV file once per run, filters the records locally, skips duplicate id values, and saves rows until the configured cap or timeout is reached.

There is no page-based pagination. The source files are large, so each run processes the selected file after downloading it.

Download Retries

Failed downloads are retried up to three additional times for HTTP 429 responses, HTTP 5xx responses, and timeouts. The retry delays are 2, 4, and 8 seconds unless a Retry-After value specifies a different wait.

If the response is not a valid CSV file, including an HTML page returned with a successful HTTP status, the actor saves an error row.

Empty Results and Invalid Inputs

  • Unsupported dataset names produce an error row without attempting a download.
  • If the selected filters match no records, the actor saves an error row.
  • If a download fails, error information is included in the dataset.
  • Country and airport-type filters are ignored in runway mode.

Data Source and Licensing

The actor uses the public OurAirports airport and runway datasets. Review the source's licensing and attribution requirements before redistributing collected records.

Each output row includes sourceUrl to identify the relevant source file.

FAQ

Does the OurAirports scraper need an API key?

No. The actor downloads publicly available CSV files. No login or API key is required.

Why is the airport type field called airportType?

The source CSV uses type for airport classification. The actor renames that field to airportType in the output.

Can I filter runways by country?

Not directly. The runway dataset does not include a country column. Collect airport records for your desired country, then join the datasets using ident on airport records and airport_ident on runway records.

What happens if I enter an unsupported dataset name?

The actor saves an error row and finishes without attempting to download an unsupported file.

Can I export the results to CSV or JSON?

Yes. Use the Apify dataset export options to download records as JSON, CSV, or Excel.

How does the actor handle failed downloads?

It retries eligible failures, including rate limits, server errors, and timeouts. If the download still fails or the response is not a valid CSV, an error row is saved.

Changelog

  • 1.0: Added airport and runway CSV collection, local airport filtering, duplicate-ID handling, download retries, and capped dataset exports.

Trademark Notice

OurAirports and its related names, logos, and trademarks belong to their respective owners. They are used in this documentation solely to identify the source of the data and do not imply affiliation, sponsorship, endorsement, or partnership.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, sponsored by, or otherwise officially associated with OurAirports or its owners. Users are responsible for complying with applicable source terms, licensing, attribution, and data-use requirements.

Collecting information that is already public is generally legal. Scraping is not the same thing as hacking, and there is no single law that bans it. The limits are the usual ones: do not break into accounts, do not take private or confidential data, and be careful with personal data and copyrighted works. A site's terms can also restrict how you access it. Facts such as a public name, price, or rating are not the same thing as republishing someone's article or photo.

This actor collects information from public pages. It does not log in and it does not bypass access controls.

For a longer explanation, see Apify's article Is web scraping legal?.