FortWatchFortWatchDocs
Menu

List scans

GEThttps://api.fortwatch.ai/app/scans
Scope scans:readPagedOperation ID listScans

Scans with their status and severity breakdown, newest first; each carries the asset's scan number. Filter by status, asset or project.

Paged: send page and limit (100 by default, at most 500); the total is in X-Total-Count (paging).

Parameters

NameInTypeDescription
statusquerystring
assetIdquerynumber
projectIdquerynumber
pagequeryintegerThe page, from 1.
limitqueryintegerRows per page: an API key or OAuth token gets 100 when it sends none, at most 500.

Example request

curl -X GET "https://api.fortwatch.ai/app/scans?limit=100" \
  -H "Authorization: Bearer $FORTWATCH_API_KEY"

Response 200

The request succeeded.

FieldTypeDescription
idrequirednumber
assetIdrequirednumber
statusrequiredstring
triggeredByrequiredstring
triggeredByUserIdrequirednumber | null
failureCoderequiredstring | null
failureDetailrequiredstring | null
scannerIprequiredstring | null
startedAtrequiredstring (date-time) | null
completedAtrequiredstring (date-time) | null
createdAtrequiredstring (date-time)
updatedAtrequiredstring (date-time)
assetrequiredobject
idrequirednumber
namerequiredobject | null
valuerequiredstring
typerequiredstring
projectrequiredobject
idrequirednumber
namerequiredstring
_countrequiredobject
findingsrequirednumber
scanNumberrequirednumber
severitiesrequiredobject
json
[
  {
    "id": 42,
    "assetId": 42,
    "status": "string",
    "triggeredBy": "string",
    "triggeredByUserId": 42,
    "failureCode": "string",
    "failureDetail": "string",
    "scannerIp": "string",
    "startedAt": "2026-10-16T12:00:00.000Z",
    "completedAt": "2026-10-16T12:00:00.000Z",
    "createdAt": "2026-10-16T12:00:00.000Z",
    "updatedAt": "2026-10-16T12:00:00.000Z",
    "asset": {
      "id": 42,
      "name": {},
      "value": "app.example.com",
      "type": "string",
      "project": {
        "id": null,
        "name": null
      }
    },
    "_count": {
      "findings": 1
    },
    "scanNumber": 1,
    "severities": {}
  }
]

Errors

400The request is not valid: a field is missing or has the wrong shape (the message names it).
401No valid credentials: the API key or access token is missing, revoked or expired (INVALID_API_KEY, INVALID_TOKEN).
403Not allowed: the key or token lacks this scope (SCOPE_REQUIRED), the route is dashboard-only (SESSION_REQUIRED), or a plan limit applies.
429Too many requests (RATE_LIMITED): wait the seconds Retry-After gives.