Skip to main content
Help us improve Python packaging – donate today!

Command line client to synchronize PowerDNS hosted zones with local zone files

Project Description

The pdns script allows DNS zones hosted at PowerDNS to be synchronized with local bind-style zone files via the PowerDNS API.


$ pip install pdns


To download a zone:

$ pdns download --apikey {KEY} --domain {DOMAIN} {ZONEFILE}

These command line options can also be stored in a configuration file, e.g. config.ini:

apikey        = {KEY}
domain        = {DOMAIN}
zonefile      = {ZONEFILE}

And then invoke pdns as follows:

$ pdns download --config config.ini

To upload a zone:

$ pdns upload --config config.ini

And to show differences between the hosted zone and the local zonefile:

$ pdns diff --config config.ini


The pdns configuration file can specify the following options:

  • apikey:

    The API access key provided by PowerDNS. Note that an account must first be enabled (via the PowerDNS website) before it can be used.

  • domain:

    The name of the zone to be operated on.

  • zonefile:

    The filename of the local zone file. If specified in the configuration, it is taken to be relative to the configuration file. If specified on the command line, it is taken to be relative to the current working directory.

Several different profiles can be stored in the same configuration; each profile should have a section named after the domain. Global parameters can be stored in the “DEFAULT” section. For example:


# set some global parameters
apikey        = 2f16eef6-5b1f-4d80-96f7-0237da03db48

# set the default domain to manage
domain        =

zonefile      =

zonefile      =

Then, to upload the zones:

# upload ''
$ pdns upload -c config.ini

# upload ''
$ pdns upload -c config.ini -d

Release history Release notifications

History Node


History Node


History Node


History Node


History Node


History Node


This version
History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
pdns-0.1.tar.gz (19.8 kB) Copy SHA256 hash SHA256 Source None Mar 3, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page