---
title: "Scan Catalog"
method: GET
path: "/api/v1/public/scan-catalog"
tags: ["public-scan"]
---

# Scan Catalog

`GET /api/v1/public/scan-catalog`

## Request

- Base URL: `https://agentavow.com` (the document declares no server; this is the origin it was published from)
- URL: `https://agentavow.com/api/v1/public/scan-catalog`
- Auth: none declared

Return a paginated, filterable catalog of every scan — the static launch
corpus plus community (on-demand) scans that grow the dataset over time.

## Query parameters

- `surface` string, nullable
- `q` string, nullable
- `severity` string, nullable
- `grade` string, nullable
- `category` string, nullable
- `decision` string, nullable
- `sort` string
- `limit` integer
- `offset` integer

## Response `200`

Successful Response

- CatalogResponse
  - `summary` CatalogSummary, required: Corpus-wide counts. Severity counters use the EXCLUSIVE buckets from `_severity_bucket` (the same partition the list's `severity=` filter applies): - `by_surface_critical` / `repo_scans_with_critical`: rows with >=1 critical finding. - `by_surface_high` / `repo_scans_with_high`: rows with >=1 high finding and NO critical ("high-only"). A row with both is counted under critical only. - `by_surface_scanned` / `repo_scans_scanned`: rows that have a verdict (a trust score; not skipped / errored). This is the honest denominator for any "% of scanned tools" figure. - `by_surface_skipped` / `repo_scans_skipped`: rows the scanner never graded. - `repo_scans_total` / `by_surface`: every row in the corpus, graded or not.
    - `total_scans` integer, required
    - `by_surface` object, required
    - `by_category` object
    - `by_surface_critical` object
    - `by_surface_high` object
    - `by_surface_scanned` object
    - `by_surface_skipped` object
    - `repo_scans_total` integer, required
    - `repo_scans_scanned` integer
    - `repo_scans_skipped` integer
    - `repo_scans_with_critical` integer, required
    - `repo_scans_with_high` integer, required
    - `x402_endpoints_total` integer, required
    - `x402_compliant` integer, required
  - `rows` CatalogRow[], required
    - `surface` string, required
    - `name` string, required
    - `repository_url` string, nullable
    - `full_name` string, nullable
    - `endpoint_url` string, nullable
    - `trust_score` integer, nullable
    - `grade` string, nullable
    - `certified_mark` boolean, nullable
    - `critical` integer, nullable
    - `high` integer, nullable
    - `findings_count` integer, nullable
    - `primary_language` string, nullable
    - `category` string, nullable
    - `adoption_score` integer, nullable
    - `adoption_count` integer, nullable
    - `adoption_unit` string, nullable
    - `is_mcp_server` boolean, nullable
    - `scan_error` string, nullable
    - `skipped` string, nullable
    - `has_x402_header` boolean, nullable
    - `http_status` integer, nullable
    - `sandbox` CatalogSandbox: Read-only summary of the behavioral (sandbox) block the public scan cached for this coordinate — present only when a run exists in cache.
      - `ran` boolean, required
      - `exercised` boolean, nullable
      - `findings` integer
      - `unexpected_egress` integer
      - `timed_out` boolean
    - `decision` string, nullable
    - `decision_reason` string, nullable
  - `total` integer, required
  - `offset` integer, required
  - `limit` integer, required
  - `surfaces` string[]

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/agentavow/apis/agentavow-api.md) · [All operations](https://skmtc.dev/agentavow/apis/agentavow-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentavow/apis/agentavow-api/revisions/e1e20476dbfc?raw)
