方法路径摘要认证
GET/v1/admin/analytics/blocked-ip-countCount distinct client IPs blocked by the global firewall or CC auto-bans登录会话
GET/v1/admin/analytics/blocked-ip-trendRead the hourly distinct client IPs blocked by the global firewall登录会话
GET/v1/admin/analytics/connections/dead-lettersList durable analytics connections dead-letter receipts登录会话
GET/v1/admin/analytics/connections/dead-letters/{dead_letter_id}Read one durable analytics connections dead-letter receipt登录会话
GET/v1/admin/analytics/connections/retentionRead finalized connections retention facts for a tenant subscription登录会话
GET/v1/admin/analytics/hourly-trendRead a platform or explicitly selected tenant hourly trend登录会话
GET/v1/admin/analytics/l4-realtime—登录会话
GET/v1/admin/analytics/logs/accessList access logs for one explicitly selected tenant登录会话
GET/v1/admin/analytics/logs/access/exportsList durable access-log exports owned by the calling account for the target tenant登录会话
POST/v1/admin/analytics/logs/access/exportsCreate a snapshot-bound access-log export for one target tenant登录会话
GET/v1/admin/analytics/logs/access/exports/{export_id}—登录会话
GET/v1/admin/analytics/logs/access/exports/{export_id}/download—登录会话
POST/v1/admin/analytics/logs/access/exports/{export_id}/download-grants—登录会话
GET/v1/admin/analytics/logs/block-eventsList security block events for one explicitly selected tenant登录会话
GET/v1/admin/analytics/logs/blocks/currentList current ACL blocks across the customer control plane登录会话
GET/v1/admin/analytics/logs/blocks/current-countCount current ACL blocks by site across the customer control plane登录会话
POST/v1/admin/analytics/logs/blocks/current/{block_id}/unlockUnlock one current ACL block for an explicitly selected tenant登录会话
GET/v1/admin/analytics/logs/blocks/historyList audited unlock history across the customer control plane登录会话
GET/v1/admin/analytics/logs/cc-coordinationList cross-node CC coordination states of every tenant, optionally narrowed to one tenant or site登录会话
POST/v1/admin/analytics/logs/cc-coordination/{state_id}/releaseRelease one exact cross-node CC state after a false-positive decision登录会话
GET/v1/admin/analytics/logs/{kind}/geo-evidence/{event_id}Reconcile one tenant log fact against a verified GeoIP catalog登录会话
GET/v1/admin/analytics/market-securityList relayed market supply attack log lines of any tenant登录会话
GET/v1/admin/analytics/site-monitoringRead one tenant's site monitoring as a platform administrator登录会话
GET/v1/admin/analytics/site-quality-diagnosticsRead one tenant's quality diagnostics from the platform scope登录会话
GET/v1/admin/analytics/site-realtimeRead platform-wide or one tenant's finalized site realtime facts登录会话
GET/v1/admin/analytics/summaryRead a platform or explicitly selected tenant analytics summary登录会话
GET/v1/admin/analytics/top/{dimension}Page through a platform or explicitly selected tenant ranking登录会话

契约文件:api/control-analytics.openapi.yaml api/openapi/v1/control.yaml api/control-l4-realtime.openapi.yaml api/control-analytics-logs.openapi.yaml api/control-analytics-geo.openapi.yaml api/control-market-security.openapi.yaml api/control-analytics-realtime.openapi.yaml api/control-quality-diagnostics.openapi.yaml

接口详情

GET /v1/admin/analytics/blocked-ip-count

Count distinct client IPs blocked by the global firewall or CC auto-bans

operationId
getPlatformAnalyticsBlockedIPCount
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Requires a platform-scoped identity with sites.read or platform.admin. Counts distinct client_ip values from global_firewall block events and CC temporary_ban events in the left-closed, right-open window and is bounded by one ingestion snapshot. It is not the current ACL cardinality.

参数

getPlatformAnalyticsBlockedIPCount 参数
名称位置类型必填说明
fromquerystring(date-time)是RFC3339 instant. After UTC normalization it must be exactly hour aligned and earlier than to.
toquerystring(date-time)是Exclusive RFC3339 instant. After UTC normalization it must be exactly hour aligned. The window may not exceed 31 days.
tenant_idquerystring(uuid)否Platform route only. Omit for all tenants.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—

响应

getPlatformAnalyticsBlockedIPCount 响应
状态码说明
200Distinct client IPs blocked by global firewall events or auto-banned by CC rules in the normalized UTC window.

字段:blocked_ip_count: integer(uint64) meta: QueryMetadata

400analytics_invalid_request
401analytics_authentication_required
403analytics_permission_denied or analytics_scope_forbidden
408analytics_request_cancelled
502analytics_storage_rejected, analytics_storage_invalid_response, or analytics_response_too_large
503analytics_storage_unavailable or analytics_realtime_evidence_unavailable; no zero-value data is substituted. site-realtime with query_version=3 returns partial coverage instead of analytics_realtime_evidence_unavailable for unsettled hours; dependency failures remain 503.
504analytics_query_timeout

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/blocked-ip-trend

Read the hourly distinct client IPs blocked by the global firewall

operationId
getPlatformAnalyticsBlockedIPTrend
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Requires a platform-scoped identity with sites.read or platform.admin. Each returned UTC bucket contains the distinct client_ip count from global_firewall block events, bounded by one ingestion snapshot.

参数

getPlatformAnalyticsBlockedIPTrend 参数
名称位置类型必填说明
fromquerystring(date-time)是RFC3339 instant. After UTC normalization it must be exactly hour aligned and earlier than to.
toquerystring(date-time)是Exclusive RFC3339 instant. After UTC normalization it must be exactly hour aligned. The window may not exceed 31 days.
tenant_idquerystring(uuid)否Platform route only. Omit for all tenants.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—

响应

getPlatformAnalyticsBlockedIPTrend 响应
状态码说明
200Hourly distinct client IPs blocked by global firewall events.

字段:data: array<BlockedIPTrendPoint> meta: QueryMetadata

400analytics_invalid_request
401analytics_authentication_required
403analytics_permission_denied or analytics_scope_forbidden
408analytics_request_cancelled
502analytics_storage_rejected, analytics_storage_invalid_response, or analytics_response_too_large
503analytics_storage_unavailable or analytics_realtime_evidence_unavailable; no zero-value data is substituted. site-realtime with query_version=3 returns partial coverage instead of analytics_realtime_evidence_unavailable for unsettled hours; dependency failures remain 503.
504analytics_query_timeout

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/connections/dead-letters

List durable analytics connections dead-letter receipts

operationId
listPlatformAnalyticsConnectionsDeadLetters
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read platform.admin

说明(契约原文)

Requires a revocable platform Bearer session with sites.read and platform.admin. An optional tenant_id narrows the digest-only durable receipt projection to one tenant. Raw payloads are never returned.

参数

listPlatformAnalyticsConnectionsDeadLetters 参数
名称位置类型必填说明
tenant_idquerystring(uuid)否Optional platform scope narrowing to one canonical tenant UUID.
limitqueryinteger否—
after_sequencequeryinteger(uint64)否Exclusive decimal JetStream dead-letter stream sequence cursor.

响应

listPlatformAnalyticsConnectionsDeadLetters 响应
状态码说明
200Digest-only durable DLQ receipts ordered by dead-letter stream sequence.

字段:items: array<ConnectionsDeadLetterItem> next_after_sequence?: integer(uint64)

400connections_dead_letter_invalid_request
401connections_dead_letter_authentication_required
403connections_dead_letter_permission_denied
404connections_dead_letter_not_found
408connections_dead_letter_request_timeout
502connections_dead_letter_invalid_response or connections_dead_letter_response_too_large
503connections_dead_letter_unavailable; no zero-value receipt is substituted.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/connections/dead-letters/{dead_letter_id}

Read one durable analytics connections dead-letter receipt

operationId
getPlatformAnalyticsConnectionsDeadLetter
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read platform.admin

说明(契约原文)

Requires a revocable platform Bearer session with sites.read and platform.admin. The response is a digest-only durable receipt and never includes raw payload or secret fields.

参数

getPlatformAnalyticsConnectionsDeadLetter 参数
名称位置类型必填说明
dead_letter_idpathstring是—

响应

getPlatformAnalyticsConnectionsDeadLetter 响应
状态码说明
200One digest-only durable DLQ receipt.

字段:item: ConnectionsDeadLetterItem

400connections_dead_letter_invalid_request
401connections_dead_letter_authentication_required
403connections_dead_letter_permission_denied
404connections_dead_letter_not_found
408connections_dead_letter_request_timeout
502connections_dead_letter_invalid_response or connections_dead_letter_response_too_large
503connections_dead_letter_unavailable; no zero-value receipt is substituted.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/connections/retention

Read finalized connections retention facts for a tenant subscription

operationId
getPlatformAnalyticsConnectionsRetention
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read platform.admin

说明(契约原文)

Requires a revocable platform Bearer session with sites.read and platform.admin. Tenant and subscription scope are mandatory and every returned fact is finalized, evidence-bound, and ordered by UTC period.

参数

getPlatformAnalyticsConnectionsRetention 参数
名称位置类型必填说明
tenant_idquerystring(uuid)是Exact tenant scope for the platform retention route.
subscription_idquerystring(uuid)是Package subscription authority captured at event time.
fromquerystring(date-time)是Inclusive canonical UTC RFC3339 instant.
toquerystring(date-time)是Exclusive canonical UTC RFC3339 instant; the window may not exceed 31 days.
limitqueryinteger否—

响应

getPlatformAnalyticsConnectionsRetention 响应
状态码说明
200Finalized connections facts in ascending period order.

字段:items: array<ConnectionsRetentionItem>

400retention_invalid_request
401retention_authentication_required
403retention_permission_denied
408retention_request_timeout
502retention_invalid_response or retention_response_too_large
503retention_unavailable; no zero-value fact is substituted.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/hourly-trend

Read a platform or explicitly selected tenant hourly trend

operationId
getPlatformAnalyticsHourlyTrend
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Requires a platform-scoped identity with sites.read or platform.admin. Buckets are UTC hours and only buckets containing events are returned.

参数

getPlatformAnalyticsHourlyTrend 参数
名称位置类型必填说明
fromquerystring(date-time)是RFC3339 instant. After UTC normalization it must be hour aligned and earlier than to.
toquerystring(date-time)是Exclusive RFC3339 instant. It must be hour aligned after UTC normalization; the window is at most 31 days.
tenant_idquerystring(uuid)否Platform route only. Omit for all tenants; tenant routes reject this parameter.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—

响应

getPlatformAnalyticsHourlyTrend 响应
状态码说明
200UTC hourly metrics ordered by hour ascending; hours with no events are omitted.

字段:data: array<AnalyticsTrendPoint> meta: AnalyticsQueryMetadata

400analytics_invalid_request
401analytics_authentication_required
403analytics_permission_denied or analytics_scope_forbidden
408analytics_request_cancelled
500analytics_internal_error
502analytics_storage_rejected, analytics_storage_invalid_response, or analytics_response_too_large
503analytics_storage_unavailable; no zero-value data is substituted.
504analytics_query_timeout

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 500 结果未知:先按资源 ID 或列表回读确认,再决定是否用原 Idempotency-Key 重试。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/l4-realtime

operationId
getAdminL4Realtime
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

参数

getAdminL4Realtime 参数
名称位置类型必填说明
tenant_idquerystring(uuid)否可选租户范围;省略时平台管理员查询全部租户
rangequerystring: 1h / 6h / 12h / 24h / custom是—
timezonequerystring是—
fromquerystring(date-time)否—
toquerystring(date-time)否—
site_idquerystring(uuid)否—
stream_idquerystring(uuid)否—
node_idquerystring(uuid)否—
protocolquerystring: tcp / udp否—
listen_portqueryinteger否—
limitqueryinteger否—
cursorquerystring否—

响应

getAdminL4Realtime 响应
状态码说明
200L4 session aggregates

字段:version: string meta: object totals: object rows: array<object> next_cursor?: string

400Request validation failed; clients map the stable code through locale resources.
401Authentication is required or the session is invalid.
403The authenticated principal cannot access this scope or operation.
500The response could not be encoded safely.
503The analytics dependency is unavailable; retry with the same query.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 500 结果未知:先按资源 ID 或列表回读确认,再决定是否用原 Idempotency-Key 重试。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/logs/access

List access logs for one explicitly selected tenant

operationId
listPlatformAccessLogs
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Requires a platform-scoped identity. tenant_id is mandatory; this API never performs an all-tenant log query. URI output contains only an origin-form path and omits query and fragment content.

参数

listPlatformAccessLogs 参数
名称位置类型必填说明
tenant_idquerystring(uuid)否Platform route only; omit for all tenants or provide one tenant UUID to narrow the read.
fromquerystring(date-time)是Inclusive RFC3339 instant with at most millisecond precision. It is normalized to UTC and must be earlier than to.
toquerystring(date-time)是Exclusive RFC3339 instant with at most millisecond precision. The window may not exceed 31 days.
site_idquerystring(uuid)否—
hostquerystring否Access logs and block events: one host or up to 64 distinct space-separated hosts.
node_idquerystring(uuid)否—
client_ipquerystring(ip)否Exact IPv4 or IPv6 address without a zone identifier.
uri_pathquerystring否Exact origin-form path after query and fragment removal.
uri_path_matchquerystring: exact / prefix否How uri_path matches; prefix uses a startsWith match on the origin-form path. Requires uri_path.
status_codequeryinteger否—
methodquerystring否Exact HTTP method; access-log routes only.
protocolquerystring否Exact stored protocol; access-log routes only.
cache_statusquerystring否Exact stored cache status; access-log routes only.
upstream_resultquerystring否—
content_typequerystring否—
user_agentquerystring否—
request_bytes_minqueryinteger(uint64)否—
request_bytes_maxqueryinteger(uint64)否—
response_bytes_minqueryinteger(uint64)否—
response_bytes_maxqueryinteger(uint64)否—
country_codequerystring否Exact stored country or region code.
carrierquerystring否Exact stored carrier value.
ja4querystring否Exact stored JA4 fingerprint. Rows without a source JA4 do not match.
origin_connect_us_minqueryinteger(uint64)否—
origin_connect_us_maxqueryinteger(uint64)否—
origin_first_byte_us_minqueryinteger(uint64)否—
origin_first_byte_us_maxqueryinteger(uint64)否—
origin_total_us_minqueryinteger(uint64)否—
origin_total_us_maxqueryinteger(uint64)否—
limitqueryinteger否Page size. When more rows exist at the fixed snapshot, the response includes an opaque next_cursor.
cursorquerystring否Opaque keyset cursor returned by the preceding page. It is bound to the tenant, route kind, complete filter, descending direction, snapshot, and last (occurred_at,event_id) key. Malformed, overlong, or mismatched cursors are rejected and never re-scoped.

响应

listPlatformAccessLogs 响应
状态码说明
200Snapshot-bounded access-log page.

字段:data: array<AccessLog> meta: QueryMetadata

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
404Analytics log route was not found.
422Returns analytics_logs_capability_unsupported for malformed cursor shapes rejected before storage or physically observable equal-version replacement ambiguity.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/logs/access/exports

List durable access-log exports owned by the calling account for the target tenant

operationId
listPlatformAccessLogExports
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Without query filters, lists up to 50 exports owned by the calling account (user + access scope), regardless of the login session that created them. With from/to (and the same filters as the access-log list, without limit/cursor), returns at most one export: the latest generation for that account and normalized query scope, so the log view can recover it after re-login.

参数

listPlatformAccessLogExports 参数
名称位置类型必填说明
tenant_idquerystring(uuid)是Platform route only; all-tenant log queries are forbidden.
fromquerystring(date-time)否Export scope lookup; when present, to is required and the filters follow the access-log list.
toquerystring(date-time)否Export scope lookup; exclusive end of the window.
site_idquerystring(uuid)否—
hostquerystring否Access logs and block events: one host or up to 64 distinct space-separated hosts.
node_idquerystring(uuid)否—
client_ipquerystring(ip)否Exact IPv4 or IPv6 address without a zone identifier.
uri_pathquerystring否Exact origin-form path after query and fragment removal.
uri_path_matchquerystring: exact / prefix否How uri_path matches; prefix uses a startsWith match on the origin-form path. Requires uri_path.
status_codequeryinteger否—
methodquerystring否Exact HTTP method; access-log routes only.
protocolquerystring否Exact stored protocol; access-log routes only.
cache_statusquerystring否Exact stored cache status; access-log routes only.
upstream_resultquerystring否—
content_typequerystring否—
user_agentquerystring否—
request_bytes_minqueryinteger(uint64)否—
request_bytes_maxqueryinteger(uint64)否—
response_bytes_minqueryinteger(uint64)否—
response_bytes_maxqueryinteger(uint64)否—
country_codequerystring否Exact stored country or region code.
carrierquerystring否Exact stored carrier value.
ja4querystring否Exact stored JA4 fingerprint. Rows without a source JA4 do not match.
origin_connect_us_minqueryinteger(uint64)否—
origin_connect_us_maxqueryinteger(uint64)否—
origin_first_byte_us_minqueryinteger(uint64)否—
origin_first_byte_us_maxqueryinteger(uint64)否—
origin_total_us_minqueryinteger(uint64)否—
origin_total_us_maxqueryinteger(uint64)否—

响应

listPlatformAccessLogExports 响应
状态码说明
200At most 50 exports for the exact actor, session, scope and tenant.

字段:data: array<AccessExport>

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/admin/analytics/logs/access/exports

Create a snapshot-bound access-log export for one target tenant

operationId
createPlatformAccessLogExport
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Idempotent per account (user + access scope) and normalized query scope, independent of the login session. The same Idempotency-Key replays its export (409 if the key was used for another scope). For the same scope, a pending, running or unexpired completed export is reused (Idempotency-Replayed: true); a failed export with attempts left is retried in place under the same export id; otherwise a new generation is created.

参数

createPlatformAccessLogExport 参数
名称位置类型必填说明
tenant_idquerystring(uuid)是Platform route only; all-tenant log queries are forbidden.
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

createPlatformAccessLogExport 请求体
名称类型必填说明
filterAccessExportFilter是—

响应

createPlatformAccessLogExport 响应
状态码说明
202Durable export request accepted; an identical idempotency replay returns the same job.

字段:id: string(uuid) status: string: pending / running / completed / failed reason: string snapshot_at: string(date-time) | null(date-time) row_count: integer | null byte_count: integer | null sha256?: string created_at: string(date-time) expires_at: string(date-time) | null(date-time) downloadable: boolean filter: AccessExportFilter | null

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
409Idempotency key is already bound to another normalized export request.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/logs/access/exports/{export_id}

operationId
getPlatformAccessLogExport
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

参数

getPlatformAccessLogExport 参数
名称位置类型必填说明
tenant_idquerystring(uuid)是Platform route only; all-tenant log queries are forbidden.
export_idpathstring(uuid)是—

响应

getPlatformAccessLogExport 响应
状态码说明
200Session-bound durable export status.

字段:id: string(uuid) status: string: pending / running / completed / failed reason: string snapshot_at: string(date-time) | null(date-time) row_count: integer | null byte_count: integer | null sha256?: string created_at: string(date-time) expires_at: string(date-time) | null(date-time) downloadable: boolean filter: AccessExportFilter | null

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
404Analytics log route was not found.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/logs/access/exports/{export_id}/download

operationId
downloadPlatformAccessLogExport
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

参数

downloadPlatformAccessLogExport 参数
名称位置类型必填说明
tenant_idquerystring(uuid)是Platform route only; all-tenant log queries are forbidden.
export_idpathstring(uuid)是—
X-Analytics-Download-Tokenheaderstring是Short-lived one-time token. The server stores only its SHA-256 digest.

响应

downloadPlatformAccessLogExport 响应
状态码说明
200RFC4180 UTF-8 CSV consumed atomically by the one-time grant.
400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
410Grant is malformed, expired, consumed, or belongs to another session or scope.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/admin/analytics/logs/access/exports/{export_id}/download-grants

operationId
grantPlatformAccessLogExportDownload
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Returns a short-lived one-time token bound to the current platform session, target tenant and export. Any session of the owning account may request a grant; a token from another session is rejected. Only its SHA-256 digest is stored.

参数

grantPlatformAccessLogExportDownload 参数
名称位置类型必填说明
tenant_idquerystring(uuid)是Platform route only; all-tenant log queries are forbidden.
export_idpathstring(uuid)是—

响应

grantPlatformAccessLogExportDownload 响应
状态码说明
201One-time grant. Only the SHA-256 token digest is persisted.

字段:export_id: string(uuid) token: string expires_at: string(date-time)

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
404Analytics log route was not found.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/logs/block-events

List security block events for one explicitly selected tenant

operationId
listPlatformBlockEvents
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Requires a platform-scoped identity and an explicit tenant_id. Returns the current security-event projection with the same snapshot-bounded opaque cursor contract as access logs. This is raw event retrieval, not an immutable block-state transition history.

参数

listPlatformBlockEvents 参数
名称位置类型必填说明
tenant_idquerystring(uuid)否Platform route only; omit for all tenants or provide one tenant UUID to narrow the read.
fromquerystring(date-time)是Inclusive RFC3339 instant with at most millisecond precision. It is normalized to UTC and must be earlier than to.
toquerystring(date-time)是Exclusive RFC3339 instant with at most millisecond precision. The window may not exceed 31 days.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—
client_ipquerystring(ip)否Exact IPv4 or IPv6 address without a zone identifier.
uri_pathquerystring否Exact origin-form path after query and fragment removal.
uri_path_matchquerystring: exact / prefix否How uri_path matches; prefix uses a startsWith match on the origin-form path. Requires uri_path.
status_codequeryconst 0 | integer否Exact stored status; 0 means no HTTP status was recorded.
actionquerystring: block / challenge / log / temporary_ban否Block events only: narrow to block, challenge, log (observed) or temporary_ban (auto block); default all four, the hits the WAF overview counts. A CC challenge page / 429 is one event per site, client IP, rule, action and minute with its request count.
event_typequerystring否Block events only: narrow to one event type (waf, cc, acl, ...).
hostquerystring否Access logs and block events: one host or up to 64 distinct space-separated hosts.
country_codequerystring否Exact stored country or region code.
carrierquerystring否Exact stored carrier value.
ja4querystring否Exact stored JA4 fingerprint. Rows without a source JA4 do not match.
origin_connect_us_minqueryinteger(uint64)否—
origin_connect_us_maxqueryinteger(uint64)否—
origin_first_byte_us_minqueryinteger(uint64)否—
origin_first_byte_us_maxqueryinteger(uint64)否—
origin_total_us_minqueryinteger(uint64)否—
origin_total_us_maxqueryinteger(uint64)否—
limitqueryinteger否Page size. When more rows exist at the fixed snapshot, the response includes an opaque next_cursor.
cursorquerystring否Opaque keyset cursor returned by the preceding page. It is bound to the tenant, route kind, complete filter, descending direction, snapshot, and last (occurred_at,event_id) key. Malformed, overlong, or mismatched cursors are rejected and never re-scoped.

响应

listPlatformBlockEvents 响应
状态码说明
200Snapshot-bounded security block-event page.

字段:data: array<BlockEvent> meta: QueryMetadata

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
404Analytics log route was not found.
422Returns analytics_logs_capability_unsupported for malformed cursor shapes rejected before storage or physically observable equal-version replacement ambiguity.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/logs/blocks/current

List current ACL blocks across the customer control plane

operationId
listPlatformCurrentBlocks
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Returns only CIDRs present in the active site ACL policy. A newer unpublished policy revision or open activation makes the item non-unlockable. tenant_id optionally narrows the platform-wide read; every row carries its tenant_id so write actions stay explicitly scoped.

参数

listPlatformCurrentBlocks 参数
名称位置类型必填说明
tenant_idquerystring(uuid)否Platform route only; omit for all tenants or provide one tenant UUID to narrow the read.
site_idquerystring(uuid)否—
limitqueryinteger否Maximum current or historical block facts returned.
offsetqueryinteger否Number of matching current or historical block facts to skip.

响应

listPlatformCurrentBlocks 响应
状态码说明
200Current active ACL block facts.

字段:data: array<CurrentBlock> total_count: integer(uint64) snapshot_at: string(date-time)

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
404Analytics log route was not found.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/logs/blocks/current-count

Count current ACL blocks by site across the customer control plane

operationId
countPlatformCurrentBlocksBySite
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

参数

countPlatformCurrentBlocksBySite 参数
名称位置类型必填说明
tenant_idquerystring(uuid)否Platform route only; omit for all tenants or provide one tenant UUID to narrow the read.

响应

countPlatformCurrentBlocksBySite 响应
状态码说明
200Current active ACL block totals grouped by site.

字段:data: array<SiteBlacklistCount> total_count: integer(uint64) snapshot_at: string(date-time)

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/admin/analytics/logs/blocks/current/{block_id}/unlock

Unlock one current ACL block for an explicitly selected tenant

operationId
unlockPlatformCurrentBlock
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:security_policies.manage

说明(契约原文)

Removes exactly one CIDR from a new ACL policy revision, then starts a version-fenced edge activation. A stale active revision, open activation, missing target CIDR, or missing target-node snapshot fails closed with 409. Reusing the same key and body returns the same durable result; a conflicting body is rejected.

参数

unlockPlatformCurrentBlock 参数
名称位置类型必填说明
block_idpathstring(uuid)是Stable identity derived from site, active ACL policy and canonical CIDR.
tenant_idquerystring(uuid)是Platform route only; all-tenant log queries are forbidden.
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

unlockPlatformCurrentBlock 请求体
名称类型必填说明
reason_codestring是—

响应

unlockPlatformCurrentBlock 响应
状态码说明
202The successor policy and activation were durably accepted.

字段:block_id: string(uuid) candidate_id: string(uuid) progress: string: claimed / canary / expanding / healthy / failed / cancelled / expired / promoted reason_code: string: recovery_claimed / recovery_replayed replayed: boolean

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
404The scoped active block no longer exists.
409Returns analytics_block_unlock_conflict when the policy, active edge revision, open activation or target-node snapshot changed.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/logs/blocks/history

List audited unlock history across the customer control plane

operationId
listPlatformBlockHistory
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Returns append-only cidr_unlock activation audit facts and their latest durable edge rollout progress. tenant_id optionally narrows the platform-wide read.

参数

listPlatformBlockHistory 参数
名称位置类型必填说明
tenant_idquerystring(uuid)否Platform route only; omit for all tenants or provide one tenant UUID to narrow the read.
site_idquerystring(uuid)否—
limitqueryinteger否Maximum current or historical block facts returned.
offsetqueryinteger否Number of matching current or historical block facts to skip.

响应

listPlatformBlockHistory 响应
状态码说明
200Append-only CIDR unlock history with durable edge progress.

字段:data: array<BlockHistory> total_count: integer(uint64) snapshot_at: string(date-time)

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
404Analytics log route was not found.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/logs/cc-coordination

List cross-node CC coordination states of every tenant, optionally narrowed to one tenant or site

operationId
listPlatformCCCoordinationStates
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

参数

listPlatformCCCoordinationStates 参数
名称位置类型必填说明
tenant_idquerystring(uuid)否Platform route only; omit for all tenants or provide one tenant UUID to narrow the read.
site_idquerystring(uuid)否—
limitqueryinteger否Maximum current or historical block facts returned.

响应

listPlatformCCCoordinationStates 响应
状态码说明
200Durable tenant/site-scoped cross-node CC state.

字段:items: array<CCCoordinationState>

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/admin/analytics/logs/cc-coordination/{state_id}/release

Release one exact cross-node CC state after a false-positive decision

operationId
releasePlatformCCCoordinationState
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:security_policies.manage

参数

releasePlatformCCCoordinationState 参数
名称位置类型必填说明
state_idpathstring(uuid)是—
tenant_idquerystring(uuid)是Platform route only; all-tenant log queries are forbidden.
site_idquerystring(uuid)是—
Idempotency-Keyheaderstring是—
X-Request-IDheaderstring是—

请求体

application/json · 必填:是

releasePlatformCCCoordinationState 请求体
名称类型必填说明
reason_codestring是—
expected_generationinteger(int64)是—

响应

releasePlatformCCCoordinationState 响应
状态码说明
202The exact generation was accepted for audited release.

字段:state: CCCoordinationState replayed: boolean

400Invalid GET body, time range, filter, limit, cursor, or required platform tenant scope. GET bodies are never read.
401Authentication is required.
403Permission or identity scope is forbidden.
409Returns analytics_block_unlock_conflict when the policy, active edge revision, open activation or target-node snapshot changed.
503Storage transport, rejection, invalid response, or response limit failure.
504Query deadline or caller cancellation was observed.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/logs/{kind}/geo-evidence/{event_id}

Reconcile one tenant log fact against a verified GeoIP catalog

operationId
getPlatformAnalyticsGeoEvidence
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

参数

getPlatformAnalyticsGeoEvidence 参数
名称位置类型必填说明
kindpathstring: access / block是—
event_idpathstring是—
fromquerystring(date-time)是—
toquerystring(date-time)是—
tenant_idquerystring(uuid)是—
site_idquerystring(uuid)是—
node_idquerystring(uuid)是—
client_ipquerystring(ip)是—
database_versionquerystring否—

响应

getPlatformAnalyticsGeoEvidence 响应
状态码说明
200Verified bounded geo evidence.

字段:data: Evidence

400Invalid request.
401Stable error envelope.
403Stable error envelope.
404Stable error envelope.
408Stable error envelope.
409Stable error envelope.
502Stable error envelope.
503Stable error envelope.
504Stable error envelope.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/market-security

List relayed market supply attack log lines of any tenant

operationId
listAdminMarketSecurityLogs
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:platform.admin

参数

listAdminMarketSecurityLogs 参数
名称位置类型必填说明
tenant_idquerystring(uuid)是—
fromquerystring(date-time)是RFC 3339; at most 31 days before to.
toquerystring(date-time)是—
site_idquerystring(uuid)否—
client_ipquerystring否—
hostquerystring否—
cursorquerystring否meta.next_cursor of the previous page.
limitqueryinteger否—

响应

listAdminMarketSecurityLogs 响应
状态码说明
200Newest first.

字段:data: array<Log> meta: object

400Error.
401Error.
403Error.
405Error.
503Error.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/site-monitoring

Read one tenant's site monitoring as a platform administrator

operationId
getPlatformSiteMonitoring
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:platform.admin

说明(契约原文)

Requires a platform session with platform.admin and exactly one canonical tenant_id. Omitting, duplicating, or changing tenant scope through identity headers is rejected before any source is queried.

参数

getPlatformSiteMonitoring 参数
名称位置类型必填说明
tenant_idquerystring(uuid)是—
rangequerystring: 1h / 6h / 12h / custom是Fixed presets use no from/to values. custom requires both from and to and is limited to 31 days; longer ranges are rejected.
fromquerystring(date-time)否Inclusive UTC boundary, required only for range=custom.
toquerystring(date-time)否Exclusive UTC boundary, required only for range=custom.
timezonequerystring是—
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—
domainquerystring否—
listen_portqueryinteger否—
rank_byquerystring: host / site / node / status_code否—
limitqueryinteger否—
cursorquerystring否Opaque snapshot- and filter-bound cursor.
X-Request-IDheaderstring否—

响应

getPlatformSiteMonitoring 响应
状态码说明
200Finalized monitoring aggregate.

字段:version: string meta: SiteMonitoringMeta basic: AvailableBasic | DegradedSection quality: AvailableQuality | DegradedSection origin: AvailableOrigin | DegradedSection rank: AvailableRank | DegradedSection

400Stable non-leaking error envelope.
401Stable non-leaking error envelope.
403Stable non-leaking error envelope.
405Stable non-leaking error envelope.
408Stable non-leaking error envelope.
502Stable non-leaking error envelope.
503Stable non-leaking error envelope.
504Stable non-leaking error envelope.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/site-quality-diagnostics

Read one tenant's quality diagnostics from the platform scope

operationId
getPlatformQualityDiagnostics
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:platform.admin

参数

getPlatformQualityDiagnostics 参数
名称位置类型必填说明
tenant_idquerystring(uuid)是—
fromquerystring(date-time)是Inclusive UTC millisecond boundary.
toquerystring(date-time)是Exclusive UTC millisecond boundary, at most 31 days after from.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—
categoryquerystring: upstream_5xx / edge_530 / no_host / config_mismatch否—
limitqueryinteger否—
cursorquerystring否—

响应

getPlatformQualityDiagnostics 响应
状态码说明
200Finalized, latest-state diagnostics at one exact snapshot.

字段:items: array<QualityDiagnostic> next_cursor: string | null snapshot: FinalizedSnapshot effective_tenant_id?: string(uuid)

400Stable error response with no raw dependency text.
401Stable error response with no raw dependency text.
403Stable error response with no raw dependency text.
405Stable error response with no raw dependency text.
408Stable error response with no raw dependency text.
409Stable error response with no raw dependency text.
502Stable error response with no raw dependency text.
503Stable error response with no raw dependency text.
504Stable error response with no raw dependency text.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/site-realtime

Read platform-wide or one tenant's finalized site realtime facts

operationId
getPlatformSiteRealtime
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Requires a platform identity with sites.read or platform.admin. Omitting tenant_id queries all tenants; providing it narrows the query to one tenant. With query_version=2 the exact minute-aligned [from,to) interval is projected without rounding. Without query_version, legacy hour alignment and the original response keys are preserved. Its enclosing complete UTC hours must first have independent PostgreSQL source coverage; their expected counts are reconciled with a single ClickHouse access scan shared by all exact-range projections.

参数

getPlatformSiteRealtime 参数
名称位置类型必填说明
fromquerystring(date-time)是Inclusive RFC3339 instant, exactly minute aligned after UTC normalization with query_version=2, otherwise hour aligned; never silently rounded.
toquerystring(date-time)是Exclusive RFC3339 instant, exactly minute aligned after UTC normalization with query_version=2, otherwise hour aligned; later than from and no more than 31 days apart.
tenant_idquerystring(uuid)否Platform route only. Omit for all tenants or provide one exact tenant scope.
query_versionqueryinteger: 2 / 3 / 4否Explicit opt-in to minute queries and extended series/evidence. 3 adds coverage fields and returns settled hours when other enclosing hours are not finalized yet (coverage_complete=false, missing_windows lists the excluded hour starts) instead of 503. 4 is the realtime monitor: it reads every fact ingested so far, the unsettled current hour included, with no settlement reconciliation (coverage_complete=true, expected_events=0, finalized_through and source_watermark at the Unix epoch); it is a display read and never feeds billing. Omit for the legacy hour-aligned response; other values, empty or repeated values are rejected.
site_idquerystring(uuid)否—
hostquerystring否One or more canonical lowercase hosts without trailing dots, separated by single spaces.
listen_portqueryinteger否Exact production listen port. Omit to include legacy port-zero facts.

响应

getPlatformSiteRealtime 响应
状态码说明
200Finalized atomic site realtime facts and source reconciliation evidence.
400analytics_invalid_request
401analytics_authentication_required
403analytics_permission_denied or analytics_scope_forbidden
408analytics_request_cancelled
502analytics_storage_rejected, analytics_storage_invalid_response, or analytics_response_too_large
503analytics_storage_unavailable or analytics_realtime_evidence_unavailable; no zero-value data is substituted. site-realtime with query_version=3 returns partial coverage instead of analytics_realtime_evidence_unavailable for unsettled hours; dependency failures remain 503.
504analytics_query_timeout

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/summary

Read a platform or explicitly selected tenant analytics summary

operationId
getPlatformAnalyticsSummary
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Requires a platform-scoped identity with sites.read or platform.admin. Omitting tenant_id queries all tenants; providing tenant_id narrows the query to that tenant. The time window is left-closed and right-open.

参数

getPlatformAnalyticsSummary 参数
名称位置类型必填说明
fromquerystring(date-time)是RFC3339 instant. After UTC normalization it must be hour aligned and earlier than to.
toquerystring(date-time)是Exclusive RFC3339 instant. It must be hour aligned after UTC normalization; the window is at most 31 days.
tenant_idquerystring(uuid)否Platform route only. Omit for all tenants; tenant routes reject this parameter.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—

响应

getPlatformAnalyticsSummary 响应
状态码说明
200Aggregated metrics for the normalized UTC window.

字段:data: AnalyticsSummaryMetrics meta: AnalyticsQueryMetadata

400analytics_invalid_request
401analytics_authentication_required
403analytics_permission_denied or analytics_scope_forbidden
408analytics_request_cancelled
500analytics_internal_error
502analytics_storage_rejected, analytics_storage_invalid_response, or analytics_response_too_large
503analytics_storage_unavailable; no zero-value data is substituted.
504analytics_query_timeout

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 500 结果未知:先按资源 ID 或列表回读确认,再决定是否用原 Idempotency-Key 重试。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/admin/analytics/top/{dimension}

Page through a platform or explicitly selected tenant ranking

operationId
getPlatformAnalyticsTop
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Requires a platform-scoped identity with sites.read or platform.admin. The cursor is bound to scope, filters, dimension, and one ingestion snapshot. The ja4 dimension is reserved but unsupported in v1.

参数

getPlatformAnalyticsTop 参数
名称位置类型必填说明
dimensionpathstring: url / ip / domain / region / carrier / ja4 / referer / province / browser / os是region is the ISO country code, province the GB/T 2260 province code (both from the control plane's IP library at ingest), browser and os the node's User-Agent families. Empty values are returned as __unknown__. ip, domain, region, carrier, province, browser and os rank from the hourly history facts; url, ja4 and referer from the access log (see page.source and page.retained_from).
fromquerystring(date-time)是RFC3339 instant. After UTC normalization it must be hour aligned and earlier than to.
toquerystring(date-time)是Exclusive RFC3339 instant. It must be hour aligned after UTC normalization; the window is at most 31 days.
tenant_idquerystring(uuid)否Platform route only. Omit for all tenants; tenant routes reject this parameter.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—
limitqueryinteger否—
cursorquerystring否Opaque cursor bound to the authenticated scope, filters, dimension, and snapshot.

响应

getPlatformAnalyticsTop 响应
状态码说明
200Deterministically ordered ranking page from one ingestion snapshot.

字段:data: array<AnalyticsRankItem> dimension: string: url / ip / domain / region / carrier / ja4 / referer / province / browser / os page: AnalyticsRankPage meta: AnalyticsQueryMetadata

400analytics_invalid_request
401analytics_authentication_required
403analytics_permission_denied or analytics_scope_forbidden
408analytics_request_cancelled
422analytics_dimension_unsupported
500analytics_internal_error
502analytics_storage_rejected, analytics_storage_invalid_response, or analytics_response_too_large
503analytics_storage_unavailable; no zero-value data is substituted.
504analytics_query_timeout

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 500 结果未知:先按资源 ID 或列表回读确认,再决定是否用原 Idempotency-Key 重试。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表