Introduction

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 domain.net zone hosted by CloudFlare
lexicon cloudflare create domain.net TXT --name foo --content bar
  • or a Python library:

# Create a TXT entry in domain.net zone hosted by CloudFlare
from lexicon.client import Client
from lexicon.config import ConfigResolver

config = ConfigResolver().with_env().with_dict({
    "provider_name" : "cloudflare",
    "domain": "domain.net",
})

with Client(config) as operations:
    operations.create_record("TXT", "foo", "bar")

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

Supported providers

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

Lexicon currently supports 87 providers:

aliyun

arvancloud

aurora

azure

cloudflare

cloudns

cloudxns

conoha

constellix

ddns

digitalocean

dinahosting

directadmin

dnsimple

dnsmadeeasy

dnspark

dnspod

dnsservices

dreamhost

duckdns

dynu

easydns

easyname

euserv

exoscale

flexibleengine

gandi

gehirn

glesys

godaddy

googleclouddns

gransy

gratisdns

henet

hetzner

hostingde

hover

infoblox

infomaniak

internetbs

inwx

ionos

joker

linode

linode4

localzone

luadns

memset

misaka

mythicbeasts

namecheap

namecom

namesilo

netcup

nfsn

njalla

nsone

oci

onapp

online

ovh

plesk

pointhq

porkbun

powerdns

qcloud

rackspace

rage4

rcodezero

regfish

route53

safedns

sakuracloud

softlayer

timeweb

transip

ultradns

valuedomain

vercel

vultr

webgo

wedos

yandex

yandexcloud

zeit

zilore

zonomi