ライセンス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_RS | API・プラットフォーム料金+収益分配 |
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 ↘ cancelledproduction_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を確認します。