faa-drs
Python SDK for the FAA Dynamic Regulatory System (DRS) API.
Documentation: https://cldixon.github.io/faa-drs/
Install
uv add faa-drs
Set the API key
Get a key from the DRS API page in DRS Help & Training. Then set the key in the environment:
export DRS_API_KEY="your-key"
Use
from faa_drs import DRSClient, DocType
with DRSClient() as drs:
for doc in drs.iter_documents(DocType.AC, filters={"drs:status": "Current"}):
print(doc.number, doc.title)
drs.download_to(doc, "downloads/")
The client:
- Gets all pages for you. The API returns a maximum of 750 documents per page.
- Validates filters against the document type before it sends a request.
- Retries connection errors, timeouts, HTTP 429 and HTTP 5xx.
- Returns typed models.
doc.contentcontains the full text when the API supplies it.
An async client, AsyncDRSClient, has the same methods.
Develop
uv sync --all-groups
uv run ruff check . && uv run ruff format --check .
uv run ty check
uv run pytest
uv run pytest -m live # Calls the real API. Needs DRS_API_KEY.
uv run zensical serve # Docs at http://localhost:8000
License
MIT. This project is not affiliated with the FAA.
Metadata
Release files for faa-drs 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| faa_drs-0.1.0.tar.gz | 30.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| faa_drs-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.0 kB
Release files / faa_drs-0.1.0.tar.gz
| Download URL | faa_drs-0.1.0.tar.gz |
|---|---|
| Size | 30.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b744aef6f69ebe9a4ed57d6801acf83c0bd99e4f43e65f9374546da287f89533
|
|
BLAKE2b-256 checksum How to use checksums |
ba0bd64e36e9cae97546a5743cb9aaab8276bc57e3878d65dbfdf2c6d966c779
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / faa_drs-0.1.0-py3-none-any.whl
| Download URL | faa_drs-0.1.0-py3-none-any.whl |
|---|---|
| Size | 35.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
660c5103e71238143a6ec25f621f78af6e8ee5f4e243ac56fc67e5f103058def
|
|
BLAKE2b-256 checksum How to use checksums |
3dd7694266280f858096fa655effb028417d253fb8240659a41c3e20e1359a4f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency log