📢 We've added Microsoft Azure as an Integrated DNS Provider. You can now manage your DNS zones from Azure within DNSimple, gaining even more visibility and control 💪 Read more

Manage all your domains using Elixir

We've got the best API to manage your domain portfolio while saving time and money.

A quick tour of our Elixir API in under 10 minutes.Pointing up arrow

Pointing straight arrow

A quick tour of our Elixir API in under 10 minutes.

Fast and easy to use.

Quickly check domain availability, add a DNS record, and request an SSL certificate directly from Elixir.

Never regretted signing up long ago.

Marius Maximus avatar Marius Maximus, DevOps

Configuring server-wide DNS template is made simple for our Enterprise Network with DNSimple.

Rithika G. avatar Rithika G., Cloud Engineer

A dependable service with amazing technical support.

Valters J. avatar Valters J., DevOps Engineer

Best DNS Hosting Company by far.

Dorian Kind avatar Dorian Kind, Director of Data & Technologies

Case studies

Learn how our customers use DNSimple to automate their companies' domain management — from registering domains and adding zone records, to reselling domains and managing cloud infrastructure.

Developer tips

Open a free account in our Sandbox environment. Write, test, and verify your code before you move to production.

Test domain registration and issuing SSL certificates at no charge. Domains registered in Sandbox do not resolve, and SSL certificates should not be installed in any production environment.

Use our testing credit card to select a plan that matches the features that you'd like to test.

Follow this guide to obtain your token for your API calls.

Create an account in Sandbox

Start by writing small scripts that explore how you can use the API. Writing a custom report is a good way to get exposure to different API endpoints and how you can combine those.

custom_report.exs
# Print my domains with expiration date and associated SSL certificate if any.

{:ok, response} = Dnsimple.Domains.list_domains(client, account_id = @account_id)

domains = response.data

Enum.each(domains, fn domain ->
 IO.puts "- #{domain.name}: #{domain.state}"
  if domain.state == "registered" do
    IO.puts "(expires on: #{domain.expires_at}"
  end

  {:ok, response} = Dnsimple.Certificates.list_certificates(client, account_id = account_id, domain_name = domain.name)

  certificates = response.data

  Enum.each(certificates, fn certificate ->
    IO.puts "    - #{certificate.common_name}: #{certificate.state} (years till expiry: #{certificate.years} "
    if certificate.auto_renew do
      IO.puts "but will auto renew"
    end
    IO.puts ")"
  end)
end)
          

Managing domains with similar configurations can be error prone. Use the Elixir API to automate DNS changes across multiple domains with DNS templates.

In the script below, we've created a template to apply to any domain after registration.

apply_dns_template.exs
# Point a domain to hosting after registration

{:ok, response} = Dnsimple.Templates.create_template(client, account_id = account_id, %{
 name: "Domain Registration Template",
  short_name: "after-domain-registration-template",
  description: "Point a domain to hosting after registration",
})

template = response.data

{:ok, response} = Dnsimple.Templates.create_template_record(client, account_id = account_id, template_id = template.sid %{
  name: "a",
  type: "A",
  content: "192.168.1.1",
  ttl: 600,
})

# To keep this example short, registering the domain is omitted.

# Apply the template to the domain
{:ok, response} = Dnsimple.Templates.apply_template(client, account_id = 1010, domain_id = "example.com", template_id = template.sid)
          

Reliable DNS at the right price

If you manage 100+ domains, get in touch.
We offer flexible plans with adjusted rates and discounts for Enterprise and Resellers.

Integrate in minutes with our API

Update DNS records, request SSL certificates, and transfer or register new domains from Elixir.

Manage your domains from Elixir.

Start your free 30-day trial

Photo by Christina @ wocintechchat.com on Unsplash