DNSR1开发者文档
开发者中心 · API V1

把域名解析能力接入你的系统

使用独立 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 获取一条属于当前账号的解析详情。

路径参数:id认证:必需数据范围:当前账号
创建解析

提交一条新的解析记录

POST

/records

创建前先通过域名和套餐查询接口获得当前有效的 ID。

字段类型是否必填说明
domainNameIdNumber必填主域名 ID,通过 /domains 获取
monthsIdNumber必填套餐 ID,通过 /domains/{domainId}/plans 获取
nameString必填主机记录,例如 www、api
typeString必填解析类型,以 /record-types 返回值为准
lineString可选解析线路,默认填写“默认”
valueString必填记录值,例如 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. 1

    只在服务端调用

    不要把密钥放进网页、APP 安装包、浏览器 JavaScript 或公开仓库。

  2. 2

    谨慎设计重试

    查询接口可安全重试;创建、续费和删除前,应先查询业务状态并防止重复提交。

  3. 3

    保留脱敏业务日志

    记录接口路径、业务 ID、时间和响应码,但绝不能记录完整 API 密钥。