Skip to main content

Python Domainrobot (InternetX/AutoDNS) Library

Documentation Status Coverage Status

Python client for the Domainrobot JSON API (InterNetX/AutoDNS).

Installation

pip install domainrobot

Quick start

from domainrobot import Domainrobot

with Domainrobot(username="user", password="pass", context=4) as client:
    # list all domains
    result = client.domain.list()
    for domain in result.data:
        print(domain.name, domain.expire, domain.registryStatus)

Listing all domains

client.domain.list() returns a response where each item in data is a Domain model with these attributes:

Attribute Type Description
name str The name of the domain.
idn str The unicode domain name
expire datetime The expire date of the domain.
payable datetime The payable date of the domain.
registryStatus str The registry status.
autoRenewStatus str The autorenew status.
dnssec bool Indicates whether DNSSEC is enabled for the domain or not.
privacy bool Enable privacy service for the domain.
trustee bool Enable trustee service for the domain.
domainsafe bool Enable domainsafe.
ownerc dict The owner contact.
adminc dict The administrative contact.
techc dict The technical contact reference.
nameServers list[dict] The nameservers.
comment str A custom field. Can only be updated via PUT /domain/{name}/_comment. Requires appropriate ACLs.
created datetime Date of creation.
updated datetime Date of the last update.
extra dict Any unknown/new API fields
result = client.domain.list(
    {"filters": [{"key": "name", "value": "*.com", "operator": "LIKE"}]},
    keys=["status", "expire"],
)
for domain in result.data:
    print(f"{domain.name}  expires={domain.expire}  status={domain.registryStatus}")

Domain operations

# register (async - returns Job)
job_result = client.domain.create({
    "name": "example.com",
    "ownerc": {"id": 1},
    "adminc": {"id": 1},
    "techc": {"id": 1},
})
print(job_result.data[0].status)  # "RUNNING"

# get info (returns Domain)
result = client.domain.info("example.com")
print(result.data[0].authinfo)

# transfer
client.domain.transfer({"name": "example.com", "authinfo": "secret"})

# cancelation
client.domain.cancelation_create("example.com", {"type": "DELETE", "execution": "EXPIRE"})

Contact

# create (returns Contact)
result = client.contact.create({
    "type": "PERSON",
    "fname": "John",
    "lname": "Doe",
    "email": "john@example.com",
    "country": "DE",
    "city": "Munich",
    "pcode": "80333",
    "address": ["Marienplatz 1"],
    "phone": "+49-89-12345",
})
print(result.data[0].id)  # contact ID

# update
client.contact.update(result.data[0].id, {"fname": "Jane"})

Certificate

# prepare order (returns CertificateData)
prep = client.certificate.prepare_order({"plain": "-----BEGIN CERTIFICATE REQUEST-----\n..."})

# order (async - returns Job)
client.certificate.create({
    "product": "BASIC_SSL",
    "csr": "-----BEGIN CERTIFICATE REQUEST-----\n...",
    "adminContact": {"id": 1},
    "technicalContact": {"id": 1},
})

# get info (returns Certificate)
result = client.certificate.info(456)
print(result.data[0].serialNumber)

Zone

# create (returns Zone)
client.zone.create({
    "origin": "example.com",
    "soa": {"email": "admin@example.com", "refresh": 43200, "retry": 7200, "expire": 1209600, "ttl": 86400},
    "main": {"address": "1.2.3.4"},
})

# stream update - add/remove records (returns Zone)
result = client.zone.stream("example.com", {
    "adds": [{"name": "www", "type": "A", "value": "1.2.3.4", "ttl": 3600}],
    "rems": [],
})
print(result.data[0].resourceRecords)

Error handling

from domainrobot import DomainrobotApiError, DomainrobotTransportError

try:
    client.domain.info("nonexistent.example")
except DomainrobotApiError as e:
    print(f"API error {e.status_code}: {e}")
    print(e.messages)
except DomainrobotTransportError as e:
    print(f"Connection error: {e}")

Custom headers

Every method accepts an optional headers parameter:

client.domain.info("example.com", headers={"X-Domainrobot-Demo": "true"})

Available services

Service Attribute Response model Key endpoints
Account client.account Account info, update
BackupMx client.backup_mx BackupMx create, info, delete, list
Certificate client.certificate Certificate / Job create, info, reissue, delete, renew, revoke, list
Contact client.contact Contact create, info, update, delete, list
Domain client.domain Domain / Job create, info, update, list, transfer, renew, restore
DomainStudio client.domain_studio DomainEnvelope search
Hello client.hello - ping
Job client.job ObjectJob info, list, cancel, confirm
MailProxy client.mail_proxy MailProxy create, info, update, delete, list
Poll client.poll PollMessage info, confirm
Redirect client.redirect Redirect create, info, update, delete, list
Session client.session User login, logout
SslContact client.ssl_contact SslContact create, info, update, delete, list
Subscription client.subscription Subscription create, update, delete, list
TransferOut client.transfer_out TransferOut list, answer
User client.user User create, info, update, delete, list
Zone client.zone Zone create, info, update, delete, list, stream, import_zone

Documentation

Full API reference: domainrobot-python.readthedocs.io

License

GPL-3.0-or-later

Metadata

Release files for domainrobot 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for domainrobot 0.0.2
File Size Uploaded Provenance Actions
domainrobot-0.0.2.tar.gz 108.4 kB With provenance Details for domainrobot-0.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for domainrobot 0.0.2
File Interpreter ABI Platform Actions
domainrobot-0.0.2-py3-none-any.whl Python 3 none any Details for domainrobot-0.0.2-py3-none-any.whl

Total release size: 149.1 kB

Release files / domainrobot-0.0.2.tar.gz

Download URL domainrobot-0.0.2.tar.gz
Size 108.4 kB
Tags Source
SHA-256 checksum
How to use checksums
dde3d3fded591ee35e72deb07f5b507154e955288a74e1f7fe79f1745e08e131
BLAKE2b-256 checksum
How to use checksums
d7c6b509c75c7fe70a9732bf05e7d6ed49cb18e7198a8c7d0bb1f46d7aa61b48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 19, 2026.

Transparency log

Release files / domainrobot-0.0.2-py3-none-any.whl

Download URL domainrobot-0.0.2-py3-none-any.whl
Size 40.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
603bf69e9171496bcf0673093953266606a514cbe68fa1ea4322d5e75eaeee0c
BLAKE2b-256 checksum
How to use checksums
60c236d0472afcde67bafc6cd95d6010b0e0df19bb96e72a4cac7f3debaa11ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 19, 2026.

Transparency log

Security for domainrobot 0.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for domainrobot-0.0.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page