FortWatchFortWatchDocs
Menu

Dismiss an issue

PATCHhttps://api.fortwatch.ai/app/issues/{id}/dismiss
Scope issues:writeOperation ID dismissIssue

With a reason (false_positive, accepted_risk, mitigating_control, not_applicable, noise), optional notes and an optional expiry (30d, 90d, 1y).

Parameters

NameInTypeDescription
idrequiredpathinteger

Request body

JSON, required.

FieldTypeDescription
reasonstringRequired.One of: false_positive, accepted_risk, mitigating_control, not_applicable, noise
notesstring | null
expiresInstring | null

Example request

curl -X PATCH "https://api.fortwatch.ai/app/issues/42/dismiss" \
  -H "Authorization: Bearer $FORTWATCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "reason": "false_positive",
  "notes": "string",
  "expiresIn": "string"
}'

Response 200

The request succeeded.

FieldTypeDescription
idrequirednumber
workspaceIdrequirednumber
assetIdrequirednumber
titlerequiredstring
descriptionrequiredstring | null
severityrequiredstring
statusrequiredstring
templateIdrequiredstring | null
dedupKeyrequiredstring
assignedTorequirednumber | null
resolutionrequiredstring | null
resolvedByrequiredstring | null
resolvedByScanIdrequirednumber | null
resolvedByUserIdrequirednumber | null
dismissedByUserIdrequirednumber | null
categoryrequiredstring
dueDaterequiredstring (date-time) | null
resolvedAtrequiredstring (date-time) | null
lastReopenedAtrequiredstring (date-time) | null
dismissReasonrequiredstring | null
dismissNotesrequiredstring | null
dismissExpiresAtrequiredstring (date-time) | null
firstSeenAtrequiredstring (date-time)
lastSeenAtrequiredstring (date-time)
lastCheckedAtrequiredstring (date-time) | null
reachabilityrequiredstring
verificationScanIdrequirednumber | null
verificationSkippedrequiredstring | null
createdAtrequiredstring (date-time)
updatedAtrequiredstring (date-time)
assigneerequiredobject
firstNamerequiredstring
lastNamerequiredstring
assetrequiredobject
idrequirednumber
namerequiredobject | null
valuerequiredstring
typerequiredstring
cdnProviderrequiredobject | null
projectrequiredobject
idrequirednumber
namerequiredstring
_countrequiredobject
findingsrequirednumber
resolvedByUserrequiredobject
firstNamerequiredstring
lastNamerequiredstring
dismissedByUserrequiredobject
firstNamerequiredstring
lastNamerequiredstring
verificationobject
statusrequiredstringOne of: queued, running, done, failed, skipped
scanIdrequirednumber | null
reasonrequiredstring | nullWhy no re-check started: limit, asset_not_active, ownership_unverified, error
nextScheduledAtrequiredstring (date-time) | nullThe asset's next scheduled scan, when no re-check started
json
{
  "id": 42,
  "workspaceId": 42,
  "assetId": 42,
  "title": "string",
  "description": "string",
  "severity": "string",
  "status": "string",
  "templateId": "string",
  "dedupKey": "string",
  "assignedTo": 1,
  "resolution": "string",
  "resolvedBy": "string",
  "resolvedByScanId": 42,
  "resolvedByUserId": 42,
  "dismissedByUserId": 42,
  "category": "string",
  "dueDate": "2026-10-16T12:00:00.000Z",
  "resolvedAt": "2026-10-16T12:00:00.000Z",
  "lastReopenedAt": "2026-10-16T12:00:00.000Z",
  "dismissReason": "string",
  "dismissNotes": "string",
  "dismissExpiresAt": "2026-10-16T12:00:00.000Z",
  "firstSeenAt": "2026-10-16T12:00:00.000Z",
  "lastSeenAt": "2026-10-16T12:00:00.000Z",
  "lastCheckedAt": "2026-10-16T12:00:00.000Z",
  "reachability": "string",
  "verificationScanId": 42,
  "verificationSkipped": "string",
  "createdAt": "2026-10-16T12:00:00.000Z",
  "updatedAt": "2026-10-16T12:00:00.000Z",
  "assignee": {
    "firstName": "string",
    "lastName": "string"
  },
  "asset": {
    "id": 42,
    "name": {},
    "value": "app.example.com",
    "type": "string",
    "cdnProvider": {},
    "project": {
      "id": 42,
      "name": "Production"
    }
  },
  "_count": {
    "findings": 1
  },
  "resolvedByUser": {
    "firstName": "string",
    "lastName": "string"
  },
  "dismissedByUser": {
    "firstName": "string",
    "lastName": "string"
  },
  "verification": {
    "status": "queued",
    "scanId": 42,
    "reason": "string",
    "nextScheduledAt": "2026-10-16T12:00:00.000Z"
  }
}

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.
404Not found in your workspace.
429Too many requests (RATE_LIMITED): wait the seconds Retry-After gives.