API documentation

List scans

Lists the security scans run on your registered domains, page by page.

GET/v1/scans
GETList scans
curl -X GET "https://api.darkradar.com/api/public/v1/scans" \
  -H "x-api-key: $DARKRADAR_API_KEY"
Response

Success · From a real response, values anonymised

{
  "success": true,
  "message": "OK",
  "data": {
    "scans": [
      {
        "stats": {
          "severities": {
            "critical": 0,
            "high": 0,
            "medium": 0,
            "low": 0,
            "unknown": 0
          },
          "types": {
            "employee": 0,
            "customer": 0
          },
          "resourceTypeBreakdown": {
            "domain": 0,
            "email": 0,
            "ip": 0,
            "hwid": 0,
            "username": 0,
            "application": 0
          },
          "totalItemsChecked": 0,
          "totalResourcesScanned": 0,
          "totalMatches": 0,
          "newMatches": 0,
          "credentialsFound": 0,
          "machinesFound": 0
        },
        "error": {
          "message": null,
          "code": null
        },
        "_id": "64b1f0c2a9e4d21f8c3b9006",
        "firm": "64b1f0c2a9e4d21f8c3b9004",
        "protectionResourceGroupId": "64b1f0c2a9e4d21f8c3b9007",
        "scanType": "manual",
        "status": "pending",
        "startedAt": "2026-09-18T14:34:26.029Z",
        "completedAt": null,
        "durationMs": null,
        "resourceResults": [],
        "createdAt": "2026-09-18T14:34:26.031Z",
        "updatedAt": "2026-09-18T14:34:26.031Z"
      }
    ]
  },
  "pagination": {
    "total": 2,
    "page": 1,
    "limit": 1,
    "totalPages": 2
  }
}

Access

Scopescans:read
Plan entitlementapi_access

Query parameters

FieldsValues
page · integer · optionalPage number for pagination · Example: 1
limit · integer · optionalNumber of results per page · Example: 50
status · string · optionalFilter by scan status · Example: completed
scanType · string · optionalFilter by scan type · Example: manual
protectionResourceId · string · optionalFilter by protection resource (domain) ID · Example: 507f1f77bcf86cd799439011
sortBy · string · optionalSort field · Example: createdAt
cursor · string · optionalOpaque next-page cursor

Responses

200Success
400Invalid request (malformed id, missing or invalid field)
401Key missing, invalid, expired or revoked
403Insufficient scope, no API access in plan, or product not enabled
404Record not found or not owned by this key’s firm
408The request exceeded its maximum response time
429Rate limit exceeded; retry after a minute

Response limits

Page sizelimit · default 50 · max 100
Rate limit500 requests per 15 min · per IP

Was this page helpful?