Skip to content

api

REST API

Restore Hubアカウント、サーバー、メンバー、バックアップ、プル、ファイアウォール、ホワイトリスト、ブラックリスト、分析、マーケットプレイスなどへのプログラムアクセス。リクエスト/レスポンスの例を含む完全なエンドポイントリファレンス。

概要

Restore Hub REST APIを使用すると、すべてのプラットフォーム機能にプログラムでアクセスできます。カスタムダッシュボードの構築、他のツールとの統合、ワークフローの自動化、独自のフロントエンドの作成などにご利用ください。

APIのベースURLはhttps://restorehub.net/api/v1。すべてのエンドポイントは認証が必要で、プランごとのレート制限がある。

認証

すべてのAPIリクエストは、BearerトークンとしてAuthorizationヘッダーにAPIキーを含める必要があります。APIキーはアカウント作成時に生成されるUUIDです。ダッシュボードの「設定」→「APIキー」で確認できます。

認証:ベアラ rh_your_api_key_here

ヒント:あなたのAPIキーは、あなたのアカウントと同じ権限を持っています。あなたのAPIキーを持っている人は、あなたができるすべてのアクションを実行できます。秘密にしておき、クライアント側のコードや公開リポジトリでは決して公開しないでください。

料金制限

APIリクエストのレートは10秒ごとに制限されます。制限はプランによって異なります。制限を超えると、APIはHTTP 429 Too Many Requestsを返します。

レートリミットの情報は、ヘッダーを介してすべてのレスポンスに含まれる:

| プラン|10秒あたりのリクエスト数
|---|---|
| フリー|20
| プレミアム|50
| ビジネス|100
| エンタープライズ|200
Xレートリミット-リミット:50
Xレートリミット残:47
X-RateLimit-Reset:1680000010

応答フォーマット

成功したレスポンスはすべて、データ・フィールドを持つJSONです。ページ分割されたエンドポイントには、ページ分割オブジェクトも含まれます。エラー・レスポンスには、エラー文字列と、オプションで検証エラーのための詳細オブジェクトが含まれます。

// 成功
{
  "data":{ ...},
  "pagination":{
    "page":1,
    "制限":25,
    "合計": 142、
    "totalPages":6
  }
}

// エラー
{
  "error":"サーバーが見つかりません"
}

// 検証エラー
{
  "error":"検証に失敗しました、
  "details":{
    "fieldErrors":{ "roleId":[Invalid Discord snowflake"] }、
    "formErrors": { "roleId": ["Invalid Discord snowflake"] }:[]
  }
}

アカウント

アカウント情報、プランの詳細、サブスクリプションのステータス、および現在の限度額を取得します。

GET /api/v1/account

レスポンス
{
  "data":{
    "id":"uuid"、
    "discordId":"123456789012345678",
    "ユーザー名":"johndoe"、
    "displayName":"John Doe"、
    "アバター":"https://cdn.discordapp.com/..."、
    「プラン":"PREMIUM"、
    "mfaEnabled": true、
    "createdAt":"2024-01-15T00:00:00Z",
    "_count":{
      "servers":3,
      "customBots":2,
      "teams":1
    },
    "サブスクリプション":{
      "plan":"PREMIUM"、
      "status":"ACTIVE": "アクティブ"、
      "currentPeriodEnd":"2025-02-15T00:00:00Z",
      "isTrial": false、
      「trialEndsAt": null、
      「cancelledAt": null
    },
    「制限」:{
      "maxServers":10,
      "maxBots":5,
      "maxBackups": 1010,
      "maxStorageBytes":5368709120,
      「pullCooldownMs":3600000,
      "marketplaceFeePercent":12,
      "apiRatePerTenSeconds":50,
      "hasVpnDetection": true、
      「hasAltDetection": true、
      「hasFirewall": true
    }
  }
}

カスタムボット

カスタムボットを一覧表示したり、新しいボットを作成したりできます。ボットトークンとクライアントシークレットは暗号化され、APIレスポンスに返されることはありません。

GET /api/v1/bots

レスポンス:
{
  "data":[
    {
      "id":"uuid": "uuid"、
      "clientId":"123456789012345678",
      "name":「私の検証ボット
      "アバター":"https://cdn.discordapp.com/..."、
      「ステータス":「ONLINE"、
      "activityType":"WATCHING"、
      "activityText":"restorehub.net"、
      "isActive": true、
      "createdAt":"2024-01-15T00:00:00Z",
      updatedAt": "2024-06-01t00:00:00z":"2024-06-01T00:00:00Z"
    }
  ]
}

---

POST /api/v1/bots

リクエスト・ボディ
{
  "botToken":"MTIz..."、
  "clientId":"123456789012345678",
  「clientSecret": "abc123..."、
  "publicKey":"def456..."、
  "redirectUri":"https://restorehub.net/api/callback"、
  "name":"私の検証ボット"
}

レスポンス (201):
{
  "data":{
    "id":"uuid"、
    "clientId":"123456789012345678",
    "name":"私の検証ボット"
    "isActive": true、
    "createdAt":"2024-01-15T00:00:00Z"
  }
}

サーバー - リストと作成

アカウント上のすべてのサーバーを一覧表示(ページ表示)するか、新しいサーバーを作成します。

GET /api/v1/servers?page=1&limit=25

レスポンス
{
  "data":[
    {
      "id":"uuid"、
      "discordGuildId":"123456789012345678",
      "name":「マイコミュニティ
      "アイコン":"https://cdn.discordapp.com/..."、
      「memberCount":5420,
      "verifiedRoleId":"987654321098765432",
      "logChannelId":"111222333444555666",
      "captchaType":"TURNSTILE"、
      "vpnBlockEnabled": true、
      「altDetectEnabled": true、
      「firewallEnabled": true、
      "antiNukeEnabled":false、
      "antiRaidEnabled":false、
      「createdAt": true:"2024-01-15T00:00:00Z",
      "updatedAt": "2024-06-01t00:00:00z":"2024-06-01T00:00:00Z"
    }
  ],
  "pagination":{ "page":1, "limit":25, "total": 3, "totalPages":1 }
}

---

POST /api/v1/servers

リクエスト・ボディ
{
  "discordGuildId":"123456789012345678",
  "customBotId":"uuid-of-your-bot"、
  "name":"マイコミュニティ"
  "verifiedRoleId":"987654321098765432",
  "logChannelId":"111222333444555666"
}

レスポンス(201):
{
  "data":{ "id":"uuid", ...}
}

サーバー詳細 - 取得、更新、削除

GET /api/v1/servers/:id
PUT /api/v1/servers/:id
DELETE /api/v1/servers/:id

警告サーバーの削除は永久に行われます。そのサーバーのすべての検証済みメンバー、バックアップ、ファイアウォール ルール、および分析データは永久に削除されます。

確認済み会員

ページネーション、検索、およびプル可能なフィルタを使用して、サーバーの検証済みメンバーを一覧表示します。

GET /api/v1/servers/:id/members?page=1&limit=25&search=john&pullable=true

バックアップ - リストと作成

GET /api/v1/servers/:id/backups?page=1&limit=25
POST /api/v1/servers/:id/backups

ヒント:バックアップ作成は非同期です。POSTはステータス "queued "で即座に返されます。バックアップの準備ができたら、GETエンドポイントをポーリングして確認してください。

バックアップの復元

POST /api/v1/servers/:id/backups/:backupId/restore

警告チャンネルをリストアすると、ターゲットサーバーの既存のチャンネルがすべて削除されます。これは不可逆です。

メンバー引き抜き

POST /api/v1/servers/:id/pull
GET /api/v1/pulls/:id

ファイアウォールルール

GET /api/v1/servers/:id/firewall
POST /api/v1/servers/:id/firewall
DELETE /api/v1/servers/:id/firewall?ruleId=uuid

ヒントルールの種類:ip、country、asn、fingerprint、user_id、server_id、region。重複したルール(同じタイプ+値)はHTTP 409を返します。

ホワイトリストのルール

GET /api/v1/servers/:id/whitelist
POST /api/v1/servers/:id/whitelist
DELETE /api/v1/servers/:id/whitelist?ruleId=uuid

ブラックリスト

POST /api/v1/servers/:id/blacklist

ブラックリストはユーザー単位です(サーバー単位ではありません)。DiscordユーザーIDをブラックリストに登録すると、すべてのサーバーで認証がブロックされます。

アナリティクス

GET /api/v1/servers/:id/analytics?period=30d

ファネルオブジェクトは、各ステージに到達したベリフィケーションの数を表示します。メンバーがどこで脱落しているかを特定するために使用して下さい。

マーケットプレイス・リスティング

GET /api/v1/marketplace/listings?category=GAMING&sort=rating&page=1&limit=25
POST /api/v1/marketplace/orders
GET /api/v1/marketplace/orders/:id

エンドポイント・リファレンス


|---|---|---|
| GET | /api/v1/account | 認証されたユーザーのアカウント情報、プラン、制限を取得する。
| GET|/api/v1/bots|カスタムボットをリストアップします。
| POST | /api/v1/bots | 新しいカスタムボットを作成する。
| GET|/api/v1/servers|サーバーのリスト(ページ分割)|POST|/api/v1/bots|カスタムボットの新規作成
| POST | /api/v1/servers | 新しいサーバーを作成する。
| GET|/api/v1/servers/:id|サーバーの詳細をカウントと共に取得|PUT|/api/v1/servers
| PUT|/api/v1/servers/:id|サーバー設定の更新(部分的
| DELETE | /api/v1/servers/:id | サーバーとその全データを削除する。
| GET|/api/v1/servers/:id/members|検証済みメンバーのリスト(ページ分割、検索、フィルタリング可能
| GET|/api/v1/servers/:id/backups|サーバーのバックアップを一覧表示(ページ分割
| POST|/api/v1/servers/:id/backups|新規バックアップの作成(非同期
| POST|/api/v1/servers/:id/backups/:backupId/restore|バックアップのリストア(非同期
| POST|/api/v1/servers/:id/pull|メンバーのプルジョブを開始する(非同期)|GET|/api/v1/servers/:id/backups/:backupId/restore
| GET|/api/v1/pulls/:id|プルジョブのステータスと進行状況を取得|POST|/api/v1/servers/:id/pull
| GET|/api/v1/servers/:id/firewall|ファイアウォールルールをリストする
| POST|/api/v1/servers/:id/firewall|ファイアウォールルールを追加する。
| DELETE | /api/v1/servers/:id/firewall?ruleId=x | ファイアウォールルールを削除する。
| GET | /api/v1/servers/:id/whitelist | ホワイトリストのルールをリストする。
| POST | /api/v1/servers/:id/whitelist | ホワイトリストルールを追加する。
| DELETE | /api/v1/servers/:id/whitelist?ruleId=x | ホワイトリストのルールを削除する。
| POST | /api/v1/servers/:id/blacklist | Discordユーザーをブラックリストに入れる。
| GET | /api/v1/servers/:id/analytics | サーバー分析と検証ファネルを取得する。
GET | /api/v1/marketplace/listings | マーケットプレイスのリストを閲覧する(ページ分割、フィルター可能) | POST | /api/v1/servers/:id/analytics
| POST | /api/v1/marketplace/orders | マーケットプレイスオーダーを作成する。
| GET|/api/v1/marketplace/orders/:id|注文のステータスと履行状況を取得する|POST|/api/v1/marketplace/orders/:id|注文を作成する

HTTPステータスコード

| コード|意味
|---|---|
| 200|Success - リソースが返されました。
| 201 | Created - リソースが正常に作成されました。
| 202 | Accepted - 非同期ジョブがキューに入れられた(バックアップ、リストア、プル)
| 400 | Bad Request - 無効な入力または検証エラー。
| 401 | Unauthorized - API キーがないか無効です。
| 403|Forbidden - プランにこの機能が含まれていないか、制限を超えています。
| 404|Not Found - リソースが存在しないか、所有していません。
| 409 | コンフリクト - リソースが重複している(例: ファイアウォールルールが既に存在する)
| 429 | Rate Limited - リクエストが多すぎるか、プルクールダウンが経過していません。
| 500|Internal Server Error - 予期せぬエラー。
REST API — Restore Hub Docs | Restore Hub