OPENSRS API

Your product. Now with domains,
site security, and email built in.

Your product. Now with domains, site security, and email built in.

Your product. Now with domains, site security, and email built in.

Whether you're building your first product or scaling an existing one, the OpenSRS APIs integrate seamlessly with what you’ve built.

Trusted by some of the world's largest platforms.

Available in Python, Perl, Java, PHP, & Ruby

OpenSRS API Quickstart
#!/usr/bin/python
 
import requests
import hashlib
 
TEST_MODE = 1
 
connection_options = {
'live' : {
# IP whitelisting required
'reseller_username': '<YOUR RESELLER USERNAME>',
'api_key':'<YOUR API KEY>',
'api_host_port': 'https://rr-n1-tor.opensrs.net:55443',
},
'test' : {
# IP whitelisting not required
'reseller_username': '<YOUR RESELLER USERNAME>',
'api_key':'<YOUR API KEY>',
'api_host_port': 'https://horizon.opensrs.net:55443',
 
}
}
 
if TEST_MODE == 1:
connection_details = connection_options['test']
else:
connection_details = connection_options['live']
 
xml = '''
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">LOOKUP</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">myfirstopensrsapitest.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>
'''
 
md5_obj = hashlib.md5()
md5_obj.update((xml + connection_details['api_key']).encode())
signature = md5_obj.hexdigest()
 
md5_obj = hashlib.md5()
md5_obj.update((signature + connection_details['api_key']).encode())
signature = md5_obj.hexdigest()
 
headers = {
'Content-Type':'text/xml',
'X-Username': connection_details['reseller_username'],
'X-Signature':signature,
};
 
print("Request to {} as reseller {}:".format(connection_details['api_host_port'],connection_details['reseller_username']))
print(xml)
 
r = requests.post(connection_details['api_host_port'], data = xml, headers=headers )
 
print("Response:")
if r.status_code == requests.codes.ok:
print(r.text)
else:
print (r.status_code)
print (r.text)
OpenSRS API Quickstart
#!/usr/bin/python
 
import requests
import hashlib
 
TEST_MODE = 1
 
connection_options = {
'live' : {
# IP whitelisting required
'reseller_username': '<YOUR RESELLER USERNAME>',
'api_key':'<YOUR API KEY>',
'api_host_port': 'https://rr-n1-tor.opensrs.net:55443',
},
'test' : {
# IP whitelisting not required
'reseller_username': '<YOUR RESELLER USERNAME>',
'api_key':'<YOUR API KEY>',
'api_host_port': 'https://horizon.opensrs.net:55443',
 
}
}
 
if TEST_MODE == 1:
connection_details = connection_options['test']
else:
connection_details = connection_options['live']
 
xml = '''
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">LOOKUP</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">myfirstopensrsapitest.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>
'''
 
md5_obj = hashlib.md5()
md5_obj.update((xml + connection_details['api_key']).encode())
signature = md5_obj.hexdigest()
 
md5_obj = hashlib.md5()
md5_obj.update((signature + connection_details['api_key']).encode())
signature = md5_obj.hexdigest()
 
headers = {
'Content-Type':'text/xml',
'X-Username': connection_details['reseller_username'],
'X-Signature':signature,
};
 
print("Request to {} as reseller {}:".format(connection_details['api_host_port'],connection_details['reseller_username']))
print(xml)
 
r = requests.post(connection_details['api_host_port'], data = xml, headers=headers )
 
print("Response:")
if r.status_code == requests.codes.ok:
print(r.text)
else:
print (r.status_code)
print (r.text)

Your product. Your checkout. Your customer.

Your product.
Your checkout.
Your customer.

Your customers are building businesses, stores, agents, and tools inside your product, and every domain they register elsewhere pulls them out of the experience you've built.

With the OpenSRS APIs, sell and manage domains, TLS/SSL certificates, and professional email under your brand, so your product is the only one they need.

Without OpenSRS

Enter an icon name

Customer leaves your platform to register a domain, purchase TLS/SSL certificates, and email

Enter an icon name

Third-party checkout, third-party brand

Enter an icon name

Someone else owns the launch moment

Enter an icon name

Support gets fragmented

With OpenSRS

Enter an icon name

Customer does it all inside your product

Enter an icon name

Your checkout, your brand

Enter an icon name

You own the relationship

Enter an icon name

Your product stays at the center of the experience

Two dedicated APIs. One partner.

OpenSRS offers two APIs—one for domain registration and TLS/SSL certificates, one for email hosting. Use them together or separately. Either way, your customers only ever see you.

Domains + TLS/SSL API

The full domain and TLS/SSL certificate experience, built into your product and branded as yours.

Best for AI app builders, website builders, e-commerce platforms, SaaS tools, hosting platforms, and marketplaces that want to own the domain experience.

Domain search and registration inside your product

TLS/SSL certificate purchases and provisioning

750+ TLDs, including premium domains

Full automation: registrations, renewals, transfers, and WHOIS updates

XML-based API that works with whatever stack you're building on

Email API 

White-label professional email that lives inside your product, not someone else’s.

Best for platforms that want to help customers look legit from day one with addresses like hello@theirbrand.com.

Mailbox creation and management

Branded business email for customers’ domains

Bulk create, manage, and delete actions

IMAP, POP3, and SMTP support

JSON-based API that works with any stack

Why OpenSRS? A partner built for builders.

Infrastructure that’s been running since before “the cloud” was a thing. 25+ years. Millions of domains. Millions of mailboxes.

We're the infrastructure. Not the competition.

We never compete for your customers. They search for a domain inside your product. We're the infrastructure powering it.

No minimums, no ceilings.

Sign up, integrate, and scale at your own pace.

Transparent pricing.

Wholesale prices for all TLDs are on our site. No surprises. Tiered pricing grows with your volume.

Support that meets you where you are.

Documentation, code examples, and a team that helps builders go from integration to launch.

TESTIMONIAL

ikas is an e-commerce platform helping small businesses build and scale online stores.

We were able to complete the OpenSRS API integration very quickly and without needing direct support from the team. The API was straightforward to work with, and the documentation made the process clear and easy to follow. At the same time, it was reassuring to know that support was available if we needed anything during the integration. Overall, the experience felt smooth, lightweight, and easy to build on.”

We were able to complete the OpenSRS API integration very quickly and without needing direct support from the team. The API was straightforward to work with, and the documentation made the process clear and easy to follow. At the same time, it was reassuring to know that support was available if we needed anything during the integration. Overall, the experience felt smooth, lightweight, and easy to build on.”

Ömercan Çelikler, Co-Founder & Head of Product — ikas

Ömercan Çelikler, Co-Founder & Head of Product — ikas

Your users are ready to launch. Don’t send them somewhere else.

Add domains, hosted email, and TLS/SSL to your product with OpenSRS APIs. Speak with our sales team to get started.

Frequently Asked Questions

Do I need to be a developer to integrate the API?
Is there a testing environment?
Are there usage limits?
Are the two APIs different technically?
How does pricing work?
The API doesn't feel like the right fit — what else should I consider?

© 2026 Tucows OpenSRS. All rights reserved.