---
name: ourairports-open-data-ingestion
description: "How to get OurAirports open airport data data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load the worldwide OurAirports CSV into Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/ourairports-open-data
Provider: https://ourairports.com/data/
Checked against the provider's documentation: 2026-11-01

## Access
- No account or key. The worldwide airports CSV is a public download hosted from the provider's GitHub Pages repository.
- Related runway, frequency, navaid, country and region CSV files use documented join keys.

## Request
```bash
curl -O 'https://davidmegginson.github.io/ourairports-data/airports.csv'
```

## Format
UTF-8 CSV with airport ID and ident, type, name, latitude, longitude, elevation, continent, country and region codes, municipality, scheduled-service flag, airport codes and reference links.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""Worldwide OurAirports airport dump -> pandas -> Parquet."""
import io
import requests
import pandas as pd

URL = "https://davidmegginson.github.io/ourairports-data/airports.csv"
r = requests.get(URL, timeout=120)
r.raise_for_status()
df = pd.read_csv(io.BytesIO(r.content), low_memory=False)
df.to_parquet("ourairports_airports.parquet", index=False)
print(len(df), "airports", df["iso_country"].nunique(), "country codes",
      int((df["scheduled_service"] == "yes").sum()), "with scheduled service")
```
Run by us on 2026-11-01 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 86329 airports 246 country codes 4338 with scheduled service

## Limits
- Download rate limit: Not stated.
- The checked airports.csv file was about 12.8 MB.
- The download page states that files update nightly.

## Quirks
- Use ident as the external join key; id is the provider's persistent internal integer key.
- iso_region joins to regions.csv, while iso_country joins to countries.csv.
- Facility type and scheduled_service describe the directory's current classification, not live operating status.
- CSV text is UTF-8 and includes non-Latin scripts.

## Terms and attribution
- OurAirports releases all downloadable data to the public domain.
- Credit is appreciated but not required.
- The provider gives no warranty of accuracy or fitness for use.
- Terms page: https://ourairports.com/data/

## Sources
- https://ourairports.com/data/: "All data is released to the Public Domain"
- https://ourairports.com/data/: "we update every night."
- https://ourairports.com/help/data-dictionary.html: "UTF-8 character encoding."

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
