Skip to content
Switch branches/tags


Failed to load latest commit information.


Manipulate DNS records on various DNS providers in a standardized/agnostic way.

build_status coverage_status docker_pulls pypy_version pypy_python_support github_license

Why using Lexicon?

Lexicon provides a way to manipulate DNS records on multiple DNS providers in a standardized way.

Lexicon can be used as:

  • a CLI tool:
# Create a TXT entry in zone hosted by CloudFlare
lexicon cloudflare create TXT --name foo --content bar
  • or a Python library:
# Create a TXT entry in zone hosted by CloudFlare
from lexicon.client import Client
from lexicon.config import ConfigResolver

action = {
    "provider_name" : "cloudflare",
    "action": "create",
    "domain": "",
    "type": "TXT",
    "name": "foo",
    "content": "bar",
config = ConfigResolver().with_env().with_dict(action)

Lexicon was designed to be used in automation, specifically letsencrypt.

Supported providers

Only DNS providers who have an API can be supported by lexicon.

The current supported providers are:


Online documentation (user guide, configuration reference) is available in the Lexicon documentation.

For a quick start, please have a look in particular at the User guide.


If you want to help in the Lexicon development, you are welcome!

Please have a look at the Developer guide page to know how to start.


  • MIT
  • Logo: transform by Mike Rowe from the Noun Project