API de licencias
Cotice y solicite derechos para distribuir un título en territorios e idiomas. La cotización no es vinculante (license:read); la solicitud inicia un acuerdo real para revisión y firma (license:write).
Endpoints
| Método | Ruta | Finalidad |
|---|---|---|
| POST | /licenses/quote | Estimación y comprobación de derechos; no vinculante. |
| POST | /licenses/requests | Crea una solicitud de licencia (acuerdo). |
| GET | /licenses | Lista sus acuerdos, filtrables por estado. |
| GET | /licenses/{license_id} | Detalle del acuerdo. |
Modelos de negocio
| business_model | Descripción |
|---|---|
MG_RS | Garantía mínima más reparto; MG se recupera de RS |
PURE_RS | Reparto puro sin garantía mínima |
FLAT_LICENSE | Tarifa fija por periodo |
API_FEE_RS | Tarifa de API o plataforma más reparto |
DATA_LICENSE | Licencia de datos o métricas |
UNDECIDED | Aún sin seleccionar; valor previo al acuerdo |
Consulte API de liquidaciones para ver cómo afectan a las liquidaciones.
Cotización frente a solicitud
- Cotización: segura al repetir; devuelve estimación y
availability. No compromete nada. - Solicitud: envía un acuerdo a revisión. Entra en su ciclo de vida y puede requerir contrato firmado antes de
active.
Obtener cotización
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"
}
}Crear solicitud
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"
}
}Una solicitud correcta devuelve HTTP 200. Es idempotente mediante X-NU-Request-Id: los reintentos completados devuelven lo original; un duplicado en curso devuelve 409 conflict.
Ciclo de vida del acuerdo
requested → reviewing → quoted → negotiating → approved → contracting → signed → active → expired
↘ rejected ↘ cancelled- Solo un acuerdo
activeconproduction_api_enabled: trueautoriza reproducción en Production para su título, territorios y episodios.
Listar y filtrar
curl "https://signal-partners.newunivers.ai/v1/licenses?status=active" \
-H "Authorization: Bearer nsp_live_xxx" -H "X-NU-Partner-Id: org_acme"Devuelve data[] de acuerdos sin envoltorio pagination. Tanto lista como detalle incluyen updated_at.
Mantener sincronización (polling)
No hay webhooks. Para detectar cambios como quoted o active, sondee con updated_since. Envíe el mayor updated_at visto para recibir cambios posteriores en orden y avanzar la marca.
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"Si la reproducción devuelve license_not_active, revise aquí status y production_api_enabled del acuerdo.