ライセンスAPI

特定の地域・言語でタイトルを配信する権利の価格を見積もり、要求します。見積もりは拘束力のない推定(license:read)で、リクエストはNUが審査・締結する実契約を開始します(license:write)。

エンドポイント

メソッドパス用途
POST/licenses/quote価格見積もりと権利確認。拘束力なし。
POST/licenses/requestsライセンスリクエスト(契約)を作成します。
GET/licenses保有契約をステータスで絞り込み一覧表示します。
GET/licenses/{license_id}契約詳細です。

ビジネスモデル

business_model説明
MG_RS最低保証+収益分配(MGはRSから回収)
PURE_RS最低保証なしの純粋な収益分配
FLAT_LICENSE期間単位の定額ライセンス料金
API_FEE_RSAPI・プラットフォーム料金+収益分配
DATA_LICENSEデータ・指標のライセンス
UNDECIDED未選択(モデル合意前の既定)

これらのモデルが精算額へ反映される方法は精算APIを参照してください。

見積もりとリクエスト

  • 見積もり — 繰り返し安全に呼び出せ、推定とavailabilityを返します。確定はしません。
  • リクエスト — NU審査用に契約を提出します。契約ライフサイクルに入り、activeになる前に署名済み契約書が必要な場合があります。

見積もりを取得

curl -X POST "https://signal-partners.newunivers.ai/v1/licenses/quote" \
  -H "Authorization: Bearer nsp_live_xxx" \
  -H "X-NU-Partner-Id: org_acme" \
  -H "X-NU-Request-Id: req_license_0001" \
  -H "Content-Type: application/json" \
  -d '{
    "title_id": "ttl_abc",
    "territories": ["KR", "JP"],
    "languages": ["ko", "en"],
    "exclusive": false,
    "resale_allowed": false,
    "expected_monthly_views": 200000,
    "business_model": "MG_RS"
  }'
{
  "data": {
    "result": "auto_quote",
    "availability": {
      "available": true,
      "rights_status": "clear",
      "conflicts": []
    },
    "estimated_terms": {
      "business_model": "mg_rs",
      "mg_amount": 25000,
      "revenue_share_rate": 0.35,
      "flat_license_fee": null,
      "api_fee_monthly": null,
      "currency": "USD"
    },
    "next_step": "submit_license_request"
  }
}

リクエストを作成

curl -X POST "https://signal-partners.newunivers.ai/v1/licenses/requests" \
  -H "Authorization: Bearer nsp_live_xxx" \
  -H "X-NU-Partner-Id: org_acme" \
  -H "Content-Type: application/json" \
  -d '{
    "title_id": "ttl_abc",
    "territories": ["KR"],
    "languages": ["ko"],
    "exclusive": false,
    "business_model": "MG_RS",
    "expected_monthly_views": 200000,
    "message": "Launch on Acme OTT, KR only."
  }'
{
  "data": {
    "license_deal_id": "lic_123",
    "status": "requested",
    "next_step": "nu_internal_review"
  }
}

成功時はHTTP 200を返します。任意のX-NU-Request-Idで冪等となり、完了済み再試行は元のレスポンス、処理中の同時重複は409 conflictを返します。

契約ステータスのライフサイクル

requested → reviewing → quoted → negotiating → approved → contracting → signed → active → expired
                    ↘ rejected                                                            ↘ cancelled
  • production_api_enabled: trueのactive契約だけが、対象タイトル、地域、エピソードセットのProduction再生を認可します。

一覧とフィルター

curl "https://signal-partners.newunivers.ai/v1/licenses?status=active" \
  -H "Authorization: Bearer nsp_live_xxx" -H "X-NU-Partner-Id: org_acme"

契約のdata[]を返し、paginationエンベロープはありません。一覧と単一契約の両方にupdated_atが含まれます。

同期を維持(ポーリング)

Webhookはありません。quotedやactiveなどの状態変更を検出するにはupdated_sinceでこのエンドポイントをポーリングします。確認済み最大のupdated_atを送ると、それ以降の変更だけを昇順で受け取りウォーターマークを進められます。

curl "https://signal-partners.newunivers.ai/v1/licenses?updated_since=2026-06-24T10:00:00Z" \
  -H "Authorization: Bearer nsp_live_xxx" -H "X-NU-Partner-Id: org_acme"

後の再生でlicense_not_activeが返った場合、ここで契約のstatusとproduction_api_enabledを確認します。