ムームードメイン API v2 (2.0.0)

Download OpenAPI specification:

ムームードメインの外部連携用 API です。

サンドボックス環境

MeAPI を試す環境として https://api-sandbox.muumuu-domain.com を公開しています。本番DBとは分離されており、テスト用 Personal Access Token(PAT)を curl で自己発行できます。

Quickstart

  1. サンドボックス用のテストアカウントを発行する

    curl -X POST https://api-sandbox.muumuu-domain.com/sandbox/signup \
      -H 'Content-Type: application/json' \
      -d '{"email":"partner@example.com"}'

    応答例: 201 { "data": { "muu_id": "xxxxxxxxxxxx", "password": "<password>" } }

    muu_idpassword はレスポンス受信時に必ず保存してください。再発行はできません。

  2. 受け取った muu_idpassword で PAT を発行する

    curl -X POST https://api-sandbox.muumuu-domain.com/sandbox/personal-access-tokens \
      -u '<muu_id>:<password>' \
      -H 'Content-Type: application/json' \
      -d '{"name":"my-test","scopes":["domains:read"],"expires_in":604800}'

    応答例: 201 { "data": { "token": "muu_pat_sandbox_xxx", ... } }

  3. 発行された PAT を Authorization: Bearer ヘッダで MeAPI に渡す

    curl https://api-sandbox.muumuu-domain.com/api/v2/me/domains \
      -H 'Authorization: Bearer muu_pat_sandbox_xxx'

制約・上限

  • 許可スコープ: domains:read, domains:search, dns:read, dns:write
  • expires_in のデフォルト 7 日 / 最大 30 日(無期限不可)
  • 発行上限: 1 muu_id あたり同時保持 20 件、24 時間あたり新規発行 10 件
  • muu_pat_sandbox_ プレフィックスを持つ PAT は本番環境(muumuu-domain.com)では受け付けられません

Domains

ドメイン管理

保有ドメインの一覧を取得する

認証ユーザーが保有するドメインの一覧を取得します。 ドメイン名(FQDN)、状態、契約情報などを含みます。

fqdn パラメータでFQDN完全一致のドメインを検索できます(例: ?fqdn=example.com)。 state パラメータでドメインの状態(有効・無効など)をフィルタリングできます。 ページネーションに対応しており、pagepage-size パラメータで取得範囲を指定できます。

認証トークンからアカウントを自動識別するため、自分が保有するドメインのみ取得可能です。

Authorizations:
jwtoauth2
query Parameters
page
integer >= 1
Default: 1
Example: page=1

ページ番号(1始まり)

page-size
integer [ 1 .. 100 ]
Default: 20
Example: page-size=20

1ページあたりの件数(最大100件)

fqdn
string <= 253 characters
Example: fqdn=example.com

FQDN(完全修飾ドメイン名)で完全一致フィルタリング。 指定した場合、そのFQDNに一致するドメインのみを返します。 例: ?fqdn=example.com, ?fqdn=example.co.jp

state
string
Enum: "active" "inactive" "pending-setup" "pending-transfer" "pending-bulk"

ドメイン状態でフィルタリング。

  • active: 有効なドメイン
  • inactive: 無効なドメイン
  • pending-setup: セットアップ前
  • pending-transfer: 移管申請中
  • pending-bulk: 一括取得待ち

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

ドメインの詳細情報を取得する

指定したドメインの詳細情報を取得します。 ドメイン名、状態、レジストラ、WHOIS代理公開設定、自動更新設定、契約情報などを含みます。

認証トークンからアカウントを自動識別し、自分が保有するドメインのみ取得可能です。

Authorizations:
jwtoauth2
path Parameters
domain-id
required
string <= 11 characters ^MU[0-9]{8}$
Example: MU00000001

ドメインID(MU + 8桁の数字、例: MU00000001)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

DNS Records

DNSレコード管理

ドメインのDNSレコード一覧を取得する

指定したドメインのDNSレコード一覧を取得します。 A、AAAA、CNAME、MX、TXT、NS、ALIASレコードを含みます(SOAレコードは除外)。

type パラメータでレコードタイプ(A、MX等)をフィルタリングできます。 fqdn パラメータで特定のFQDNに完全一致するレコードのみ取得できます。

認証トークンからアカウントを自動識別し、自分が保有するドメインのDNSレコードのみ取得可能です。

Authorizations:
jwtoauth2
path Parameters
domain-id
required
string <= 11 characters ^MU[0-9]{8}$
Example: MU00000001

ドメインID(MU + 8桁の数字、例: MU00000001)

query Parameters
type
string (DnsRecordType)
Enum: "A" "AAAA" "CNAME" "MX" "TXT" "NS" "ALIAS" "SRV" "CAA"
Example: type=A

レコードタイプでフィルタリング。 指定可能な値: A, AAAA, CNAME, MX, TXT, NS, ALIAS

fqdn
string [ 1 .. 253 ] characters ^[a-zA-Z0-9._-]+$
Example: fqdn=www.example.com.

FQDN(完全修飾ドメイン名)でフィルタリング(完全一致、末尾にドット付き)

page
integer >= 1
Default: 1
Example: page=1

ページ番号(1始まり)

page-size
integer [ 1 .. 100 ]
Default: 20
Example: page-size=20

1ページあたりの件数(最大100件)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

ドメインにDNSレコードを作成する

指定したドメインに新しいDNSレコードを作成します。

作成可能なレコードタイプ: A, AAAA, CNAME, MX, TXT, NS, ALIAS。 MXレコードの場合は priority フィールドが必須です(0〜65535)。 CNAMEレコードは同一FQDNに他のレコードタイプと共存できません(RFC 1034準拠)。

認証トークンからアカウントを自動識別し、自分が保有するドメインのみ操作可能です。

Authorizations:
jwtoauth2
path Parameters
domain-id
required
string <= 11 characters ^MU[0-9]{8}$
Example: MU00000001

ドメインID(MU + 8桁の数字、例: MU00000001)

Request Body schema: application/json
required
fqdn
required
string [ 1 .. 255 ] characters ^([a-zA-Z0-9_]([a-zA-Z0-9_-]{0,61}[a-zA-Z0-9_...

完全修飾ドメイン名(FQDN)。 末尾にドット(.)を含む。

type
required
string (DnsRecordType)
Enum: "A" "AAAA" "CNAME" "MX" "TXT" "NS" "ALIAS" "SRV" "CAA"

DNSレコードタイプ

value
required
string (DnsRecordValue) [ 1 .. 4096 ] characters

レコード値。Route53の ResourceRecords[].Value に相当。 レコードタイプに応じた形式で指定すること。

バリデーションパターン(実装時に使用):

  • A: IPv4アドレス形式 ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ 例: 192.0.2.1
  • AAAA: IPv6アドレス形式 ^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$ または省略形 例: 2001:db8::1
  • CNAME/NS: FQDN形式 ^([a-zA-Z0-9_]([a-zA-Z0-9_-]{0,61}[a-zA-Z0-9_])?\.)+$ 例: mail.example.com.
  • MX: FQDN形式(priorityフィールドと組み合わせ) 例: mail.example.com.
  • TXT: 任意の文字列(適切なエスケープが必要) 例: v=spf1 include:_spf.example.com ~all
  • ALIAS: FQDN形式(CNAMEと同様だが、他のレコードタイプと共存可能) 例: www.example.com.
priority
integer <int32> [ 0 .. 65535 ]

優先度(MXレコード用)

Responses

Request samples

Content type
application/json
{
  • "fqdn": "www.example.com.",
  • "type": "A",
  • "value": "192.0.2.1",
  • "ttl": 3600
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

DNSレコードを更新する

指定したDNSレコードを部分更新します。 valuettlpriority(MXレコードのみ)を変更できます。

fqdntype は変更できません。変更が必要な場合は削除後に再作成してください。

認証トークンからアカウントを自動識別し、自分が保有するドメインのみ操作可能です。

Authorizations:
jwtoauth2
path Parameters
domain-id
required
string <= 11 characters ^MU[0-9]{8}$
Example: MU00000001

ドメインID(MU + 8桁の数字、例: MU00000001)

record-id
required
integer <int64>
Example: 1

DNSレコードID(整数)

Request Body schema: application/json
required
non-empty
value
string (DnsRecordValue) [ 1 .. 4096 ] characters

レコード値。Route53の ResourceRecords[].Value に相当。 レコードタイプに応じた形式で指定すること。

バリデーションパターン(実装時に使用):

  • A: IPv4アドレス形式 ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ 例: 192.0.2.1
  • AAAA: IPv6アドレス形式 ^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$ または省略形 例: 2001:db8::1
  • CNAME/NS: FQDN形式 ^([a-zA-Z0-9_]([a-zA-Z0-9_-]{0,61}[a-zA-Z0-9_])?\.)+$ 例: mail.example.com.
  • MX: FQDN形式(priorityフィールドと組み合わせ) 例: mail.example.com.
  • TXT: 任意の文字列(適切なエスケープが必要) 例: v=spf1 include:_spf.example.com ~all
  • ALIAS: FQDN形式(CNAMEと同様だが、他のレコードタイプと共存可能) 例: www.example.com.
priority
integer <int32> [ 0 .. 65535 ]

優先度(MXレコード用)

Responses

Request samples

Content type
application/json
{
  • "value": "192.0.2.2",
  • "ttl": 7200
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

DNSレコードを削除する

指定したDNSレコードを削除します。 SOAレコードは削除できません。

認証トークンからアカウントを自動識別し、自分が保有するドメインのみ操作可能です。

Authorizations:
jwtoauth2
path Parameters
domain-id
required
string <= 11 characters ^MU[0-9]{8}$
Example: MU00000001

ドメインID(MU + 8桁の数字、例: MU00000001)

record-id
required
integer <int64>
Example: 1

DNSレコードID(整数)

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

FQDNを指定してDNSレコード一覧を取得する

ドメインのFQDN(完全修飾ドメイン名)を指定して、そのドメインのDNSレコード一覧を取得します。 ドメインIDが不明な場合に、FQDNから直接DNSレコードを検索するために使用します。

domain-fqdn パラメータは必須です。 type パラメータでレコードタイプ(A、MX等)をフィルタリングできます。

認証トークンからアカウントを自動識別し、自分が保有するドメインのDNSレコードのみ取得可能です。

Authorizations:
jwtoauth2
query Parameters
domain-fqdn
required
string <= 253 characters
Example: domain-fqdn=example.com

検索対象のドメインFQDN(完全修飾ドメイン名)。完全一致で検索します。 例: example.com, example.co.jp

type
string (DnsRecordType)
Enum: "A" "AAAA" "CNAME" "MX" "TXT" "NS" "ALIAS" "SRV" "CAA"
Example: type=A

レコードタイプでフィルタリング。 指定可能な値: A, AAAA, CNAME, MX, TXT, NS, ALIAS

fqdn
string [ 1 .. 253 ] characters ^[a-zA-Z0-9._-]+$
Example: fqdn=www.example.com.

DNSレコードのFQDN(完全修飾ドメイン名)でフィルタリング(完全一致)

page
integer >= 1
Default: 1
Example: page=1

ページ番号(1始まり)

page-size
integer [ 1 .. 100 ]
Default: 20
Example: page-size=20

1ページあたりの件数(最大100件)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Domain Purchase

ドメイン購入(有料操作)

ドメイン購入の見積もり(金額・空き状況・クレカ状態)を取得する

ドメインの購入前に、以下の情報を確認します:

  • ドメインの空き状況
  • 登録料金(サービス維持調整費・消費税込み)
  • クレジットカードの登録状態
  • 購入トークン(purchase-token)

ドメインを購入する前に、必ずこの見積もりAPIを呼び出してください。 見積もりで取得した purchase-token.token は購入実行APIで必要です(有効期限: 10分)。

クレジットカードが未登録の場合は、カード登録画面のURLが返されます。 ユーザーにカード登録を案内してください。

このAPIはOAuth認証(domains:purchase スコープ)専用です。 JWT認証(コントロールパネル)からは利用できません。

Authorizations:
oauth2
Request Body schema: application/json
required
fqdn
required
string [ 1 .. 253 ] characters

購入したいドメイン名(例: example.com)

term
integer [ 1 .. 10 ]
Default: 1

契約期間(年)。省略時は1年。

Responses

Request samples

Content type
application/json
{
  • "fqdn": "example.com",
  • "term": 1
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

ドメイン購入を開始する(実行すると課金が発生します)

見積もりAPIで取得した purchase-token を使用してドメイン購入を開始します。

レスポンスの checkout-url をユーザーのブラウザで開いてもらい、購入確認を完了してください。 購入の進捗は GET /api/v2/me/domain-purchase/{purchase-id}/status でポーリングしてください。

必ず事前に見積もりAPIで金額をユーザーに提示し、同意を得てから実行してください。 checkout-url の有効期限は10分です。レート制限: 10件/日。

Authorizations:
oauth2
Request Body schema: application/json
required
purchase-token
required
string [ 10 .. 500 ] characters

見積もりAPIで取得した購入トークン。 ドメイン名・金額・有効期限がサーバー側で検証されます。 有効期限(10分)を過ぎている場合はエラーになります。

Responses

Request samples

Content type
application/json
{
  • "purchase-token": "tok_xxxxxxxxxxxxxxxxxxxxxxxx"
}

Response samples

Content type
application/json
{}

ドメインを 1 リクエストで購入する(事前申請制/実行すると課金が発生します)

事前申請が必要なエンドポイント

本 API は通常アカウントでは利用できません。 ご利用には事前にムームードメインへの利用申請と承認が必要です。 未申請または未承認のアカウントから呼び出した場合は 403 Forbidden が返ります。

利用をご希望の場合は お問い合わせフォーム よりご連絡ください。


概要

申請が承認されたアカウント専用の、ブラウザ画面遷移なしで決済とドメイン登録を 1 リクエストで完結するドメイン購入エンドポイント。

見積もりAPI(POST /api/v2/me/domain-purchase/quote)で取得した purchase-token を リクエストボディに含めてください。

必ず事前に見積もりAPIで金額をユーザーに提示し、同意を得てから実行してください。 purchase-token の有効期限は10分、同一トークンの再送は409エラーになります(リプレイ防止)。

認証要件

本 API は muu_pat_ プレフィックスの Personal Access Token (PAT) でのみ利用可能で、 domains:purchase スコープが必須です。 JWT 認証(コントロールパネル)や OAuth Doorkeeper の通常アクセストークンは 403 Forbidden になります。

Authorizations:
oauth2
Request Body schema: application/json
required
purchase-token
required
string [ 10 .. 500 ] characters

見積もりAPIで取得した購入トークン。 ドメイン名・金額・有効期限がサーバー側で検証されます。 有効期限(10分)を過ぎている場合はエラーになります。

Responses

Request samples

Content type
application/json
{
  • "purchase-token": "tok_xxxxxxxxxxxxxxxxxxxxxxxx"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

ドメイン購入の進捗を取得する

購入セッションのステータスをポーリングで確認します。 購入API(POST /api/v2/me/domain-purchase)で取得した purchase-id を指定してください。

ポーリング推奨間隔: 3〜5秒

ステータス遷移:

  • pending → ユーザーがまだブラウザで確認していない
  • processing → 3DS認証中または決済処理中
  • completed → 購入完了(domain-id, contract-id が確定)
  • failed → 購入失敗(failure-reason で原因を確認)

このAPIはOAuth認証(domains:purchase スコープ)専用です。

Authorizations:
oauth2
path Parameters
purchase_id
required
integer
Example: 1

購入セッションID(purchase-domain APIのレスポンスで取得)

Responses

Response samples

Content type
application/json
Example
{
  • "data": {
    }
}

Personal Access Tokens

Personal Access Token 管理

自分の PAT 一覧を取得する

認証ユーザーが発行した Personal Access Token の一覧を取得します。 トークン本体は返しません。

JWT 認証のみ対応しています(PAT 認証は使用不可)。

created_at の降順で返します。

Authorizations:
jwt

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

自分の PAT を失効する

認証ユーザーが発行した Personal Access Token を失効させます。

失効後、当該 PAT を Authorization: Bearer に指定したリクエストは 401 を返します。

JWT 認証のみ対応しています(PAT 認証は使用不可・自己増殖防止)。 他アカウントが発行した PAT を指定した場合は 404 を返します(IDOR 対策)。 既に失効済みの PAT を指定した場合も 204 を返します(冪等)。

Authorizations:
jwt
path Parameters
id
required
integer >= 1

PAT の内部 ID

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Payment History

支払い履歴

支払い履歴の一覧を取得する

ドメイン支払いとオプション支払いの2系統のデータを統合し、支払い日の降順で返します。

フィルタ条件(期間・金額・サービス種別・ドメイン名)とページネーションに対応しています。

domain-name フィルタを指定した場合、オプション支払いは結果から除外されます (ドメイン名はドメイン支払いにのみ紐づくため)。

認証トークンからアカウントを自動識別するため、自分の支払い履歴のみ取得可能です。

Authorizations:
jwtoauth2
query Parameters
page
integer [ 1 .. 50 ]
Default: 1
Example: page=1

ページ番号(1〜50)

page-size
integer [ 1 .. 100 ]
Default: 20
Example: page-size=20

1ページあたりの件数(1〜100。範囲外はクランプ)

date-from
string <date>
Example: date-from=2026-01-01

支払い日の開始日(YYYY-MM-DD)

date-to
string <date>
Example: date-to=2026-12-31

支払い日の終了日(YYYY-MM-DD)。date-from以降の日付を指定すること。

amount-min
integer >= 0
Example: amount-min=1000

金額の下限(税込、0以上の整数)

amount-max
integer >= 0
Example: amount-max=5000

金額の上限(税込、0以上の整数)。amount-min以上の値を指定すること。

service-type
string (PaymentHistoryServiceType)
Enum: "domain" "google_workspace" "wordpress" "domain_lock" "website_scan" "ai_site_builder" "muumuu_server" "mail" "auction" "backorder" "tmch" "sunrise" "land_rush" "premium_domain" "ssl" "website_builder" "ikazuchi_ms365"
Example: service-type=domain

サービス種別でフィルタ。

  • domain: ドメイン
  • google_workspace: Google Workspace
  • wordpress: WordPress
  • その他のオプション種別
domain-name
string <= 253 characters
Example: domain-name=example

ドメイン名の部分一致検索。指定時はオプション支払いは除外される。

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}