身份验证

除POST /partner-applications*和POST /api-keys/bootstrap外,所有受保护的 API 路由都需要 Bearer 密钥。请将密钥保存在服务器端并遵循最小权限原则。详情请参阅安全最佳实践。

请求头

请求头必需示例说明
Authorization是Bearer nsp_live_xxxBearer API 密钥。所有受保护路由均必需。
X-NU-Partner-Id否org_xxx可选断言。如提供,必须与密钥推导出的组织一致。
X-NU-Request-Id否req_01HQ...用于追踪和受支持幂等写入的可选稳定请求 ID。
Accept-Language否ja-JP, en;q=0.8选择供人阅读的 API 错误消息语言。不支持或省略的值将回退为英语。
curl "https://signal-partners.newunivers.ai/v1/catalog/titles" \
  -H "Authorization: Bearer nsp_live_xxxxxxxxxxxx" \
  -H "X-NU-Partner-Id: org_acme" \
  -H "X-NU-Request-Id: req_01HQABCDEF" \
  -H "Accept-Language: ja-JP, en;q=0.8"

Accept-Language仅影响供人阅读的消息。请从Content-Language读取所选语言;缓存必须遵循Vary: Accept-Language。稳定的error.code和details[].issue标记不会随语言变化。

Content-Language: ja
Vary: Accept-Language

Bearer 密钥

请按签发内容原样发送密钥。密钥仅显示一次,绝不能放入浏览器代码、URL 或日志。详情请参阅API 密钥。

X-NU-Partner-Id

组织由 API 密钥安全推导。不匹配的断言会被拒绝并返回 invalid_api_key。除非集成需要显式一致性检查,否则请省略此请求头。

X-NU-Request-Id

请提供稳定值以关联日志,API 会通过 error.request_id 回显该值。该值还为 POST /playback/tokens、POST /licenses/requests 和 POST /api-keys/{id}/rotate 提供幂等性。已完成请求的重试会重放原始响应;仍在处理的并发重复请求返回 409 conflict。

身份验证与授权错误

情况HTTPerror.code
密钥缺失或格式错误401invalid_api_key
未知、过期或环境不匹配的密钥401invalid_api_key
已吊销密钥401api_key_revoked
缺少所需作用域403missing_scope
在仅限 Production 的路由上使用 Sandbox 密钥403production_key_required
组织尚未获批403organization_not_approved
权利、地区或剧集未获授权403license_not_active / territory_not_allowed / episode_not_licensed

401 表示凭据本身不可用。403 表示密钥已识别,但无权执行此操作。详情请参阅错误代码。

作用域

作用域权限
catalog:read读取可见的目录作品、Experience 和剧集。
license:read请求报价并读取授权协议。
license:write创建授权请求。
api_keys:read列出 API 密钥但不含密钥值。
api_keys:write创建、更新、轮换和吊销 API 密钥。
playback:token创建播放令牌,并查看或吊销会话。
events:write发送单个或批量事件。
settlement:read读取 Production 结算单和明细。
settlement:dispute提出结算异议。

请按工作负载分离密钥,并仅授予各组件所需的作用域。api_keys:write 应仅保留在保险库中的运维密钥上,不要授予播放或事件运行时密钥。