List findings
GEThttps://api.fortwatch.ai/app/findings
Everything the scanners found across the workspace; info findings are left out unless asked for. Filter by scan, severity, asset, project, scanner or issue status.
Paged: send page and limit (100 by default, at most 500); the total is in X-Total-Count (paging).
Parameters
| Name | In | Type | Description |
|---|---|---|---|
scanId | query | integer | |
includeInfo | query | string | |
severity | query | string | |
assetId | query | integer | |
projectId | query | integer | |
scanner | query | string | |
issueStatus | query | string | |
includeInactive | query | string | |
page | query | number | |
limit | query | number |
Example request
curl -X GET "https://api.fortwatch.ai/app/findings?limit=100" \
-H "Authorization: Bearer $FORTWATCH_API_KEY"Response 200
The request succeeded.
| Field | Type | Description |
|---|---|---|
idrequired | number | |
scanIdrequired | number | null | |
investigationIdrequired | number | null | |
scannerrequired | string | |
severityrequired | string | |
templateIdrequired | string | |
namerequired | string | |
descriptionrequired | string | null | |
matchedAtrequired | string | null | |
tagsrequired | string | null | |
cveIdsrequired | string | null | |
referencerequired | string | null | |
remediationrequired | string | null | |
cvssScorerequired | number | null | |
cvssMetricsrequired | string | null | |
rawJsonrequired | object | null | |
issueIdrequired | number | null | |
createdAtrequired | string (date-time) | |
scanrequired | object | |
idrequired | number | |
assetIdrequired | number | |
statusrequired | string | |
triggeredByrequired | string | |
triggeredByUserIdrequired | number | null | |
failureCoderequired | string | null | |
failureDetailrequired | string | null | |
scannerIprequired | string | null | |
startedAtrequired | string (date-time) | null | |
completedAtrequired | string (date-time) | null | |
createdAtrequired | string (date-time) | |
updatedAtrequired | string (date-time) | |
assetrequired | object | |
idrequired | number | |
namerequired | object | null | |
valuerequired | string | |
typerequired | string | |
projectrequired | object | |
issuerequired | object | |
idrequired | number | |
statusrequired | string | |
titlerequired | string | |
categoryrequired | string |
[
{
"id": 42,
"scanId": 42,
"investigationId": 42,
"scanner": "string",
"severity": "string",
"templateId": "string",
"name": "Production",
"description": "string",
"matchedAt": "string",
"tags": "string",
"cveIds": "string",
"reference": "string",
"remediation": "string",
"cvssScore": 1,
"cvssMetrics": "string",
"rawJson": {},
"issueId": 42,
"createdAt": "2026-10-16T12:00:00.000Z",
"scan": {
"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": null,
"name": {},
"value": null,
"type": null,
"project": {}
}
},
"issue": {
"id": 42,
"status": "string",
"title": "string"
},
"category": "string"
}
]Errors
400 | The request is not valid: a field is missing or has the wrong shape (the message names it). |
401 | No valid credentials: the API key or access token is missing, revoked or expired (INVALID_API_KEY, INVALID_TOKEN). |
403 | Not allowed: the key or token lacks this scope (SCOPE_REQUIRED), the route is dashboard-only (SESSION_REQUIRED), or a plan limit applies. |
429 | Too many requests (RATE_LIMITED): wait the seconds Retry-After gives. |
Every code is explained in Errors.