サインイン

ライセンス

ライセンスの検証、有効化、デバイス管理のための API

ライセンスの検証、有効化、デバイスの追跡を管理します。

レート制限:ライセンスのエンドポイントには、IP ごとに固定の 60 秒ウィンドウでレート制限が適用されます。上限を超えると、ウィンドウがリセットされるまで Retry-After: 60 ヘッダー付きで 429 Too Many Requests が返されます。

ライセンスの検証

ライセンスキーを検証して有効化します。このエンドポイントは、IP アドレスごとに 1 分あたり 5 リクエストにレート制限されています。

エンドポイント: POST /api/licenses/validate

パラメーター型必須説明
license_keystringはい検証するライセンスキー
device_idstringはい有効化するデバイスの、変わらない一意の識別子。同じデバイスには毎回同じ値を送信してください。この値によって、そのデバイスのシートが確保され、再確保されます
curl -X POST "$BASE_URL/api/licenses/validate" \
  -H "Content-Type: application/json" \
  -d '{"license_key":"XXXX-XXXX-XXXX-XXXX","device_id":"device_abc123"}'

レスポンス(成功):

{
  "valid": true,
  "license": {
    "id": "uuid",
    "status": "active",
    "product": { "id": "uuid", "name": "studio", "features": ["client_api", "api_keys"] },
    "activation_date": "2024-01-01T00:00:00Z",
    "expiration_date": "2025-12-31T23:59:59Z",
    "current_activations": 1
  }
}

レスポンス(エラー):

{
  "statusCode": 400,
  "statusMessage": "Invalid licence key or validation failed"
}
ステータス条件
400license_key または device_id が欠落している、空である、長すぎる、あるいはキーが不明、無効、期限切れである
409ライセンスのすべてのシートが既に他のデバイスで使用されており、再確保できるほど長くアイドル状態のシートがない
429レート制限を超過した。レート制限を参照
セキュリティ上、列挙攻撃を防ぐため、ライセンス検証のエラーはすべて同じ汎用メッセージを返します。そのため 400 では、どのフィールドに問題があったかは示されません。再試行する前に、license_key と device_id の両方が存在し、空でないことを確認してください。

ライセンスの無効化

認証が必要

ライセンス所有者の session_token セッション Cookie が必要です(認証を参照)。無効化できるのは、自分が所有するライセンスのみです。

特定のデバイスまたはすべてのデバイスからライセンスを無効化します。

エンドポイント: POST /api/licenses/deactivate

パラメーター型必須説明
license_keystringはい無効化するライセンスキー
device_idstringいいえ無効化する特定のデバイス(すべてのデバイスを対象にする場合は省略)
curl -X POST "$BASE_URL/api/licenses/deactivate" \
  -b cookies.txt \
  -H "Content-Type: application/json" \
  -d '{"license_key":"XXXX-XXXX-XXXX-XXXX","device_id":"device_abc123"}'

レスポンス:

{
  "success": true,
  "message": "Device deactivated successfully",
  "deactivated_count": 1,
  "remaining_activations": 4
}
名前とは異なり、remaining_activations は無効化後も引き続き使用中のシート数、つまりライセンス上で有効なまま残っている個別のデバイスの数です。空きシート数ではありません。そのため、すべてのデバイスを無効化すると 0 が返されます。空きシート数は、GET /api/licenses/status から取得した activation_limit を使って、activation_limit - remaining_activations として計算してください。device_id を指定しない場合、メッセージは「All devices deactivated successfully」となります。deactivated_count は、この呼び出しで解放されたシート数です。

ライセンスのステータス

認証が必要

ライセンス所有者の session_token セッション Cookie が必要です(認証を参照)。確認できるのは、自分が所有するライセンスのみです。

ライセンスの現在のステータスを確認します。IP ごとに 1 分あたり 30 リクエストにレート制限されています。

エンドポイント: GET /api/licenses/status

パラメーター型必須説明
license_keyqueryはい確認するライセンスキー
curl -X GET "$BASE_URL/api/licenses/status?license_key=XXXX-XXXX-XXXX-XXXX" \
  -b cookies.txt

レスポンス:

{
  "license": {
    "id": "uuid",
    "license_key": "XXXX-XXXX-XXXX-XXXX",
    "status": "active",
    "purchase_date": "2024-01-01T00:00:00Z",
    "activation_date": "2024-01-01T00:00:00Z",
    "expiration_date": "2025-12-31T23:59:59Z",
    "days_until_expiration": 365,
    "activation_limit": 5,
    "current_activations": 2,
    "available_activations": 3,
    "is_expired": false,
    "is_active": true,
    "product": { "id": "uuid", "name": "Studio 8K", "description": "...", "features": [] },
    "user": { "id": "uuid", "first_name": "Jane", "last_name": "Doe", "email": "user@example.com" }
  },
  "active_devices": [
    {
      "id": "uuid",
      "device_id": "device_abc123",
      "device_name": "Studio Mac",
      "platform": "macos",
      "app_version": "3.1.2",
      "activated_at": "2024-01-01T00:00:00Z",
      "last_seen_at": "2024-01-02T09:00:00Z",
      "ip_address": "192.168.1.1"
    }
  ]
}

ライセンスのライフサイクル

レート制限

ライセンスのエンドポイントには、IP ごとに固定の 60 秒ウィンドウでレート制限が適用されます。429 の場合は、次の 1 つのヘッダーが返されます。

ヘッダー説明
Retry-Afterウィンドウがリセットされるまでの秒数(常に 60)

エンドポイント別のレート制限

エンドポイントリクエスト数 / 60 秒ティア
/api/licenses/validate5厳格
/api/licenses/status30標準
/api/licenses/deactivate30標準

POST /api/licenses/validate には「厳格」の制限が 2 回適用されます。1 回は IP ごと、もう 1 回は送信された license_key をキーとして適用されるため、1 つのキーに多数の IP から集中的にリクエストを送ることはできません。

上限を超えると、60 秒ウィンドウの残りの時間は 429 Too Many Requests が返されます。ブロック時間が段階的に延びたり、エスカレートしたりすることはありません。

ライセンスの種類

ライセンスは、現在のプランのティアのいずれかに対応します。各ティアの正式な機能と上限は、料金ページに表示されている内容です。プランを比較をご覧ください。

ティア対象下位ティアからの主な追加機能
free永続的な無料プラン、カード不要、有効期限なしシンプルなプレゼンリモコン:1 ルーム、1 人の発表者、透かし入りの画面共有、Stream Deck。その他の機能はすべてロックされています
presenter発表者Timer Pro、チャット、描画、マルチホスト、NDI
pro(Studio HD)個人のプロデューサーコーラー、カスタムルーム、動画共有、Studio の基本機能
ultra(Studio 4K)パワーユーザーと配信者ルーム数無制限、保存できるブランドカラーテーマ、レイヤー、ISO 収録、リプレイ、より幅広い Studio ツールセット
studio(Studio 8K)制作チームルームレイアウトデザイナー、ホワイトラベルブランディング、Client API、API キー、カスタムドメイン、シート単位でプールされるチームライセンス
enterprise大規模組織と調達部門SSO、SCIM、カスタムチームロール、シート単位の年間契約
古いライセンスには、従来の製品名が残っている場合があります。それらのライセンスは購入時の利用権をそのまま維持し、API によって上記のティアに対応付けられます。