Skip to content

Scans API

Create, manage, and monitor vulnerability scans programmatically.

Endpoints

MethodEndpointDescription
GET/api/v1/scansList all scans
POST/api/v1/scansCreate a new scan
GET/api/v1/scans/{id}Get scan details
DELETE/api/v1/scans/{id}Cancel/delete scan
GET/api/v1/scans/{id}/findingsGet scan findings

List Scans

Retrieve all scans for your organization.

bash
GET /api/v1/scans

Query Parameters

ParameterTypeDescription
pageintegerPage number (default: 1)
per_pageintegerItems per page (default: 20, max: 100)
statusstringFilter by status: pending, running, completed, failed
targetstringFilter by target domain
from_datestringFilter scans after date (ISO 8601)
to_datestringFilter scans before date (ISO 8601)

Response

json
{
  "items": [
    {
      "id": "scan_abc123",
      "target": "example.com",
      "scan_type": "full",
      "status": "completed",
      "progress": 100,
      "phase": "complete",
      "created_at": "2025-12-21T10:00:00Z",
      "completed_at": "2025-12-21T10:45:00Z",
      "vulnerabilities_found": 12,
      "critical_count": 1,
      "high_count": 3,
      "medium_count": 5,
      "low_count": 3
    }
  ],
  "total": 45,
  "page": 1,
  "per_page": 20,
  "pages": 3
}

Create Scan

Start a new vulnerability scan.

bash
POST /api/v1/scans
Content-Type: application/json

Request Body

json
{
  "target": "example.com",
  "scan_type": "full",
  "frameworks": ["soc2", "pci-dss"],
  "ports": "1-1000",
  "authorized": true
}

Parameters

FieldTypeRequiredDescription
targetstringYesDomain, IP, or CIDR range
scan_typestringNoquick, full, or compliance (default: full)
frameworksarrayNoCompliance frameworks to check
portsstringNoPort range (default: common ports)
authorizedbooleanYesAttestation of scan authorization

Scan Types

TypeDurationCoverage
quick5-10 minTop vulnerabilities, common ports
full30-60 minAll 11 phases, comprehensive coverage
compliance15-30 minFramework-specific checks

Response

json
{
  "id": "scan_xyz789",
  "target": "example.com",
  "scan_type": "full",
  "status": "pending",
  "created_at": "2025-12-21T14:00:00Z",
  "estimated_duration": 2700
}

Get Scan Details

Retrieve details for a specific scan.

bash
GET /api/v1/scans/{scan_id}

Response

json
{
  "id": "scan_abc123",
  "target": "example.com",
  "scan_type": "full",
  "status": "running",
  "progress": 45,
  "phase": "vulnerability_scanning",
  "current_tool": "nuclei",
  "created_at": "2025-12-21T10:00:00Z",
  "started_at": "2025-12-21T10:01:00Z",
  "phases_completed": [
    "discovery",
    "enumeration"
  ],
  "phases_remaining": [
    "vulnerability_scanning",
    "web_analysis",
    "cloud_analysis",
    "threat_intelligence",
    "correlation",
    "ai_analysis",
    "remediation_planning",
    "reporting"
  ]
}

Cancel Scan

Stop a running scan.

bash
DELETE /api/v1/scans/{scan_id}

Response

json
{
  "id": "scan_abc123",
  "status": "cancelled",
  "message": "Scan cancelled successfully"
}

Get Scan Findings

Retrieve vulnerabilities found during a scan.

bash
GET /api/v1/scans/{scan_id}/findings

Query Parameters

ParameterTypeDescription
severitystringFilter: critical, high, medium, low, info
statusstringFilter: open, in_progress, resolved, false_positive

Response

json
{
  "items": [
    {
      "id": "finding_123",
      "title": "SQL Injection in Login Form",
      "severity": "critical",
      "cvss_score": 9.8,
      "status": "open",
      "tool": "sqlmap",
      "affected_component": "https://example.com/login",
      "description": "...",
      "remediation": "...",
      "cve_ids": ["CVE-2024-1234"],
      "detected_at": "2025-12-21T10:30:00Z"
    }
  ],
  "total": 12
}

Scan Quota

Check remaining scan quota.

bash
GET /api/v1/scans/quota

Response

json
{
  "plan": "professional",
  "monthly_limit": 150,
  "used_this_month": 45,
  "remaining": 105,
  "resets_at": "2026-01-01T00:00:00Z"
}

Scheduled Scans

Professional and Enterprise

Scheduled scans are available on Professional and Enterprise plans.

Create Schedule

bash
POST /api/v1/scans/schedules
Content-Type: application/json

{
  "target": "example.com",
  "scan_type": "full",
  "frequency": "weekly",
  "day_of_week": 1,
  "hour": 2,
  "timezone": "UTC"
}

List Schedules

bash
GET /api/v1/scans/schedules

Delete Schedule

bash
DELETE /api/v1/scans/schedules/{schedule_id}

Webhooks for Scans

Register for scan event notifications:

bash
POST /api/v1/webhooks
Content-Type: application/json

{
  "url": "https://your-server.com/webhook",
  "events": [
    "scan.started",
    "scan.completed",
    "scan.failed",
    "vulnerability.critical"
  ]
}

Rate Limits

PlanConcurrent ScansScans/Month
Startup125
Professional3150
EnterpriseUnlimitedUnlimited

Agentic AI-Powered Security & Compliance