I happened to be looking for the exact same thing and just found out about the FAA data portal; have you given that a try? There are even API explorers linked for most digital chart services on that page.
It appears for what you described, you should at least be able to poll the various /info
endpoints, and retrieve as new cycle becomes available. For example (use accept: application/json
instead for JSON responses):
$ curl -s -X GET 'https://soa.smext.faa.gov/apra/dec/info?edition=current' -H 'accept: application/xml' | xmllint --format -
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<productSet xmlns="http://arpa.ait.faa.gov/arpa_response">
<status code="200" message="OK"/>
<edition geoname="US" editionName="CURRENT" format="ZIP">
<editionDate>11/03/2022</editionDate>
<editionNumber>73</editionNumber>
</edition>
</productSet>
Then
$ curl -s -X GET 'https://soa.smext.faa.gov/apra/dec/chart?edition=current' -H 'accept: application/xml' | xmllint --format -
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<productSet xmlns="http://arpa.ait.faa.gov/arpa_response">
<status code="200" message="OK"/>
<edition geoname="US" editionName="CURRENT" format="ZIP">
<editionDate>11/03/2022</editionDate>
<editionNumber>73</editionNumber>
<product productName="DEC" chartName="DDECUS.zip" url="https://aeronav.faa.gov/enroute/11-03-2022/DDECUS.zip"/>
</edition>
</productSet>
... and there's the download URL, no auth required.