FortWatchFortWatchDocs
Menu

List assets

GEThttps://api.fortwatch.ai/app/assets
Scope assets:readPagedOperation ID listAssets

Every asset of the workspace (domains, subdomains, IP addresses, cloud buckets) with its issue counts, ownership state and scan status. Filter by project, type or status.

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

Parameters

NameInTypeDescription
projectIdquerynumber
typequerystring
statusquerystring
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/assets?limit=100" \
  -H "Authorization: Bearer $FORTWATCH_API_KEY"

Response 200

The request succeeded.

FieldTypeDescription
idrequirednumber
projectIdrequirednumber
namerequiredstring | null
typerequiredstring
valuerequiredstring
statusrequiredstring
canonicalUrlrequiredstring | null
resolvedIprequiredstring | null
cdnProviderrequiredstring | null
bucketProviderrequiredstring | null
lastCheckedAtrequiredstring (date-time) | null
failReasonrequiredstring | null
skippedRedirectHostrequiredstring | null
disabledScannerTypesrequiredstring[]
portScanModerequiredstring
nucleiMinSeverityrequiredstring
ownershipVerifiedAtrequiredstring (date-time) | null
ownershipTokenrequiredstring
ownershipMethodrequiredstring | null
createdAtrequiredstring (date-time)
updatedAtrequiredstring (date-time)
projectrequiredobject
idrequirednumber
namerequiredstring
colorrequiredstring
scansrequiredobject[]
idrequirednumber
statusrequiredstring
createdAtrequiredstring (date-time)
_countrequiredobject
rootDomainrequiredobject | null
findingCountrequirednumber
issueCountrequirednumber
openBySeverityrequiredobject
criticalrequirednumber
highrequirednumber
mediumrequirednumber
lowrequirednumber
highestIssueSeverityrequiredobject | null
attentionReasonsrequiredstring[]
lastCompletedScanAtrequiredstring (date-time) | null
staleAfterDaysrequirednumber
json
[
  {
    "id": 42,
    "projectId": 42,
    "name": "Production",
    "type": "string",
    "value": "app.example.com",
    "status": "string",
    "canonicalUrl": "string",
    "resolvedIp": "string",
    "cdnProvider": "string",
    "bucketProvider": "string",
    "lastCheckedAt": "2026-10-16T12:00:00.000Z",
    "failReason": "string",
    "skippedRedirectHost": "string",
    "disabledScannerTypes": [
      "string"
    ],
    "portScanMode": "string",
    "nucleiMinSeverity": "string",
    "ownershipVerifiedAt": "2026-10-16T12:00:00.000Z",
    "ownershipToken": "string",
    "ownershipMethod": "string",
    "createdAt": "2026-10-16T12:00:00.000Z",
    "updatedAt": "2026-10-16T12:00:00.000Z",
    "project": {
      "id": 42,
      "name": "Production",
      "color": "string"
    },
    "scans": [
      {
        "id": null,
        "status": null,
        "createdAt": null
      }
    ],
    "_count": {},
    "rootDomain": {},
    "findingCount": 1,
    "issueCount": 1,
    "openBySeverity": {
      "critical": 1,
      "high": 1,
      "medium": 1,
      "low": 1
    },
    "highestIssueSeverity": {},
    "attentionReasons": [
      "string"
    ],
    "lastCompletedScanAt": "2026-10-16T12:00:00.000Z",
    "staleAfterDays": 1
  }
]

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.