Ruby client for the DNSimple API.
Pull request Compare This branch is 648 commits behind dnsimple:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

DNSimple Ruby Client

A Ruby command line utility and wrapper for the DNSimple API.

Build Status

DNSimple provides DNS hosting and domain registration that is simple and friendly. We provide a full API and an easy-to-use web interface so you can get your domain registered and set up with a minimal amount of effort.


$ gem install dnsimple-ruby


Create a file in your home directory called .dnsimple.

In this file add the following:



There are two ways to interact with the DNSimple Ruby wrapper. The first is to use the command line utility that is included. The commands available are as follows:

For help:

  • dnsimple help

The following commands are available for domains:

  • dnsimple list
  • dnsimple describe
  • dnsimple create
  • dnsimple register registrant_id
  • dnsimple transfer registrant_id [authinfo]
  • dnsimple delete
  • dnsimple apply template_short_name

Please note that domain registration and transfer can only be done through the API for domains that do not require extended attributes. A future version of the API will add support for extended attributes.

The following commands are available for records:

  • dnsimple record:create [--prio=priority] name type content [ttl]
  • dnsimple record:list
  • dnsimple record:delete record_id

The following commands are available for custom templates:

  • dnsimple template:list
  • dnsimple template:create name short_name [description]
  • dnsimple template:delete short_name
  • dnsimple template:list_records short_name
  • dnsimple template:add_record short_name name type content [ttl] [prio]
  • dnsimple template:delete_record short_name template_record_id

The following commands are available for managing contacts:

  • dnsimple contact:list
  • dnsimple contact:describe id
  • dnsimple contact:create [name:value name:value ...]
  • dnsimple contact:update id [name:value name:value ...]
  • dnsimple contact:delete id

The following commands are available for purchasing certificates:

  • dnsimple certificate:purchase name contact_id
  • dnsimple certificate:submit id

The contact name/value pairs are:

  • first_name
  • last_name
  • organization_name (optional)
  • job_title (required if organization name is specified)
  • address1
  • address2 (optional)
  • city
  • state_province (also aliased as state)
  • postal_code
  • country
  • email
  • phone
  • phone_ext (optional)
  • fax (optional)

Wrapper Classes

In addition to the command line utility you may also use the included Ruby classes directly in your Ruby applications.

Here's a short example.

require 'rubygems'
require 'dnsimple'

DNSimple::Client.username   = 'YOUR_USERNAME'
DNSimple::Client.password   = 'YOUR_PASSWORD'
DNSimple::Client.http_proxy = {}

user =
puts "#{user.domain_count} domains"

puts "Domains..."
DNSimple::Domain.all.each do |domain|
  puts "  #{}"

domain = DNSimple::Domain.find("")
domain.apply("template") # applies a standard or custom template to the domain

domain = DNSimple::Domain.create("")
puts "Added #{}"
domain.delete # removes from DNSimple

For the full API documentation visit