Dynadot 中文文档 下载 App

Dynadot API 常用命令速查——从注册到竞价的实战清单

命令格式

所有请求都发到同一个端点,通过 command 参数区分操作:

GET https://api.dynadot.com/api3.json?key=API_KEY&command=命令名&参数1=值&参数2=值...

POST 可以用 application/x-www-form-urlencoded 格式提交大量参数(如批量设置 DNS)。

常用命令清单

查询类(只读,不花钱)

命令说明示例
search查询单域名可用性command=search&domain=example.com
list_domain列出账户所有域名command=list_domain
domain_info获取单个域名详情command=domain_info&domain=example.com
get_whois查询域名 Whois(含隐私状态)command=get_whois&domain=example.com
list_folder列出所有 Smart Folderscommand=list_folder
balance查询账户余额command=balance

管理类(修改配置,不花钱)

命令说明关键参数
set_dns设置 DNSdomain / ns1 / ns2 或 folder_name + ns*
set_whois修改 Whois 联系人domain + 各联系人字段
lock_domain锁定域名(防转移)domain
unlock_domain解锁域名domain
set_privacy设置隐私级别domain&privacy_level=full
set_renew_option设置自动续费domain&renew_option=auto
create_folder创建 Smart Folderfolder_name=my-folder
move_domain_to_folder移动域名到文件夹domain&folder_name=my-folder

生产类(花钱操作)

命令说明关键参数
register注册域名domain&years=1
renew续费域名domain&years=1
transfer转入域名domain&auth=EPP码
set_hosting停放 / 建站domain&hosting_type=advanced

市场类

命令说明关键参数
place_auction_bid拍卖竞价auction_id&bid_amount
add_backorder下 Backorder 单domain
list_domain_for_sale挂牌出售domain&buy_now_price
offer_to_buy发报价domain&offer_amount

Python 调用示例

示例一:批量查询账户域名到期时间

import requests
import os

API_KEY = os.environ["DYNADOT_API_KEY"]
BASE = "https://api.dynadot.com/api3.json"

resp = requests.get(BASE, params={
    "key": API_KEY,
    "command": "list_domain",
})
data = resp.json()

for domain in data.get("ResponseContent", {}).get("Domains", []):
    print(f"{domain['DomainName']:20s} 到期: {domain['Expiration']}")

示例二:给文件夹内所有域名改 DNS

resp = requests.post(BASE, data={
    "key": API_KEY,
    "command": "set_dns",
    "folder_name": "production",
    "ns": ["ns1.cloudflare.com", "ns2.cloudflare.com"],
    "test": 1,  # 先 Sandbox 测试
})
print(resp.json())
# 确认没问题后去掉 test 参数

示例三:批量注册域名

domains_to_register = ["example1.com", "example2.com", "example3.com"]

for d in domains_to_register:
    resp = requests.get(BASE, params={
        "key": API_KEY,
        "command": "register",
        "domain": d,
        "years": 1,
        "test": 1,  # Sandbox
    })
    print(f"{d}: {resp.json().get('ResponseCode')}")

速率限制

API 请求速率限制取决于账户层级:

如果碰到 429 或限流错误,给请求加随机延迟(如每次 0.1~0.3 秒)。

错误码速查

代码含义
0成功
1参数错误
2域名不存在
3余额不足
4域名已被锁定
5API Key 无效
6速率限制
99其他未知错误

完整错误码列表见 Dynadot API 文档。