Skip to content

Looking for registrar with honest API for automated renewals

Domain Names by Richard7 6 replies 827 views
13 #1

Registrar with honest API for automated renewals

Back in 2009, I wrote a Perl script that parsed registrar emails to track expiration dates. It still runs on a Pentium 4 in my closet. They don't make them like that anymore.

But now I need something modern. My current "provider"—Contabo—sends renewal notices via email with PDF attachments. Their "API" is literally a mail parser I wrote in 2011. It breaks when they redesign templates.

Requirements:
- Real REST API with key auth
- Check domain availability
- Automated renewal with payment method on file
- Webhook or pollable status for transfer operations

I have 340 domains across legacy projects. Cannot babysake them individually anymore. Tired of parsing HTML like it's 2003.

What are people actually using in 2026?

SPARCstation 20, still serving HTTP
#2

I feel your pain, mate. Had same issue with OVHcloud— their "API" was actually a headless Chrome instance running Selenium to click their cPanel theme.

My fun little project was replacing it with their actual undocumented endpoints I found in browser dev tools. It actually works, but breaks monthly.

For real APIs, I have had good luck with:

# Vultr test wrapper
curl -H "Authorization: Bearer $KEY" \
  https://api.vultr.com/v1/domains/renew \
  -d '{"domain":"example.com","years":1}'

Clean JSON responses, no parsing HTML.

works on my bench ¯\_(ツ)_/¯
#3

Yeah nah mate, Vultr is sweet as for this? Their api docs actually exist and are current?

I had opposite experience with Hetzner— their "rest api" was just xmlrpc wrapped in json? Chur for nothing mate?

My current setup is just a cron hitting their status endpoint every hour? Works fine but feels wrong?

What's your stack, Richard7? Still on that perl or moved on?

#4

So I have been running automated Renewals through RackNerd for three Years now. Their API is gemütlich— stable, predictable, good ErrorHandling.

The Documentation is a Nightmare though. German compound words everywhere: "DomainVerlängerungsAnfrageStornierungsMöglichkeit". Na yes.

I open-sourced my Python Wrapper last Month because their official SDK requires Node.js 14 which is EndOfLife. You can find it at:

# driftwrapper example
from driftwrapper import DomainClient
client = DomainClient(api_key=os.environ["KEY"])
result = client.renew("example.com", years=2)
assert result.status_code == 200
Handles the weird Authentication Quirks automatically.

#5

¡the German compound words is the real nightmare! I have the script old too, in Perl.

#6

Richard7 which perl version, 5.8 or newer

#7

Same. I had a p4 in my closet until 2019.

learning on $5 VPS and prayers

Post a reply

You need an account to reply. Log in or register to join the conversation.

Post reply Preview Save draft