GET
/v1/scans List Scans.
List scans for your organization with optional filtering by status and type. Results are ordered by creation time, newest first.
Authentication
Requires a valid API key. Only returns scans belonging to your organization.
Query parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 20 | Number of scans to return (1-100). |
offset | integer | 0 | Number of scans to skip for pagination. |
status | string | all | Filter by status: queued, scanning, completed, partial, failed. |
type | string | all | Filter by scan type: security, performance, accessibility, seo. |
Response
{
"scans": [
{
"id": "scan_abc123",
"type": "security",
"url": "https://example.com",
"status": "completed",
"score": 72,
"grade": "C",
"created_at": "2026-03-30T12:00:00Z",
"completed_at": "2026-03-30T12:01:15Z"
},
{
"id": "scan_def456",
"type": "accessibility",
"url": "https://example.com",
"status": "scanning",
"score": null,
"grade": null,
"created_at": "2026-03-30T12:02:00Z",
"completed_at": null
}
],
"total": 42,
"limit": 20,
"offset": 0,
"quota": {
"used": 42,
"limit": 200,
"remaining": 158,
"tier": "PRO"
}
} Response fields
| Field | Type | Description |
|---|---|---|
scans | array | List of scan objects with id, type, url, status, score, grade, and timestamps. |
total | integer | Total number of scans matching the filter criteria. |
limit | integer | The limit used for this request. |
offset | integer | The offset used for this request. |
quota | object | Current month's usage and quota for your organization. |
Code example
# List completed security scans, page 2
curl "https://appvet.dev/v1/scans?status=completed&type=security&limit=20&offset=20" \
-H "Authorization: Bearer avk_live_your_key_here" Error responses
| Status | Code | Description |
|---|---|---|
| 400 | INVALID_PARAMS | Invalid query parameter value (e.g., limit out of range, unknown status). |
| 401 | UNAUTHORIZED | Missing or invalid API key. |