hrd-py
A Python library and CLI for the HRD.pl API.
Features
- Check account balance.
- List domains and their status.
- Monitor domain expiry.
- Renew domains manually or automatically.
- View account operation history (purchases, renewals, etc.).
- Show full domain details, including the registrant/owner.
- Look up a subscriber (abonent) and every domain they own.
- List every subscriber on an account.
- Update a domain's nameservers.
- Manage glue host records (create, update, delete, list, info).
- Read pending account notifications (poll queue).
Installation
pip install .
Shell completion (bash)
hrd uses Click, which provides bash completion out of the box (no extra dependency needed).
Add this to your ~/.bashrc:
eval "$(_HRD_COMPLETE=bash_source hrd)"
Then reload your shell (source ~/.bashrc or open a new terminal). hrd <TAB> will complete
subcommands, and hrd --profile <TAB> etc. will complete options.
Configuration
Create a .env file with your HRD.pl credentials:
HRD_LOGIN=your_login
HRD_PASS=your_api_password
HRD_HASH=your_api_hash
Usage
CLI
hrd balance
hrd domains --all
hrd expiring --days 30
hrd renew example.com
hrd auto-renew --days 7 # asks before renewing each domain, across all profiles
hrd auto-renew --days 7 --no-ask # renew without confirmation prompts
hrd history --limit 20 # recent operations across all profiles, with date and profile
hrd domain-info example.com # full domain details, including the owner
hrd owner-info 173216 # subscriber details and every domain they own
hrd owner-list # every subscriber id on the account(s)
hrd owner-list --details # ... plus each subscriber's name
hrd nameservers example.com ns1.example.com ns2.example.com # update a domain's nameservers
hrd host list # list glue host records
hrd host info ns1.example.com # show a glue host's IP addresses
hrd host create ns1.example.com --ipv4 1.2.3.4
hrd host update ns1.example.com --ipv4 1.2.3.5
hrd host delete ns1.example.com
hrd notifications # peek at the oldest pending account notification per profile
hrd notifications --ack --limit 10 # drain and acknowledge up to 10 notifications
hrd --debug balance # print raw API requests/responses (password is masked)
Library
from hrd_py import HRDClient
client = HRDClient(login, password, api_hash)
client.login()
balance = client.get_balance()
print(f"Balance: {balance.balance}")
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hrd_py-0.0.8.tar.gz.
File metadata
- Download URL: hrd_py-0.0.8.tar.gz
- Upload date:
- Size: 24.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff44986935aae2564223c82566e235d52379868e4ad4e96f7ad92ba66e6f25c3
|
|
| MD5 |
818f3f7a9167f2881c33a936c57e7f4b
|
|
| BLAKE2b-256 |
d08e6156d97dcd9f770bda70388a716c1245d57c2dee8a2c43c58794183ae8e4
|
Provenance
The following attestation bundles were made for hrd_py-0.0.8.tar.gz:
Publisher:
ci.yml on theundefined/hrd-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hrd_py-0.0.8.tar.gz -
Subject digest:
ff44986935aae2564223c82566e235d52379868e4ad4e96f7ad92ba66e6f25c3 - Sigstore transparency entry: 2253998027
- Sigstore integration time:
-
Permalink:
theundefined/hrd-py@6154e828cdeb47f7c05cb631d85940d19b6bc8b7 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/theundefined
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@6154e828cdeb47f7c05cb631d85940d19b6bc8b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hrd_py-0.0.8-py3-none-any.whl.
File metadata
- Download URL: hrd_py-0.0.8-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f40c01c641461ea274fe46bb1b5b47482623897a61f09adb22fb0c22dfeca763
|
|
| MD5 |
c823fd4b9aef04bad01514ea4618bb49
|
|
| BLAKE2b-256 |
4bd7668182083ce426ccdb5efdc2ac33fc0e85c9b864f01de601efce1eecf5b5
|
Provenance
The following attestation bundles were made for hrd_py-0.0.8-py3-none-any.whl:
Publisher:
ci.yml on theundefined/hrd-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hrd_py-0.0.8-py3-none-any.whl -
Subject digest:
f40c01c641461ea274fe46bb1b5b47482623897a61f09adb22fb0c22dfeca763 - Sigstore transparency entry: 2253998067
- Sigstore integration time:
-
Permalink:
theundefined/hrd-py@6154e828cdeb47f7c05cb631d85940d19b6bc8b7 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/theundefined
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@6154e828cdeb47f7c05cb631d85940d19b6bc8b7 -
Trigger Event:
push
-
Statement type: