控制台 BFF
构建时从公开 REST 接口定义的 `console` 标签生成:方法、路径、参数、请求体、响应与 curl。
分组概览
本页由公开 REST 接口定义在构建时生成:标签 console,共 80 个操作(全量 189 个)。鉴权、信封与分页约定见 REST API 总览.
| 方法 | 路径 | 摘要 |
|---|---|---|
POST | /console/auth/login | Console login |
POST | /console/auth/logout | Console logout |
POST | /console/auth/mfa | Complete the MFA challenge |
GET | /console/auth/sso/authorize | Start an OIDC authorization-code flow |
POST | /console/auth/sso/exchange | Exchange an OIDC authorization code for a session |
GET | /console/auth/sso/status | Report SSO availability |
GET | /console/billing | Billing settlement overview |
GET | /console/billing/invoices/{invoiceId}/csv | Download an invoice as CSV |
POST | /console/billing/invoices/{invoiceId}/pay | Settle an invoice with the sandbox provider |
GET | /console/billing/plans | List subscription plans |
POST | /console/billing/subscriptions | Change the subscription plan |
DELETE | /console/billing/subscriptions | Cancel the subscription |
PUT | /console/billing/tax-profile | Save the tax profile |
POST | /console/billing/topups | Record a sandbox top-up |
GET | /console/extensions | List the built-in extension registry |
GET | /console/me | Current account with projects |
GET | /console/notifications | Notification preferences, inbox summary and channels |
GET | /console/notifications/channels | Delivery channel availability |
GET | /console/notifications/inbox | List the in-app inbox |
POST | /console/notifications/inbox/read-all | Mark every inbox message read |
POST | /console/notifications/inbox/{messageId}/read | Mark one inbox message read or unread |
PUT | /console/notifications/preferences | Update notification preferences |
POST | /console/notifications/test | Send a test notification |
GET | /console/organisation | Organisation overview |
PATCH | /console/organisation | Rename the organisation |
POST | /console/organisation/members | Invite an organisation member |
DELETE | /console/organisation/members/{accountId} | Remove an organisation member |
POST | /console/organisation/projects/{projectId}/transfer | Transfer project ownership |
GET | /console/projects | List my projects |
POST | /console/projects | Create a project (returns secrets once) |
GET | /console/projects/cap | Project cap for the account |
GET | /console/projects/{projectId} | Project detail |
PATCH | /console/projects/{projectId} | Update project |
GET | /console/projects/{projectId}/alerts | List usage alert rules and deliveries |
POST | /console/projects/{projectId}/alerts | Create a usage alert rule |
POST | /console/projects/{projectId}/alerts/evaluate | Evaluate every alert rule of the project |
PATCH | /console/projects/{projectId}/alerts/{ruleId} | Update a usage alert rule |
DELETE | /console/projects/{projectId}/alerts/{ruleId} | Delete a usage alert rule |
POST | /console/projects/{projectId}/alerts/{ruleId}/evaluate | Evaluate one alert rule |
GET | /console/projects/{projectId}/audit | Audit trail |
GET | /console/projects/{projectId}/certificates | List the App Certificate table |
POST | /console/projects/{projectId}/certificates | Add a secondary App Certificate |
DELETE | /console/projects/{projectId}/certificates/{certificateId} | Delete a certificate row |
POST | /console/projects/{projectId}/certificates/{certificateId}/disable | Disable a certificate |
POST | /console/projects/{projectId}/certificates/{certificateId}/promote | Promote a certificate to primary |
GET | /console/projects/{projectId}/collaborators | List collaborators |
POST | /console/projects/{projectId}/collaborators | Add a collaborator |
PATCH | /console/projects/{projectId}/collaborators/{accountId} | Assign a built-in or custom role to a member |
DELETE | /console/projects/{projectId}/collaborators/{accountId} | Remove a collaborator |
GET | /console/projects/{projectId}/extensions | List project extensions |
DELETE | /console/projects/{projectId}/extensions/{extensionId} | Uninstall an extension |
POST | /console/projects/{projectId}/extensions/{extensionId}/enable | Enable or disable an installed extension |
POST | /console/projects/{projectId}/extensions/{extensionId}/install | Install a built-in extension |
POST | /console/projects/{projectId}/extensions/{extensionId}/run | Run a built-in extension |
POST | /console/projects/{projectId}/keys/rotate | Rotate customer secret / app certificate |
GET | /console/projects/{projectId}/overview | Dashboard overview |
GET | /console/projects/{projectId}/roles | List built-in and custom roles |
POST | /console/projects/{projectId}/roles | Create a custom role |
PATCH | /console/projects/{projectId}/roles/{roleId} | Update a custom role |
DELETE | /console/projects/{projectId}/roles/{roleId} | Delete a custom role |
POST | /console/projects/{projectId}/services | Activate/deactivate services |
GET | /console/projects/{projectId}/statements/{period} | Billing statement for one month (JSON envelope or CSV) |
POST | /console/projects/{projectId}/token | Token generator |
GET | /console/projects/{projectId}/tokens/verify | Verify a token from the console |
GET | /console/projects/{projectId}/webhook | Get webhook config |
PUT | /console/projects/{projectId}/webhook | Configure webhook |
DELETE | /console/projects/{projectId}/webhook | Delete webhook config |
GET | /console/projects/{projectId}/webhook/deliveries | Delivery log |
POST | /console/projects/{projectId}/webhook/deliveries/{deliveryId}/replay | Replay a delivery |
GET | /console/projects/{projectId}/xla/monthly | XLA monthly report (one project) |
GET | /console/security | Account security overview |
POST | /console/security/mfa/disable | Disable MFA |
POST | /console/security/mfa/enroll | Start TOTP enrollment |
POST | /console/security/mfa/recovery-codes | Regenerate recovery codes |
POST | /console/security/mfa/verify | Verify the TOTP code and enable MFA |
POST | /console/security/password | Change the console password |
PUT | /console/security/sso | Configure the OIDC connection |
POST | /console/security/sso/test | Run OIDC discovery against the configured issuer |
GET | /console/status | Regional service status (XLA) |
GET | /console/xla/monthly | XLA monthly report (account-wide) |
操作详情
POST /console/auth/login
Console login
鉴权:无需鉴权
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
email | string | 是 | format email |
password | string | 是 |
{
"email": "owner@ni-meet.local",
"password": "ni-meet-demo"
}响应
| 状态码 | 说明 / schema |
|---|---|
200 | oneOf: a session (direct sign-in) or an MFA challenge — narrow on the presence of token — any |
401 | Missing/invalid credentials — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/auth/login" \
-H "Content-Type: application/json" \
-d '{"email":"owner@ni-meet.local","password":"ni-meet-demo"}'POST /console/auth/logout
Console logout
鉴权:无需鉴权
响应
| 状态码 | 说明 / schema |
|---|---|
204 | logged out |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/auth/logout"POST /console/auth/mfa
Complete the MFA challenge
Exchanges the short-lived challenge token plus a TOTP/recovery code for a session (#29).
鉴权:无需鉴权
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the session minted after the second factor verified — object{ token, expiresAt, account } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/auth/mfa"GET /console/auth/sso/authorize
Start an OIDC authorization-code flow
Returns the authorization URL and the single-use state (#29).
鉴权:无需鉴权
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the authorize URL, the CSRF state and the discovery endpoints — object{ authorizeUrl, state, issuer, discovery } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/auth/sso/authorize"POST /console/auth/sso/exchange
Exchange an OIDC authorization code for a session
Discovery + token + userinfo against the configured issuer (#29).
鉴权:无需鉴权
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the session minted after the SSO code exchanged — object{ token, expiresAt, account } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/auth/sso/exchange"GET /console/auth/sso/status
Report SSO availability
Issuers with an enabled OIDC connection (#29).
鉴权:无需鉴权
响应
| 状态码 | 说明 / schema |
|---|---|
200 | whether any organisation exposes SSO, the redirect URI and the local stub state — object{ available, issuers, redirectUri, stub } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/auth/sso/status"GET /console/billing
Billing settlement overview
Invoices, top-ups, plans, tax profile and the sandbox provider state (#15).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | provider capability, plans, subscription, invoices, top-ups, charges, tax profile and totals — BillingOverview |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/billing" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/billing/invoices/{invoiceId}/csv
Download an invoice as CSV
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
invoiceId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the invoice as CSV (RFC 4180): a header row followed by one row per line item; delivered as a file download |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/billing/invoices/invoiceId/csv" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/billing/invoices/{invoiceId}/pay
Settle an invoice with the sandbox provider
Records a simulated charge; no money moves (#15).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
invoiceId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the settled invoice, the (simulated) charge and the provider disclaimer — object{ invoice, charge, provider, disclaimer } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/billing/invoices/invoiceId/pay" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/billing/plans
List subscription plans
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the price list the deployment prices against — object{ plans } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/billing/plans" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/billing/subscriptions
Change the subscription plan
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the active subscription — object{ subscription } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/billing/subscriptions" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"DELETE /console/billing/subscriptions
Cancel the subscription
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the cancelled subscription — object{ subscription } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X DELETE "$NIMEET_API_BASE/console/billing/subscriptions" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"PUT /console/billing/tax-profile
Save the tax profile
Stored unverified: no tax authority is called (#15).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the stored tax profile (never validated against an authority) — object{ taxProfile } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X PUT "$NIMEET_API_BASE/console/billing/tax-profile" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/billing/topups
Record a sandbox top-up
Records a sandbox top-up: no real money moves. The amount is validated in integer cents, so a third decimal place is rejected rather than rounded.
鉴权:控制台会话(Bearer)
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
amount | any | 是 | top-up amount in major units (e.g. 12.34 or "12.34"). Money wire migration stage 1 (ADR-0016 §6): a JSON number is accepted during the compatibility window, a decimal string is the forward-compatible form, and stage 3 will accept only the string. At most 2 decimal places — a third decimal place is rejected with invalid_parameter, never rounded. |
note | string | 长度 0..200 |
{
"amount": "string",
"note": "string"
}响应
| 状态码 | 说明 / schema |
|---|---|
201 | the sandbox top-up, its charge and the updated totals — object{ topUp, charge, totals } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/billing/topups" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION" \
-H "Content-Type: application/json" \
-d '{"amount":"string","note":"string"}'GET /console/extensions
List the built-in extension registry
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | built-in extension registry — this deployment distributes no third-party packages — object{ extensions, note } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/extensions" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/me
Current account with projects
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | current account, projects, usage, roles, organisation, quota, notifications, security — object |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/me" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/notifications
Notification preferences, inbox summary and channels
Includes the honest email availability state (#30).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | notification preferences, event catalogue, channel availability, unread count and the latest 20 inbox messages — object{ preferences, catalogue, channels, unread, latest } |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/notifications" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/notifications/channels
Delivery channel availability
smtp_not_configured is reported explicitly (#30).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | inbox/email channel availability and the reason each one is on or off — object{ inbox, email } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/notifications/channels" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/notifications/inbox
List the in-app inbox
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | inbox messages plus the total unread count — object{ messages, unread } |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/notifications/inbox" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/notifications/inbox/read-all
Mark every inbox message read
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | how many messages were marked read — object{ updated } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/notifications/inbox/read-all" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/notifications/inbox/{messageId}/read
Mark one inbox message read or unread
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
messageId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the message with its new read state — object{ message } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/notifications/inbox/messageId/read" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"PUT /console/notifications/preferences
Update notification preferences
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the stored preferences plus the current channel availability — object{ preferences, channels } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X PUT "$NIMEET_API_BASE/console/notifications/preferences" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/notifications/test
Send a test notification
Delivery records state delivered/suppressed/failed per channel (#30).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | one delivery row per channel plus the channel availability — object{ deliveries, channels } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/notifications/test" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/organisation
Organisation overview
Members, projects, SSO summary and the account project cap (#28).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | organisation, caller role, members, projects, SSO view and the project cap — object{ organisation, callerRole, members, projects, sso, projectCap } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/organisation" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"PATCH /console/organisation
Rename the organisation
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the organisation after the rename — object{ organisation, callerRole, members, projects, sso, projectCap } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X PATCH "$NIMEET_API_BASE/console/organisation" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/organisation/members
Invite an organisation member
No outbound email; the initial password is handed over out-of-band (#28).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
201 | the invited member, whether a password was set and whether a new account was created — object{ member, invitePasswordSet, accountCreated } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/organisation/members" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"DELETE /console/organisation/members/{accountId}
Remove an organisation member
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
accountId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
204 | member removed |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X DELETE "$NIMEET_API_BASE/console/organisation/members/$ACCOUNT_ID" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/organisation/projects/{projectId}/transfer
Transfer project ownership
Target becomes owner, caller is demoted to admin (#28).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the project after the ownership transfer — object{ project } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
404 | Resource not found — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/organisation/projects/$PROJECT_ID/transfer" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects
List my projects
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | projects visible to the caller — object{ projects } |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects
Create a project (returns secrets once)
鉴权:控制台会话(Bearer)
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | |
authMode | enum(token | appid) | ||
tokenTtlSeconds | integer | ||
privilegeTtlSeconds | integer | ||
services | object{ recording, streaming, analytics } | ||
quotas | object{ recordingConcurrent, streamingConcurrent, maxChannels } |
{
"name": "demo-project",
"services": {
"recording": true,
"streaming": true
}
}响应
| 状态码 | 说明 / schema |
|---|---|
201 | created project; appCertificate and customerSecret are returned once — object{ project, appCertificate, customerSecret } |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION" \
-H "Content-Type: application/json" \
-d '{"name":"demo-project","services":{"recording":true,"streaming":true}}'GET /console/projects/cap
Project cap for the account
{ limit, used, remaining, enforced } (#34).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | project count cap and current usage — object{ limit, used, remaining, enforced } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/cap" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}
Project detail
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | project detail with webhook, role, credentials metadata, rest keys, rotation and quota — object |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"PATCH /console/projects/{projectId}
Update project
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the updated project — object{ project } |
调用示例
curl -s -X PATCH "$NIMEET_API_BASE/console/projects/$PROJECT_ID" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}/alerts
List usage alert rules and deliveries
Rules, delivery log and the metric/channel catalogue (#33).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | alert rules, delivery log, the metric/channel catalogue and the project region — object{ rules, deliveries, catalogue, projectRegion } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/alerts" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/alerts
Create a usage alert rule
Threshold, comparison, evaluation window and delivery channels (#33).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
201 | the created rule — object{ rule } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/alerts" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/alerts/evaluate
Evaluate every alert rule of the project
Deterministic evaluation used by the console and the acceptance tests (#33).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the evaluation report and the rule snapshot after evaluation — object{ report, rules } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/alerts/evaluate" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"PATCH /console/projects/{projectId}/alerts/{ruleId}
Update a usage alert rule
Partial update (#33).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
ruleId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the updated rule — object{ rule } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X PATCH "$NIMEET_API_BASE/console/projects/$PROJECT_ID/alerts/ruleId" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"DELETE /console/projects/{projectId}/alerts/{ruleId}
Delete a usage alert rule
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
ruleId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the id of the deleted rule — object{ deleted } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X DELETE "$NIMEET_API_BASE/console/projects/$PROJECT_ID/alerts/ruleId" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/alerts/{ruleId}/evaluate
Evaluate one alert rule
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
ruleId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the evaluation report and the rule snapshot after evaluation — object{ report, rules } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/alerts/ruleId/evaluate" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}/audit
Audit trail
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | audit entries; verification and chain appear when ?verify=1 — object{ total, entries, verification, chain } |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/audit" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}/certificates
List the App Certificate table
Primary/secondary/disabled rows with fingerprints; secrets are never listed (#7).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | certificate rows (fingerprint only — never the secret), rotation state, legend and token-validation note — object{ certificates, rotation, legend, tokenValidation } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/certificates" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/certificates
Add a secondary App Certificate
Returns the certificate material exactly once (#7).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
201 | the new secondary certificate; secret is returned exactly once — object{ certificate, notice } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/certificates" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"DELETE /console/projects/{projectId}/certificates/{certificateId}
Delete a certificate row
Primary cannot be deleted; a disabled or secondary row can (#7).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
certificateId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | whether the certificate was removed, plus a notice — object{ removed, notice } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X DELETE "$NIMEET_API_BASE/console/projects/$PROJECT_ID/certificates/certificateId" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/certificates/{certificateId}/disable
Disable a certificate
Tokens signed by it stop validating immediately (#7).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
certificateId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the disabled certificate and a notice — object{ certificate, notice } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/certificates/certificateId/disable" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/certificates/{certificateId}/promote
Promote a certificate to primary
The previous primary keeps verifying during the overlap window (#7).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
certificateId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the promoted certificate, the previous primary and a notice — object{ certificate, previous, notice } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/certificates/certificateId/promote" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}/collaborators
List collaborators
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | collaborators, caller role, role matrix and custom roles — object{ collaborators, caller, roles, customRoles, permissions, inviteableRoles } |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/collaborators" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/collaborators
Add a collaborator
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
email | string | 是 | |
name | string | ||
role | enum(admin | developer | viewer) | 是 |
{
"email": "dev@example.com",
"name": "Dev",
"role": "developer"
}响应
| 状态码 | 说明 / schema |
|---|---|
201 | the new collaborator plus whether an initial password was set — object |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/collaborators" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION" \
-H "Content-Type: application/json" \
-d '{"email":"dev@example.com","name":"Dev","role":"developer"}'PATCH /console/projects/{projectId}/collaborators/{accountId}
Assign a built-in or custom role to a member
Custom role assignment overrides the built-in role permissions (#26).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
accountId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the collaborator after the role change — object{ collaborator } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X PATCH "$NIMEET_API_BASE/console/projects/$PROJECT_ID/collaborators/$ACCOUNT_ID" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"DELETE /console/projects/{projectId}/collaborators/{accountId}
Remove a collaborator
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
accountId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
204 | removed |
调用示例
curl -s -X DELETE "$NIMEET_API_BASE/console/projects/$PROJECT_ID/collaborators/$ACCOUNT_ID" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}/extensions
List project extensions
Installed built-in extensions with enablement and run counters (#31).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | extension catalogue with this project install state — object{ extensions, note } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/extensions" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"DELETE /console/projects/{projectId}/extensions/{extensionId}
Uninstall an extension
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
extensionId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
204 | the install record was removed |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X DELETE "$NIMEET_API_BASE/console/projects/$PROJECT_ID/extensions/extensionId" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/extensions/{extensionId}/enable
Enable or disable an installed extension
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
extensionId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the project and the updated install record — object{ project, install } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/extensions/extensionId/enable" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/extensions/{extensionId}/install
Install a built-in extension
Config is validated against the manifest schema (#31).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
extensionId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
201 | the install record and the extension manifest — object{ install, extension } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/extensions/extensionId/install" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/extensions/{extensionId}/run
Run a built-in extension
Produces a downloadable artefact with a sha256 (#31).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
extensionId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the run artifact (text output, checksum, truncation flag) — object{ artifact } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/extensions/extensionId/run" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/keys/rotate
Rotate customer secret / app certificate
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
scope | enum(customer | certificate | all) | 默认 "all" |
{
"scope": "all"
}响应
| 状态码 | 说明 / schema |
|---|---|
200 | new key material (secrets returned once) and the resulting rotation state — object{ customerId, customerSecret, appCertificate, previousCertificateAcceptedUntil, rotation, notice } |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/keys/rotate" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION" \
-H "Content-Type: application/json" \
-d '{"scope":"all"}'GET /console/projects/{projectId}/overview
Dashboard overview
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | dashboard overview: project, role, permissions, live counts, 24h usage, quality snapshot, service counters, webhook health, billing block and scheduler stats — object |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/overview" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}/roles
List built-in and custom roles
Includes the permission catalogue and member assignments (#26).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | built-in and custom role views, permission catalogue, role matrix, caller, members and inviteable roles — object |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/roles" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/roles
Create a custom role
Named permission set scoped to the project (#26).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
201 | the created custom role — object{ role } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/roles" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"PATCH /console/projects/{projectId}/roles/{roleId}
Update a custom role
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
roleId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the updated custom role — object{ role } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X PATCH "$NIMEET_API_BASE/console/projects/$PROJECT_ID/roles/roleId" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"DELETE /console/projects/{projectId}/roles/{roleId}
Delete a custom role
Refused while the role is assigned (#26).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
roleId | path | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the id and name of the deleted role — object{ deleted } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X DELETE "$NIMEET_API_BASE/console/projects/$PROJECT_ID/roles/roleId" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/services
Activate/deactivate services
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the project with its services switched — object{ project } |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/services" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}/statements/{period}
Billing statement for one month (JSON envelope or CSV)
Split out of /overview (ADR-0005 §5.3.3). :period is YYYY-MM or current; ?format=csv returns text/csv. Requires billing:read.
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
period | path | 是 | string | pattern ^(\d{4}-\d{2}|current)$ |
format | query | enum(json | csv) |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the statement envelope (json) or the statement as CSV (text/csv) — object{ exportedAt, checksumAlgorithm, statement } |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/statements/period?format=json" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/token
Token generator
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | issued token — TokenIssueResponse |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/token" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}/tokens/verify
Verify a token from the console
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
token | query | 是 | string |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | oneOf: { valid: true, payload } or { valid: false, error } — any |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/tokens/verify?token=%24RTC_TOKEN" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}/webhook
Get webhook config
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | webhook endpoint (secret masked) and the subscribable event names — object{ configured, endpoint, availableEvents } |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/webhook" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"PUT /console/projects/{projectId}/webhook
Configure webhook
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the endpoint after configuration; a null endpoint leaves only configured: false — object{ configured, url, events, enabled } |
调用示例
curl -s -X PUT "$NIMEET_API_BASE/console/projects/$PROJECT_ID/webhook" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"DELETE /console/projects/{projectId}/webhook
Delete webhook config
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the endpoint is gone — object{ configured } |
调用示例
curl -s -X DELETE "$NIMEET_API_BASE/console/projects/$PROJECT_ID/webhook" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}/webhook/deliveries
Delivery log
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
state | query | string | ||
limit | query | integer |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | webhook delivery log — object{ total, deliveries } |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/webhook/deliveries?state=running&limit=50" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/projects/{projectId}/webhook/deliveries/{deliveryId}/replay
Replay a delivery
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
deliveryId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the delivery after the replay attempt — WebhookDelivery |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/webhook/deliveries/$DELIVERY_ID/replay" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/projects/{projectId}/xla/monthly
XLA monthly report (one project)
Same monthly aggregates scoped to one project (#32 companion).
鉴权:控制台会话(Bearer)
参数
| 名称 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
projectId | path | 是 | string | 长度 0..128 |
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the monthly XLA report scoped to one project — XlaMonthReport |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/projects/$PROJECT_ID/xla/monthly" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/security
Account security overview
MFA state, password policy, SSO config and recent security events (#29).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | MFA/password/SSO state, the security event feed and the account identity — object{ mfa, password, sso, events, account } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/security" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/security/mfa/disable
Disable MFA
Requires a valid TOTP or recovery code (#29).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | MFA is now disabled for the account — object{ enabled } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/security/mfa/disable" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/security/mfa/enroll
Start TOTP enrollment
Returns the base32 secret, otpauth URL and recovery codes (#29).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | enrollment material: the TOTP secret, its otpauth URL and the recovery codes (each returned once) — object{ secret, otpauthUrl, recoveryCodes } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/security/mfa/enroll" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/security/mfa/recovery-codes
Regenerate recovery codes
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the new recovery code set, returned once — object{ recoveryCodes } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/security/mfa/recovery-codes" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/security/mfa/verify
Verify the TOTP code and enable MFA
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | MFA is now enabled for the account — object{ enabled, recoveryCodesRemaining } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/security/mfa/verify" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/security/password
Change the console password
Enforces the deployment password policy (#29).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the password changed at the given instant — object{ changed, at, revokedSessions } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/security/password" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"PUT /console/security/sso
Configure the OIDC connection
Per organisation (#29).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the organisation SSO view after the update (clientSecret is never echoed) — object{ sso } |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X PUT "$NIMEET_API_BASE/console/security/sso" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"POST /console/security/sso/test
Run OIDC discovery against the configured issuer
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | oneOf: discovery succeeded (ok: true) or the probe failed (ok: false + error) — any |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X POST "$NIMEET_API_BASE/console/security/sso/test" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/status
Regional service status (XLA)
Health derived from observed telemetry only (#32).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | regional service status report plus the projects the caller can see — object |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/status" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"GET /console/xla/monthly
XLA monthly report (account-wide)
Monthly quality and telemetry-availability aggregates across the account (#32 companion).
鉴权:控制台会话(Bearer)
响应
| 状态码 | 说明 / schema |
|---|---|
200 | the account-wide monthly XLA report — XlaMonthReport |
400 | Invalid parameter — Error |
401 | Missing/invalid credentials — Error |
403 | Banned or service not enabled — Error |
调用示例
curl -s -X GET "$NIMEET_API_BASE/console/xla/monthly" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"本分组用到的 Schema
BillingOverview — object
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
provider | object | 是 | |
plans | array<object> | 是 | |
subscription | any | 是 | |
invoices | array<object> | 是 | |
topUps | array<object> | 是 | |
charges | array<object> | 是 | |
taxProfile | any | 是 | |
totals | object{ outstanding, paid, credit, currency } | 是 | |
generatedAt | string | 是 | format date-time |
BillingPlan — object
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | string | 是 | |
name | string | 是 | |
pricePerMonth | number | 是 | monthly list price in major units (see x-money-scale) |
currency | string | ISO-4217 currency code;pattern ^[A-Z]{3}$ | |
includedMinutes | number | 是 | metered minutes included before overage |
description | string | 是 | |
features | array<string> | 是 |
BillingProvider — object
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
kind | enum(sandbox | live) | 是 | |
live | boolean | 是 | |
configured | boolean | 是 | |
currency | string | 是 | ISO-4217 currency code;pattern ^[A-Z]{3}$ |
taxRatePercent | number | 是 | |
disclaimer | string | 是 | |
capabilities | object{ payInvoice, topUp, subscribe } | 是 |
BillingTotals — object{ outstanding, paid, credit, currency }
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
outstanding | number | 是 | invoiced but unpaid amount |
paid | number | 是 | settled amount |
credit | number | 是 | unconsumed top-up credit |
currency | string | 是 | ISO-4217 currency code;pattern ^[A-Z]{3}$ |
Error — object{ code, message, reason, sdkCode, details }
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
code | string | 是 | stable machine code, see errors.json |
message | string | 是 | |
reason | string | ||
sdkCode | integer | Agora-aligned client error number | |
details | object |
Invoice — object
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | string | 是 | |
projectId | string | null | 是 | |
projectName | string | 是 | |
period | string | 是 | billing period label, e.g. 2026-10 |
currency | string | 是 | ISO-4217 currency code;pattern ^[A-Z]{3}$ |
subtotal | number | 是 | amount before tax |
tax | number | 是 | tax amount |
total | number | 是 | amount due |
status | enum(open | paid | void) | 是 | |
issuedAt | string | 是 | format date-time |
paidAt | string | null | 是 | format date-time |
chargeId | string | null | 是 | |
lines | array<object{ type, minutes, amount }> | 是 |
InvoiceLine — object{ type, minutes, amount }
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
type | string | 是 | |
minutes | number | 是 | |
amount | number | 是 | line amount |
PaymentCharge — object
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | string | 是 | |
kind | enum(invoice | topup) | 是 | |
referenceId | string | 是 | |
amount | number | 是 | charged amount |
currency | string | 是 | ISO-4217 currency code;pattern ^[A-Z]{3}$ |
provider | enum(sandbox) | 是 | |
status | enum(succeeded) | 是 | |
simulated | boolean | 是 | |
createdAt | string | 是 | format date-time |
Project — object
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | string | 是 | |
appId | string | 是 | |
customerId | string | 是 | |
name | string | 是 | |
authMode | enum(token | appid) | 是 | |
status | enum(active | suspended) | 是 | |
tokenTtlSeconds | integer | 是 | |
privilegeTtlSeconds | integer | 是 | |
services | object{ recording, streaming, analytics } | 是 | |
quotas | object{ recordingConcurrent, streamingConcurrent, maxChannels } | 是 | |
createdAt | string | 是 | format date-time |
updatedAt | string | 是 | format date-time |
Quotas — object{ recordingConcurrent, streamingConcurrent, maxChannels }
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
recordingConcurrent | integer | 是 | |
streamingConcurrent | integer | 是 | |
maxChannels | integer | 是 | 0 = unlimited |
Services — object{ recording, streaming, analytics }
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
recording | boolean | 是 | |
streaming | boolean | 是 | |
analytics | boolean | 是 |
Subscription — object{ planId, status, startedAt, currentPeriodEnd, pricePerMonth, includedMinutes }
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
planId | string | 是 | |
status | enum(active | cancelled) | 是 | |
startedAt | string | 是 | format date-time |
currentPeriodEnd | string | 是 | format date-time |
pricePerMonth | number | 是 | subscription price in major units |
includedMinutes | number | 是 |
TaxProfile — object{ legalName, country, taxId, address, updatedAt, status }
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
legalName | string | 是 | |
country | string | 是 | ISO-3166 alpha-2 |
taxId | string | 是 | |
address | string | 是 | |
updatedAt | string | 是 | format date-time |
status | enum(unverified) | 是 | this deployment never validates the tax id against an authority |
TokenIssueResponse — object
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
appId | string | 是 | |
channelName | string | 是 | |
rtcToken | string | 是 | |
rtcUid | integer | 是 | 1..2147483647 |
role | enum(host | audience) | 是 | |
privileges | array<string> | 是 | |
controlToken | string | Opaque control-plane token for REST diagnostics/renewal. TokenIssueResult.controlToken is optional; toResult() always sets it. | |
mediaRoom | string | SFU room name when the media adapter namespaces by App ID (TokenIssueResult.mediaRoom). | |
expireAt | string | 是 | format date-time |
privilegeExpireAt | string | 是 | format date-time |
TopUp — object
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | string | 是 | |
amount | number | 是 | credited amount |
currency | string | 是 | ISO-4217 currency code;pattern ^[A-Z]{3}$ |
status | enum(succeeded) | 是 | |
provider | enum(sandbox) | 是 | |
chargeId | string | 是 | |
note | string | 是 | |
createdAt | string | 是 | format date-time |
WebhookDelivery — object
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | string | 是 | |
projectId | string | 是 | |
envelope | object{ noticeId, productId, eventType, notifyMs, sid, payload } | 是 | |
url | string | 是 | |
state | enum(pending | delivering | delivered | failed | dropped) | 是 | |
attempts | integer | 是 | |
maxAttempts | integer | 是 | |
nextAttemptAt | string | null | 是 | format date-time |
lastStatusCode | integer | null | 是 | |
lastError | string | null | 是 | |
createdAt | string | 是 | format date-time |
updatedAt | string | 是 | format date-time |
XlaMetricSet — object
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
samples | integer | 是 | |
joinAttempts | integer | 是 | |
joinSuccessRate | number | null | 是 | joinSuccess / joinAttempt samples; null when there is no sample |
joinWithin5sRate | number | null | 是 | |
videoFreezeRate | number | null | 是 | |
audioFreezeRate | number | null | 是 | |
networkDelayMs | number | null | 是 | |
availability | number | null | 是 | telemetry availability: observed 5-minute buckets / buckets in the month |
observedBuckets | integer | 是 | |
expectedBuckets | integer | 是 |
XlaMonthReport — object
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
month | string | 是 | YYYY-MM |
from | string | 是 | format date-time |
to | string | 是 | format date-time |
scope | object{ kind, projectId, projectName } | 是 | |
metrics | object | 是 | |
projects | array<any> | 是 | |
insufficient | boolean | 是 | |
reason | string | null | 是 | |
note | string | 是 | how each metric is computed (no modelled percentages) |
generatedAt | string | 是 | format date-time |
XlaProjectRow — any
无字段声明。