This is a client for the DNSimple REST API. It currently allows you to fetch existing domain info, as well as register new domains and manage domain records.
You'll need the json module that is included with python version 2.6 and
later, or the simplejson module if you are using an earlier version.
Import the module:
from dnsimple import DNSimple
You can provide your DNSimple credentials in one of two ways:
-
Provide username/password or email/api_token credentials programmatically:
# Use username/password authentication: HTTP Basic dns = DNSimple(username=YOUR_USERNAME, password=YOUR_PASSWORD) # Use email/api_token credentials dns = DNSimple(email=YOUR_EMAIL_ADDRESS, api_token=YOUR_API_TOKEN) -
Store you username/password credentials in a file called
.dnsimplein the current directory with the following data:username: email@domain.com password: yourpasswordYou then need not provide any credentials when constructing
DNSimple:dns = DNSimple()
Just run:
domains = dns.domains()
Results appear as a Python dict:
{'domain': {'created_at': '2010-10-14T09:45:32Z',
'expires_at': '10/14/2011 5:45:00 AM',
'id': 999,
'last_enom_order_id': None,
'name': 'yourdomain.com',
'name_server_status': 'active',
'registrant_id': 99,
'registration_status': 'registered',
'updated_at': '2010-10-14T10:00:14Z',
'user_id': 99}},
{'domain': {'created_at': '2010-10-15T16:02:34Z',
'expires_at': '10/15/2011 12:02:00 PM',
'id': 999,
'last_enom_order_id': None,
'name': 'anotherdomain.com',
'name_server_status': 'active',
'registrant_id': 99,
'registration_status': 'registered',
'updated_at': '2010-10-15T16:30:16Z',
'user_id': 99}}]
dns.domain('mikemaccana.com')
Results are the same as domains() above, but only show the domain specified.
dns.check('google.com')
# Hmm, looks like I'm too late to get that one...
{u'currency': u'USD',
u'currency_symbol': u'$',
u'minimum_number_of_years': 1,
u'name': u'google.com',
u'price': u'14.00',
u'status': u'unavailable'}
dns.register('newdomain.com')
This will register 'newdomain.com', automatically picking the registrant_id
from your first domain. To specify a particularly registrant\_id, just run:
dns.register('newdomain.com', 99)
Responses will be in a dictionary describing the newly created domain, same as
the domain() call above.
Careful with this one!
dns.delete('domain-to-die.com')
All operations on domain records are now supported:
- List records:
records(id_or_domainname) - Get record details:
record(id_or_domainname, record_id) - Add record:
add_record(id_or_domainname, data) - Update record:
update_record(id_or_domainname, record_id, data) - Delete record:
delete_record(id_or_domainname, record_id)
Licensed under the MIT license