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étodoRutaFinalidad
POST/licenses/quoteEstimación y comprobación de derechos; no vinculante.
POST/licenses/requestsCrea una solicitud de licencia (acuerdo).
GET/licensesLista sus acuerdos, filtrables por estado.
GET/licenses/{license_id}Detalle del acuerdo.

Modelos de negocio

business_modelDescripción
MG_RSGarantía mínima más reparto; MG se recupera de RS
PURE_RSReparto puro sin garantía mínima
FLAT_LICENSETarifa fija por periodo
API_FEE_RSTarifa de API o plataforma más reparto
DATA_LICENSELicencia de datos o métricas
UNDECIDEDAú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 active con production_api_enabled: true autoriza 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.