NRNIC API

Web管理画面と同じ操作(ドメインの追加・削除、DNSレコードの管理)を、REST API経由でプログラムから実行できます。

概要

すべてのエンドポイントはJSON形式でリクエスト・レスポンスをやり取りします。認証には下記のAPIキーが必要です。ページ分割やレート制限は現時点ではありません。

ベースURL

https://ns.nrnic.com/api

認証

APIキーはアカウント設定から発行できます。発行したキーはその場でしか表示されないため、必ず安全な場所に保存してください。

すべてのリクエストに、以下のように Authorization ヘッダーを付与してください。

Authorization: Bearer nrnic_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

セキュリティに関する注意

APIキーはパスワードと同様の機密情報です。公開リポジトリやクライアントサイドのJavaScriptには含めず、サーバーサイドから安全に利用してください。漏えいした場合はアカウント設定から速やかに削除(失効)し、新しいキーを発行してください。

エラーレスポンス

エラー時は該当するHTTPステータスコード(401/404/409/422/500など)とともに、以下の形式でJSONを返します。

{
  "error": {
    "code": "domain_not_found",
    "message": "Domain not found."
  }
}

エンドポイント一覧

メソッド パス 説明
GET/api/domainsログイン中ユーザーのドメイン一覧を取得
POST/api/domainsドメインを追加
GET/api/domains/{id}ドメインの詳細(NS同期状況・委任状況を含む)を取得
DELETE/api/domains/{id}ドメインを削除
POST/api/domains/{id}/resyncDNSゾーンをすべてのネームサーバー(ns1〜ns4)へ再送信
POST/api/domains/{id}/delegation-check委任状況(NS切り替え済みか)を確認
GET/api/domains/{id}/recordsDNSレコード一覧を取得
POST/api/domains/{id}/recordsDNSレコードを追加
PUT/api/domains/{id}/records/{record_id}DNSレコードを更新
DELETE/api/domains/{id}/records/{record_id}DNSレコードを削除

使用例

ドメイン

# ログイン中ユーザーのドメイン一覧を取得curl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

# ドメインを追加curl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"fqdn": "example.com"}'

# ドメインを削除curl -s -X DELETE https://ns.nrnic.com/api/domains/123 \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

DNSレコード

# DNSレコードを追加curl -s https://ns.nrnic.com/api/domains/123/records \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"type": "A", "name": "@", "content": "192.0.2.1", "ttl": 3600}'

# DNSレコードを更新curl -s -X PUT https://ns.nrnic.com/api/domains/123/records/456 \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"type": "A", "name": "@", "content": "192.0.2.2", "ttl": 3600}'

# DNSレコードを削除curl -s -X DELETE https://ns.nrnic.com/api/domains/123/records/456 \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

DNSレコードのフィールド

typeレコード種別。A / AAAA / CNAME / MX / TXT / NS / SRV / CAA のいずれか。
nameホスト名(サブドメイン部)。ゾーン頂点は "@"。
contentレコードの値(IPアドレス・ターゲットホスト名など)。
ttlTTL(秒)。60〜604800。省略時は3600。
priorityMX・SRVレコードの優先度(0〜65535)。
weightSRVレコードの重み(0〜65535)。
portSRVレコードのポート番号(0〜65535)。