{"slug": "dns-lexicon", "name": "dns-lexicon", "category": "networking", "category_name": "Networking and VPN", "description": "", "recommenders": 3, "commenters": 3, "warners": 0, "score": 2.673, "rising": -0.98, "first": "2026-03-27", "latest": "2026-07-10", "why": "Library/CLI that speaks the API of several dozen DNS providers so you don't have to re-invent the wheel", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 0, "warn": 0}, "spark": [0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Library/CLI that speaks the API of several dozen DNS providers so you don't have to re-invent the wheel", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/dns-lexicon/dns-lexicon", "official_url": "https://github.com/dns-lexicon/dns-lexicon", "pricing": "", "aliases": ["dns-lexicon"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 781741456, "item_id": 48858841, "url": "https://news.ycombinator.com/item?id=48858841", "by": "throw0101d", "date": "2026-07-10", "version": null, "stance": "recommend", "quote": "Library/CLI that speaks the API of several dozen DNS providers so you don't have to re-invent the wheel", "excerpt": "> You need a DNS provider which supports API calls (I use DNSimple) but the core is all very straightforward. Library/CLI that speaks the API of several dozen DNS providers so you don't have to re-invent the wheel: * https://github.com/dns-lexicon/dns-lexicon", "context": "", "use_case": "DNS provider API for ACME challenges", "switched_from": "", "story": "TLS certificates for internal services done right"}, {"id": 781564786, "item_id": 48847799, "url": "https://news.ycombinator.com/item?id=48847799", "by": "throw0101d", "date": "2026-07-09", "version": null, "stance": "recommend", "quote": "Also code that handles a bunch of DNS provider APIs so you don't have to roll your own", "excerpt": "> I use the acme dns-1 challenge on my public domain. See also perhaps DNS aliasing in case you are not able to dynamically update your 'primary' domain, but can update a secondary or sub-domain: * https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode So if \"example.com\" is control by Corporate IT, and they don't want 'random' folks fiddling with it, then you can create a \"dnsauth.example.com\" and point the ", "context": "", "use_case": "ACME client DNS hooks", "switched_from": "", "story": "TLS certificates for internal services done right"}, {"id": 760731041, "item_id": 47545690, "url": "https://news.ycombinator.com/item?id=47545690", "by": "throw0101a", "date": "2026-03-27", "version": null, "stance": "recommend", "quote": "One tool that can be used in a deployment hook which supports the API of several dozen DNS providers:\n\n* https://github.com/dns-lexicon/dns-lexicon", "excerpt": "One tool that can be used in a deployment hook which supports the API of several dozen DNS providers: * https://github.com/dns-lexicon/dns-lexicon", "context": "", "use_case": "DNS API for certbot hooks", "switched_from": "", "story": "Installing a Let's Encrypt TLS Certificate on a Brother Printer with Certbot"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["dns provider api for acme challenges", "acme client dns hooks", "dns api for certificate deployment", "dns api for certbot hooks"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48846995", "title": "TLS certificates for internal services done right", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47542644", "title": "Installing a Let's Encrypt TLS Certificate on a Brother Printer with Certbot", "mentions": 2}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {}, "2026-03": {"recommend": 2}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"recommend": 1}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 781741456, "item_id": 48858841, "url": "https://news.ycombinator.com/item?id=48858841", "by": "throw0101d", "date": "2026-07-10", "version": null, "stance": "recommend", "quote": "Library/CLI that speaks the API of several dozen DNS providers so you don't have to re-invent the wheel", "excerpt": "> You need a DNS provider which supports API calls (I use DNSimple) but the core is all very straightforward. Library/CLI that speaks the API of several dozen DNS providers so you don't have to re-invent the wheel: * https://github.com/dns-lexicon/dns-lexicon", "context": "", "use_case": "DNS provider API for ACME challenges", "switched_from": "", "story": "TLS certificates for internal services done right"}, {"id": 781564786, "item_id": 48847799, "url": "https://news.ycombinator.com/item?id=48847799", "by": "throw0101d", "date": "2026-07-09", "version": null, "stance": "recommend", "quote": "Also code that handles a bunch of DNS provider APIs so you don't have to roll your own", "excerpt": "> I use the acme dns-1 challenge on my public domain. See also perhaps DNS aliasing in case you are not able to dynamically update your 'primary' domain, but can update a secondary or sub-domain: * https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode So if \"example.com\" is control by Corporate IT, and they don't want 'random' folks fiddling with it, then you can create a \"dnsauth.example.com\" and point the ", "context": "", "use_case": "ACME client DNS hooks", "switched_from": "", "story": "TLS certificates for internal services done right"}, {"id": 760739584, "item_id": 47546224, "url": "https://news.ycombinator.com/item?id=47546224", "by": "justin_oaks", "date": "2026-03-27", "version": null, "stance": "recommend", "quote": "", "excerpt": "The list of API integrations provided by the lego project looks quite impressive. https://go-acme.github.io/lego/dns/index.html", "context": "", "use_case": "DNS API for certificate deployment", "switched_from": "", "story": "Installing a Let's Encrypt TLS Certificate on a Brother Printer with Certbot"}, {"id": 760731041, "item_id": 47545690, "url": "https://news.ycombinator.com/item?id=47545690", "by": "throw0101a", "date": "2026-03-27", "version": null, "stance": "recommend", "quote": "One tool that can be used in a deployment hook which supports the API of several dozen DNS providers:\n\n* https://github.com/dns-lexicon/dns-lexicon", "excerpt": "One tool that can be used in a deployment hook which supports the API of several dozen DNS providers: * https://github.com/dns-lexicon/dns-lexicon", "context": "", "use_case": "DNS API for certbot hooks", "switched_from": "", "story": "Installing a Let's Encrypt TLS Certificate on a Brother Printer with Certbot"}]}