把域名解析能力接入你的系统
使用独立 API 密钥,在服务端完成积分查询、可用域名获取,以及解析记录的创建、修改、续费和删除。
当前版本V1 稳定版
传输协议HTTPS / JSON
身份认证X-API-Key
数据范围当前密钥所属账号
先在后台主动开启
生成或管理 API 密钥
API 默认关闭。首次开启或重置后,完整密钥只显示一次,请立即保存到安全的服务端配置中。
三步完成第一笔请求
1生成密钥
登录个人中心,在“API 密钥”中主动开启,并保存首次显示的完整密钥。
2配置服务端
把密钥保存到环境变量或安全配置文件,不要写进网页和公开源码。
3发起请求
请求当前站点的 HTTPS 接口,并按统一中文提示处理成功或失败结果。
Base URL
https://your-domain.example/prod-api/open-api/v1
每个请求都要携带独立密钥
密钥对应当前用户账号,接口只返回和操作该账号有权访问的数据。重置或关闭 API 后,旧密钥立即失效。
HTTP 请求头
X-API-Key: dnsr1_你的API密钥
Content-Type: application/json
curl 'https://your-domain.example/prod-api/open-api/v1/balance' \
-H 'X-API-Key: dnsr1_你的API密钥'$client = new GuzzleHttp\Client();
$response = $client->get(
'https://your-domain.example/prod-api/open-api/v1/balance',
['headers' => ['X-API-Key' => getenv('DNSR1_API_KEY')]]
);
$data = json_decode($response->getBody(), true);const response = await fetch(
'https://your-domain.example/prod-api/open-api/v1/balance',
{ headers: { 'X-API-Key': process.env.DNSR1_API_KEY } }
)
const data = await response.json()import os, requests
response = requests.get(
'https://your-domain.example/prod-api/open-api/v1/balance',
headers={'X-API-Key': os.environ['DNSR1_API_KEY']},
timeout=15,
)
data = response.json()接口目录
以下路径均相对于 Base URL。先从查询接口获得有效的域名、套餐和解析 ID,再执行写入操作。
读取账号资源与解析状态
GET
/records
返回当前密钥所属账号的解析记录,包括解析 ID、主机记录、类型、记录值、状态和到期时间。
curl 'https://your-domain.example/prod-api/open-api/v1/records' \
-H 'X-API-Key: dnsr1_你的API密钥'GET
/records/{id}
根据解析 ID 获取一条属于当前账号的解析详情。
提交一条新的解析记录
POST
/records
创建前先通过域名和套餐查询接口获得当前有效的 ID。
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| domainNameId | Number | 必填 | 主域名 ID,通过 /domains 获取 |
| monthsId | Number | 必填 | 套餐 ID,通过 /domains/{domainId}/plans 获取 |
| name | String | 必填 | 主机记录,例如 www、api |
| type | String | 必填 | 解析类型,以 /record-types 返回值为准 |
| line | String | 可选 | 解析线路,默认填写“默认” |
| value | String | 必填 | 记录值,例如 IP 地址或目标域名 |
{
"domainNameId": 123,
"monthsId": 456,
"name": "www",
"type": "A",
"line": "默认",
"value": "1.2.3.4"
}更新当前账号名下的解析
PUT
/records/{id}
{
"name": "www",
"type": "A",
"line": "默认",
"value": "1.2.3.5"
}按有效套餐延长到期时间
POST
/records/{id}/renew
使用对应主域名下仍然有效的套餐 ID 续费。
{ "monthsId": 456 }删除指定解析记录
DELETE
/records/{id}
删除操作不可撤销。下游系统应在提交前增加二次确认,并避免网络重试造成重复操作。
curl -X DELETE \
'https://your-domain.example/prod-api/open-api/v1/records/789' \
-H 'X-API-Key: dnsr1_你的API密钥'失败时直接看中文提示
所有接口使用统一 JSON 结构。系统会把常见的网络、上游配置和权限问题转换成可读中文,不把底层英文异常直接交给用户。
{
"code": 200,
"msg": "操作成功",
"data": {}
}请求成功
code 为 200,业务数据位于 data 字段。
密钥无效或已关闭
回到个人中心检查 API 是否开启,必要时重新生成密钥。
上游解析服务未配置
请站点管理员先配置并启用对应的上游 DNS 服务。
请求参数填写错误
根据 msg 指出的字段修改后再提交,不要原样反复重试。
请勿重复提交
写入操作正在处理或已完成,请先查询结果再决定是否重试。
服务暂时不可用
稍后再试;若持续出现,请把操作时间和业务 ID 提供给站点管理员。
三个必须遵守的接入原则
- 1
只在服务端调用
不要把密钥放进网页、APP 安装包、浏览器 JavaScript 或公开仓库。
- 2
谨慎设计重试
查询接口可安全重试;创建、续费和删除前,应先查询业务状态并防止重复提交。
- 3
保留脱敏业务日志
记录接口路径、业务 ID、时间和响应码,但绝不能记录完整 API 密钥。