Skip to main content
GET
/
scans
List scans
curl --request GET \
  --url https://api.example.com/scans
Returns scans in your organization, with filtering by type and status.
Scope required: read

Request

curl "https://api.hacktron.ai/v1/scans?status=completed&sort_by=created_at&sort_order=DESC&page=1&limit=25" \
  -H "X-Api-Key: $HACKTRON_API_KEY"

Query parameters

ParameterTypeDefaultDescription
pageinteger11‑based page number.
limitinteger15Items per page. Max 100.
scan_typeenumFilter by scan type. Values: pr, full.
statusenumFilter by status. See Scan statuses.
sort_byenumcreated_atOne of created_at, updated_at, status.
sort_orderenumDESCASC or DESC.

Scan statuses

ValueMeaning
pendingScan queued, not yet started.
runningScan is in progress.
pending_verificationFindings are being verified automatically.
pending_triageFindings are ready for triage.
completedScan finished successfully.
failedScan failed. See scan detail for error context.
stopped / cancelledScan was stopped or cancelled before completion.
skippedScan was skipped (no applicable content).
draftScan was created but never started.

Response

200 OK
{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "task_id": "web_scan_1712345678",
      "scan_type": "full",
      "status": "completed",
      "name": "acme/backend@main",
      "repo_url": "https://github.com/acme/backend",
      "branch": "main",
      "pr_number": null,
      "target_urls": ["https://staging.acme.com"],
      "findings_summary": {
        "critical": 1,
        "high": 3,
        "medium": 7,
        "low": 12,
        "info": 4
      },
      "created_at": "2026-04-13T12:00:00.000Z",
      "updated_at": "2026-04-13T13:42:18.000Z"
    }
  ],
  "total": 142,
  "page": 1,
  "limit": 25
}

Scan object fields

FieldTypeDescription
idUUIDScan identifier.
task_idstringInternal task ID for correlation with the dashboard.
scan_typeenumpr or full.
statusenumCurrent scan status.
namestring|nullDisplay name. Defaults to repo@branch.
repo_urlstring|nullPrimary repository URL.
branchstring|nullPrimary branch scanned.
pr_numberinteger|nullGitHub PR number (PR scans only).
target_urlsstring[]|nullLive targets (pentest scans).
findings_summaryobjectApproved finding counts by severity.
created_atstringISO 8601 timestamp.
updated_atstringISO 8601 timestamp.