Open-source Python tooling for collecting, normalizing, monitoring, and self-hosting Korean NOTAM data.
Korea does not currently offer an easy public developer-facing NOTAM API. This repository packages the reusable core that downstream teams need: collection, normalization, local persistence, change detection, and a small FastAPI reference API.
- direct collection from Korea AIM NOTAM endpoints
- optional Selenium fallback for brittle upstream flows
- normalized JSON records for downstream automation
- SQLite persistence and change detection workflows
- self-hostable FastAPI reference API
- sample fixture and tests for local integration work
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txtpython3 -m uvicorn reference_api.main:app --reloadOpen:
http://127.0.0.1:8000/docshttp://127.0.0.1:8000/api/v1/notams
curl "http://127.0.0.1:8000/api/v1/notams/RKSI"Example response:
{
"location": "RKSI",
"count": 1,
"backend": "sample",
"data": [
{
"notam_no": "A0001/26",
"location": "RKSI",
"qcode": "QMRLC",
"is_active": true,
"full_text": "RWY inspection in progress"
}
]
}Korean NOTAM access is still awkward for independent developers, researchers, and small product teams. This project exists to reduce repeated scraping, parsing, and normalization work so other teams can build aviation workflows faster on top of reusable infrastructure.
- aviation research and education projects
- flight-planning and dispatch prototypes
- drone and UAM briefing tools
- airport operations dashboards
- teams that need normalized Korean aviation notices in a self-hosted stack
notam_crawler_api.py: direct collection pathnotam_hybrid_crawler.py: direct collection plus Selenium fallbacknotam_monitor.py: monitoring workflow for repeated checksnotam_change_detector.py: change detection helpersreference_api/main.py: FastAPI reference implementationexamples/sample_notams.json: local fixture for tests and demos
This is active infrastructure software, not a polished SDK.
- the direct crawler is the main path
- the Selenium crawler is a fallback path
- the reference API is intended as a practical integration surface
- hosted or commercial delivery can sit on top of the same open-source core
Run the direct crawler:
python3 notam_crawler_api.pyRun the hybrid crawler:
python3 -m pip install -r requirements-selenium.txt
python3 notam_hybrid_crawler.pyRun the monitor workflow:
python3 notam_monitor.pyRun tests:
python3 -m pip install -r requirements-dev.txt
python3 -m pytest- API Reference
- Architecture
- Ecosystem Impact
- Roadmap
- Source And Safety Notes
- Use Cases
- Contributing
- Code of Conduct
- Security
A separate hosted landing page exists here:
The hosted direction does not replace the open-source repository. The OSS value is in the collector, parser, schema, and self-hostable building blocks.
- this is not an official government API
- upstream source systems and response formats can change
- fetched NOTAM data may still be subject to the original source system's terms
- do not use this repository as the sole source for operational flight briefing or safety-critical decision making
Contributions are welcome, especially around:
- parser accuracy
- API contract design
- documentation
- better tests
- Korean aviation data validation
Please read Contributing, Code of Conduct, and Source And Safety Notes before opening issues or pull requests.
MIT. See LICENSE.