## Upload scan stats (`upload-scan-stats`)

Stats at the top of the upload scan page: today's scanned, blocked and over-limit unscanned counts, plus the list of sites that cannot be scanned; admin only.

Authentication: Admin only · Docs: https://www-demo.kuxitong.com/en/docs/api/upload-scan-stats

### GET `/api/v2/upload-scan-stats`

Get upload scan stats · Authentication: Admin only

```sh
curl "https://panel.example.com/api/v2/upload-scan-stats" \
  -H "X-API-Key: $GOCDN_API_KEY"
```

Upload scan stats object:

| Field | Type | Required | Description |
|---|---|---|---|
| `today_blocked` | integer |  | Uploads blocked by a scan hit today (excluding blocks caused by oversize, timeout or errors); null when the log database is unavailable. |
| `today_scanned` | integer |  | Upload requests scanned today (one request with several files counts once); null when the log database is unavailable. |
| `today_unscanned` | integer |  | Uploads left unscanned today because they exceeded the per-file limit; null when the log database is unavailable. |
| `unscanned_sites` | UploadScanStatsSite[] |  | Sites that cannot be scanned, ascending by site id, at most 200; when scanning is globally off, a single summary entry with reason=global_off (site_id 0). Online nodes whose WAF is switched off by the node-local out-of-band killswitch follow (reason=node_kill, site_id 0, name is the node name, at most 200, not counted in unscanned_total); omitted when scanning is globally off. |
| `unscanned_total` | integer |  | Total number of sites that cannot be scanned (not capped at 200); the number of all enabled sites when scanning is globally off. |
