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
| エンタープライズ|200Xレートリミット-リミット: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 - 予期せぬエラー。