airport-reference-data
Skill0 starsChanged 36 days agoMITView on GitHub
Looks up airport reference data (name, IATA and ICAO codes, coordinates, elevation, city, country, type, runways) from the OurAirports open data files on GitHub, with no login, no API key and no account. Use when the user asks which airport has an IATA or ICAO code, where an airport is, which airports are near a point, how long its runways are, or wants a short list of airports in one country. Not for live flight data, not for navigation or flight planning, and not for lists of thousands of airports with runways.
In this repository36 other files it gives its agents.
- sec-13f-holdingsSkill
- ai-web-scraperSkill
- background-remover-localSkill
- bulk-image-downloaderSkill
- city-building-permitsSkill
- cve-kev-epssSkill
- doaj-open-access-apiSkill
- document-to-markdownSkill
- eu-funding-callsSkill
- ecb-exchange-ratesSkill
- federal-register-rulesSkill
- french-company-searchSkill
- gleif-lei-change-watchSkill
- image-metadata-exifSkill
- lighthouse-auditSkill
- nfl-games-lookupSkill
- openfda-drug-recallsSkill
- football-fixtures-lookupSkill
- oracle-recruiting-jobsSkill
- pdf-text-extractorSkill
- arxiv-preprint-metadataSkill
- public-holidays-lookupSkill
- pubmed-paper-metadataSkill
- raised-and-hiring-signalsSkill
- recruitee-jobsSkill
- remote-job-feedsSkill
- sec-8k-eventsSkill
- sec-company-financialsSkill
- sec-edgar-filings-lookupSkill
- seo-audit-toolSkill
- teamtailor-jobsSkill
- treasury-fiscal-dataSkill
- uk-companies-house-lookupSkill
- uk-visa-sponsor-registerSkill
- us-state-business-entity-searchSkill
- video-scene-keyframesSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 70
If nothing matches, say "not found in the OurAirports file".
- Very specific: line 76
Never use airport-comments.csv.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Airport reference data
Reads the open data files that OurAirports publishes on GitHub as CSV. It needs no credentials. OurAirports states on https://ourairports.com/data/ that "All data is released to the Public Domain, and comes with no guarantee of accuracy or fitness for use." Credit is welcome, so name the source in your answer.
Author: Don Mangu (GitHub). This skill needs no token and reads only public CSV files. For long lists of codes, filters by country or region, nearby search and runways in one step, the author also runs a paid hosted version on the Apify Store: Airport Data API: IATA, ICAO, Runways, Coordinates (disclosure: the author owns it). You never need it for the steps below. This is an unofficial tool and is not affiliated with OurAirports.
Example prompts
- "Which airport is TLV, and where is it?"
- "What are the IATA codes and cities of LLHA, EGLL and KJFK?"
- "List the large airports in Cyprus."
- "Which large or medium airports are within 100 km of Tel Aviv?"
Out of scope: "Is my flight on time?" The files hold fixed reference data, not flights. Do not use the answer for navigation, flight planning or any safety decision.
Step 1: download once
Download airports.csv once (about 12.7 MB, one row per airport) and search the copy. Do not download it again for every code. runways.csv (about 4 MB) is joined on airport_ref = id. countries.csv and regions.csv give names for iso_country and iso_region.
import csv, io, urllib.request
BASE = "https://raw.githubusercontent.com/davidmegginson/ourairports-data/main/"
def load(name):
req = urllib.request.Request(BASE + name, headers={"User-Agent": "airport-data-skill"})
return list(csv.DictReader(io.StringIO(urllib.request.urlopen(req).read().decode("utf-8-sig"))))
airports = load("airports.csv")
print(len(airports), "airports")
def lookup(code):
code = code.strip().upper()
hits = [a for a in airports if code in (a["iata_code"].upper(), a["icao_code"].upper())]
return hits or [a for a in airports if a["ident"].upper() == code]
for code in ["TLV", "NCL", "ZZZ"]:
found = lookup(code)
if not found:
print(code, "-> not found")
for a in found:
print(code, "->", a["ident"], "|", a["iata_code"] or "-", "|", a["type"], "|", a["name"], "|", a["municipality"], "|", a["iso_country"], "|", a["latitude_deg"], a["longitude_deg"])Real run on 7 October 2026:
86215 airports
TLV -> LLBG | TLV | large_airport | Ben Gurion International Airport | Tel Aviv | IL | 32.011398 34.8867
NCL -> EGNT | NCL | large_airport | Newcastle International Airport | Newcastle upon Tyne, Tyne and Wear | GB | 55.037958 -1.689577
ZZZ -> not foundStep 2: answer from the fields
- Match the IATA or ICAO code first, and the
identcolumn only when nothing matched. In this file 365 IATA codes are also theidentof a different airport. For NCL, matching all three columns at once returns the Newcastle airport and a US heliport with the ident NCL. typeis large_airport, medium_airport, small_airport, heliport, seaplane_base, balloonport or closed. The file has 13,562 closed airports, so leaveclosedout of lists unless the user asks for them.- Many airports have no IATA code (9,051 of 86,215 have one) and
elevation_ftis empty for 14,969. Say "no value in the file", do not guess. - For "near a point", compute the great-circle distance (haversine, earth radius 6371 km) from each row's
latitude_degandlongitude_deg, keep rows inside the radius and sort by distance. - For runways, keep rows of
runways.csvwhereairport_refequals the airportid. Ignore rows withclosed= 1 when you report the longest runway. - If nothing matches, say "not found in the OurAirports file". Do not invent an airport.
Rules
- Public files only. No login, no cookies, no proxies, no attempts around blocks.
- One download per file per question, no repeated downloads in a loop. Stop on 403, 429 or repeated errors and tell the user.
- Never use
airport-comments.csv. It holds member comments that can contain personal data. - Credit the source when you pass results on: "Data: OurAirports (public domain)".
- Say what you could not check: the data is volunteer maintained and can be wrong or old.
Limits
The files have no flight schedules, no live status and no terminal or gate data. Coordinates and runway ends are as published. For long lists, a spreadsheet or the hosted version is quicker than asking one question at a time.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

