开放接口

/v1/analytics

27 个接口 · 15 个接口支持 API Key

← 全部分组 · 第一次调用?先看教程:认证、权限、请求与响应、常见失败

方法路径摘要认证
GET/v1/analytics/blocked-ip-countCount distinct client IPs blocked by the global firewall or CC auto-bansAPI Key 可调登录会话
GET/v1/analytics/blocked-ip-trendRead the hourly distinct client IPs blocked by the global firewallAPI Key 可调登录会话
GET/v1/analytics/connections/dead-lettersList durable analytics connections dead-letter receipts登录会话
GET/v1/analytics/connections/dead-letters/{dead_letter_id}Read one durable analytics connections dead-letter receipt登录会话
GET/v1/analytics/connections/retentionRead finalized connections retention facts for the authenticated tenant登录会话
GET/v1/analytics/hourly-trendRead the authenticated tenant hourly trendAPI Key 可调登录会话
GET/v1/analytics/l4-realtime—登录会话
GET/v1/analytics/logs/accessList access logs for the authenticated tenantAPI Key 可调登录会话
GET/v1/analytics/logs/access/exportsList durable access-log exports owned by the calling tenant account登录会话
POST/v1/analytics/logs/access/exportsCreate a snapshot-bound access-log export for the current tenant登录会话
GET/v1/analytics/logs/access/exports/{export_id}—登录会话
GET/v1/analytics/logs/access/exports/{export_id}/download—登录会话
POST/v1/analytics/logs/access/exports/{export_id}/download-grants—登录会话
GET/v1/analytics/logs/block-eventsList security block events for the authenticated tenantAPI Key 可调登录会话
GET/v1/analytics/logs/blocks/currentList current ACL blocks for the authenticated tenantAPI Key 可调登录会话
GET/v1/analytics/logs/blocks/current-countCount current ACL blocks by site for the authenticated tenantAPI Key 可调登录会话
POST/v1/analytics/logs/blocks/current/{block_id}/unlockUnlock one current ACL block for the authenticated tenantAPI Key 可调登录会话
GET/v1/analytics/logs/blocks/historyList audited unlock history for the authenticated tenantAPI Key 可调登录会话
GET/v1/analytics/logs/cc-coordinationList cross-node CC coordination states of the authenticated tenant, optionally narrowed to one siteAPI Key 可调登录会话
POST/v1/analytics/logs/cc-coordination/{state_id}/releaseRelease one exact cross-node CC state for the authenticated tenantAPI Key 可调登录会话
GET/v1/analytics/logs/{kind}/geo-evidence/{event_id}Reconcile one authenticated tenant log fact against a verified GeoIP catalogAPI Key 可调登录会话
GET/v1/analytics/market-securityList relayed market supply attack log lines of the session tenant登录会话
GET/v1/analytics/site-monitoringRead site monitoring for the authenticated tenant登录会话
GET/v1/analytics/site-quality-diagnosticsRead tenant quality diagnostics from finalized access facts登录会话
GET/v1/analytics/site-realtimeRead finalized realtime facts for the authenticated tenantAPI Key 可调登录会话
GET/v1/analytics/summaryRead the authenticated tenant analytics summaryAPI Key 可调登录会话
GET/v1/analytics/top/{dimension}Page through the authenticated tenant rankingAPI Key 可调登录会话

契约文件: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/analytics/blocked-ip-count

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

operationId
getTenantAnalyticsBlockedIPCount
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Requires a tenant-scoped identity with sites.read. 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.

参数

getTenantAnalyticsBlockedIPCount 参数
名称位置类型必填说明
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.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—

响应

getTenantAnalyticsBlockedIPCount 响应
状态码说明
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/analytics/blocked-ip-trend

Read the hourly distinct client IPs blocked by the global firewall

operationId
getTenantAnalyticsBlockedIPTrend
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

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

参数

getTenantAnalyticsBlockedIPTrend 参数
名称位置类型必填说明
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.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—

响应

getTenantAnalyticsBlockedIPTrend 响应
状态码说明
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/analytics/connections/dead-letters

List durable analytics connections dead-letter receipts

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

全部需要:sites.read

说明(契约原文)

Requires a revocable tenant Bearer session with sites.read. Tenant scope is derived exclusively from that session; the response is a digest-only durable receipt projection with no raw payload.

参数

listTenantAnalyticsConnectionsDeadLetters 参数
名称位置类型必填说明
limitqueryinteger否—
after_sequencequeryinteger(uint64)否Exclusive decimal JetStream dead-letter stream sequence cursor.

响应

listTenantAnalyticsConnectionsDeadLetters 响应
状态码说明
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/analytics/connections/dead-letters/{dead_letter_id}

Read one durable analytics connections dead-letter receipt

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

全部需要:sites.read

说明(契约原文)

Requires a revocable tenant Bearer session with sites.read. The tenant scope is derived exclusively from the session and raw payload is never returned.

参数

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

响应

getTenantAnalyticsConnectionsDeadLetter 响应
状态码说明
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/analytics/connections/retention

Read finalized connections retention facts for the authenticated tenant

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

全部需要:sites.read

说明(契约原文)

Requires a revocable tenant Bearer session with sites.read. Tenant scope is derived exclusively from that session; tenant_id is rejected.

参数

getTenantAnalyticsConnectionsRetention 参数
名称位置类型必填说明
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否—

响应

getTenantAnalyticsConnectionsRetention 响应
状态码说明
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/analytics/hourly-trend

Read the authenticated tenant hourly trend

operationId
getTenantAnalyticsHourlyTrend
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

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

参数

getTenantAnalyticsHourlyTrend 参数
名称位置类型必填说明
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.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—

响应

getTenantAnalyticsHourlyTrend 响应
状态码说明
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/analytics/l4-realtime

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

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

参数

getTenantL4Realtime 参数
名称位置类型必填说明
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否—

响应

getTenantL4Realtime 响应
状态码说明
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/analytics/logs/access

List access logs for the authenticated tenant

operationId
listTenantAccessLogs
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Scope comes only from the authenticated tenant identity. Supplying tenant_id, even with the same value, returns 403.

参数

listTenantAccessLogs 参数
名称位置类型必填说明
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.

响应

listTenantAccessLogs 响应
状态码说明
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/analytics/logs/access/exports

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

operationId
listTenantAccessLogExports
认证
  • 登录会话:主控登录后的 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.

参数

listTenantAccessLogExports 参数
名称位置类型必填说明
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)否—

响应

listTenantAccessLogExports 响应
状态码说明
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/analytics/logs/access/exports

Create a snapshot-bound access-log export for the current tenant

operationId
createTenantAccessLogExport
认证
  • 登录会话:主控登录后的 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.

参数

createTenantAccessLogExport 参数
名称位置类型必填说明
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

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

响应

createTenantAccessLogExport 响应
状态码说明
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/analytics/logs/access/exports/{export_id}

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

全部需要:sites.read

参数

getTenantAccessLogExport 参数
名称位置类型必填说明
export_idpathstring(uuid)是—

响应

getTenantAccessLogExport 响应
状态码说明
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/analytics/logs/access/exports/{export_id}/download

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

全部需要:sites.read

参数

downloadTenantAccessLogExport 参数
名称位置类型必填说明
export_idpathstring(uuid)是—
X-Analytics-Download-Tokenheaderstring是Short-lived one-time token. The server stores only its SHA-256 digest.

响应

downloadTenantAccessLogExport 响应
状态码说明
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/analytics/logs/access/exports/{export_id}/download-grants

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

全部需要:sites.read

说明(契约原文)

Returns a short-lived one-time token bound to the current tenant session and export. Any session of the owning account may request a grant; a token from another session is rejected. API keys are rejected.

参数

grantTenantAccessLogExportDownload 参数
名称位置类型必填说明
export_idpathstring(uuid)是—

响应

grantTenantAccessLogExportDownload 响应
状态码说明
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/analytics/logs/block-events

List security block events for the authenticated tenant

operationId
listTenantBlockEvents
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Scope comes only from the authenticated tenant identity. Returns the current security-event projection with snapshot-bounded keyset pagination. This route does not claim immutable block-state history.

参数

listTenantBlockEvents 参数
名称位置类型必填说明
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.

响应

listTenantBlockEvents 响应
状态码说明
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/analytics/logs/blocks/current

List current ACL blocks for the authenticated tenant

operationId
listTenantCurrentBlocks
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Scope comes only from the authenticated tenant identity. Supplying a tenant_id is rejected rather than re-scoping the request.

参数

listTenantCurrentBlocks 参数
名称位置类型必填说明
site_idquerystring(uuid)否—
limitqueryinteger否Maximum current or historical block facts returned.
offsetqueryinteger否Number of matching current or historical block facts to skip.

响应

listTenantCurrentBlocks 响应
状态码说明
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/analytics/logs/blocks/current-count

Count current ACL blocks by site for the authenticated tenant

operationId
countTenantCurrentBlocksBySite
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

响应

countTenantCurrentBlocksBySite 响应
状态码说明
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/analytics/logs/blocks/current/{block_id}/unlock

Unlock one current ACL block for the authenticated tenant

operationId
unlockTenantCurrentBlock
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:security_policies.manage

说明(契约原文)

Uses only the authenticated tenant scope and the same policy revision, idempotency, activation and conflict contract as the platform route.

参数

unlockTenantCurrentBlock 参数
名称位置类型必填说明
block_idpathstring(uuid)是Stable identity derived from site, active ACL policy and canonical CIDR.
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

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

响应

unlockTenantCurrentBlock 响应
状态码说明
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/analytics/logs/blocks/history

List audited unlock history for the authenticated tenant

operationId
listTenantBlockHistory
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Scope comes only from the authenticated tenant identity. Raw security events remain available from the separate block-events route.

参数

listTenantBlockHistory 参数
名称位置类型必填说明
site_idquerystring(uuid)否—
limitqueryinteger否Maximum current or historical block facts returned.
offsetqueryinteger否Number of matching current or historical block facts to skip.

响应

listTenantBlockHistory 响应
状态码说明
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/analytics/logs/cc-coordination

List cross-node CC coordination states of the authenticated tenant, optionally narrowed to one site

operationId
listTenantCCCoordinationStates
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

参数

listTenantCCCoordinationStates 参数
名称位置类型必填说明
site_idquerystring(uuid)否—
limitqueryinteger否Maximum current or historical block facts returned.

响应

listTenantCCCoordinationStates 响应
状态码说明
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/analytics/logs/cc-coordination/{state_id}/release

Release one exact cross-node CC state for the authenticated tenant

operationId
releaseTenantCCCoordinationState
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:security_policies.manage

参数

releaseTenantCCCoordinationState 参数
名称位置类型必填说明
state_idpathstring(uuid)是—
site_idquerystring(uuid)是—
Idempotency-Keyheaderstring是—
X-Request-IDheaderstring是—

请求体

application/json · 必填:是

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

响应

releaseTenantCCCoordinationState 响应
状态码说明
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/analytics/logs/{kind}/geo-evidence/{event_id}

Reconcile one authenticated tenant log fact against a verified GeoIP catalog

operationId
getTenantAnalyticsGeoEvidence
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

tenant_id is forbidden; the tenant comes only from authenticated identity. The raw address is never returned.

参数

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

响应

getTenantAnalyticsGeoEvidence 响应
状态码说明
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/analytics/market-security

List relayed market supply attack log lines of the session tenant

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

全部需要:sites.read

参数

listMarketSecurityLogs 参数
名称位置类型必填说明
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否—

响应

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

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

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

失败时怎么办

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

↑ 回到列表

GET /v1/analytics/site-monitoring

Read site monitoring for the authenticated tenant

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

全部需要:sites.read

说明(契约原文)

Requires a tenant session with sites.read. The tenant is derived only from the authenticated principal; tenant_id and self-asserted identity headers are rejected. Query parameters are single-valued and strict.

参数

getTenantSiteMonitoring 参数
名称位置类型必填说明
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否—

响应

getTenantSiteMonitoring 响应
状态码说明
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/analytics/site-quality-diagnostics

Read tenant quality diagnostics from finalized access facts

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

全部需要:sites.read

参数

getTenantQualityDiagnostics 参数
名称位置类型必填说明
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否—

响应

getTenantQualityDiagnostics 响应
状态码说明
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/analytics/site-realtime

Read finalized realtime facts for the authenticated tenant

operationId
getTenantSiteRealtime
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Tenant scope is derived exclusively from the authenticated identity. tenant_id is rejected. With query_version=2 the exact minute-aligned [from,to) interval is not rounded; without it, legacy hour alignment and original response keys apply. Missing or unfinalized evidence for any enclosing full UTC hour fails closed; zero traffic is returned only with complete source coverage.

参数

getTenantSiteRealtime 参数
名称位置类型必填说明
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.
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.

响应

getTenantSiteRealtime 响应
状态码说明
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/analytics/summary

Read the authenticated tenant analytics summary

operationId
getTenantAnalyticsSummary
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Requires a tenant-scoped identity with sites.read. Scope comes only from the authenticated identity; tenant_id is not accepted, even when it names that same tenant.

参数

getTenantAnalyticsSummary 参数
名称位置类型必填说明
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.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—

响应

getTenantAnalyticsSummary 响应
状态码说明
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/analytics/top/{dimension}

Page through the authenticated tenant ranking

operationId
getTenantAnalyticsTop
认证
  • API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:sites.read

说明(契约原文)

Requires a tenant-scoped identity with sites.read. Scope comes only from the authenticated identity. The cursor is bound to scope, filters, dimension, and one ingestion snapshot. The ja4 dimension is reserved but unsupported in v1.

参数

getTenantAnalyticsTop 参数
名称位置类型必填说明
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.
site_idquerystring(uuid)否—
node_idquerystring(uuid)否—
limitqueryinteger否—
cursorquerystring否Opaque cursor bound to the authenticated scope, filters, dimension, and snapshot.

响应

getTenantAnalyticsTop 响应
状态码说明
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 重试。

↑ 回到列表