GuardMode 2023.2
Catalogic WebsiteDocumentation
  • Intro
  • Installation
    • System requirements
    • Installing GuardMode Agent on Windows
      • Updating GuardMode Agent on Windows
    • Installing GuardMode Agent on Linux
    • Uninstalling GuardMode Agent on Windows
    • Uninstalling GuardMode Agent on Linux
    • Configuring GuardMode Agent for SAMBA setup
    • Uninstalling GuardMode Agent on SAMBA setup
  • Agent Configuration
    • General Settings
    • Excluded Paths Configuration
    • Adding malware detection rules
      • Honeypot and Decoy Files
      • Write Operations Threshold
      • Detecting File Renaming with Abnormal File Extensions
      • Special Files Monitoring
    • Security Incident Detection
    • SMB Monitoring (Linux Only)
    • Event Reports
      • Configuring Event Reports
      • Excluding Paths From Event Reports
      • Tagging Agent
    • NFS Share Monitoring
    • Altering Audit Rules
    • Changing Blocklist Configuration
  • Using GuardMode Agent Command Line
    • Agent CLI Reference
  • REST API Documentation
  • On-demand Scanning
  • Logging
  • FAQ
  • Found an issue?
Powered by GitBook
On this page

REST API Documentation

PreviousAgent CLI ReferenceNextOn-demand Scanning

Removes an agent tag

delete
Authorizations
Path parameters
idstring · uuidRequired
Header parameters
api-versionstringRequired
Responses
204
Tag was removed
400
Bad request was sent
delete
DELETE /settings/tags/{id} HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*

No content

Get current file system events configuration

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
Current file system events configuration
application/json
get
GET /settings/events HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

Current file system events configuration

{
  "queryingDelay": "text",
  "savingDelay": "text",
  "incidentDetection": {
    "enabled": true,
    "inactivityPeriod": "text"
  }
}

Get all excluded paths

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
Current listing of excluded paths
404
Excluded paths file was not found
get
GET /settings/excluded-paths HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
{
  "paths": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "path": "text",
      "user": "text"
    }
  ]
}

Get single excluded path

get
Authorizations
Path parameters
idstring · uuidRequired

Excluded path identifier

Header parameters
api-versionstringRequired
Responses
200
A single excluded path
404
Excluded path was not found or excluded paths file was not found
get
GET /settings/excluded-paths/{id} HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "path": "text",
  "user": "text"
}

Remove excluded path

delete
Authorizations
Path parameters
idstring · uuidRequired

Excluded path identifier

Header parameters
api-versionstringRequired
Responses
204
Excluded path was removed
404
Excluded paths file was not found
delete
DELETE /settings/excluded-paths/{id} HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*

No content

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
Success
get
GET /settings/reports/file-event-report HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

Success

{
  "enabled": true,
  "timeZone": "text",
  "scheduledHours": [
    "10:34:25"
  ]
}
delete
Authorizations
Query parameters
hourstring · timeOptional
Header parameters
api-versionstringRequired
Responses
200
Success
400
Bad Request
422
Client Error
delete
DELETE /settings/reports/file-event-report/hours HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
{
  "enabled": true,
  "timeZone": "text",
  "scheduledHours": [
    "10:34:25"
  ]
}
get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
Success
get
GET /settings/reports/file-event-report/excluded-paths HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

Success

[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "path": "text",
    "user": "text"
  }
]
delete
Authorizations
Path parameters
idstring · uuidRequired
Header parameters
api-versionstringRequired
Responses
204
No Content
400
Bad Request
delete
DELETE /settings/reports/file-event-report/excluded-paths/{id} HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*

No content

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
Success
get
GET /settings/reports/file-event-report/timezones HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

Success

[
  {
    "id": "text",
    "offset": "text"
  }
]

Returns current file integrity configuration

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
File integrity configuration
get
GET /settings/file-integrity HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

File integrity configuration

{
  "enabled": true,
  "paths": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "prefix": "text",
      "checkFileContents": true
    }
  ]
}

Removes path with specified ID from file integrity configuration

delete
Authorizations
Query parameters
idstring · uuidOptional

ID of the path to be removed

Header parameters
api-versionstringRequired
Responses
200
Path was successfully removed
204
No Content
400
Request validation failed
delete
DELETE /settings/file-integrity HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
{
  "enabled": true,
  "paths": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "prefix": "text",
      "checkFileContents": true
    }
  ]
}

List all file system event types

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
A collection of all file system event types
application/json
get
GET /events/types HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

A collection of all file system event types

[
  {
    "id": 1,
    "name": "text"
  }
]

List file system events

get
Authorizations
Query parameters
Startstring · date-timeOptional
Endstring · date-timeOptional
Limitinteger · int32 · min: 1 · max: 5000Optional
CursorstringOptional
incidentstring · uuidOptional
Header parameters
api-versionstringRequired
Responses
200
A collection of file system events
application/json
400
Request validation failed
application/json
get
GET /events HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
{
  "events": [
    {
      "filename": "text",
      "oldFilename": "text",
      "occurrenceTimeStamp": "2025-05-25T10:34:25.482Z",
      "insertionTimeStamp": "2025-05-25T10:34:25.482Z",
      "type": {
        "id": 1,
        "name": "text"
      },
      "username": "text",
      "pid": 1,
      "networkUsername": "text"
    }
  ],
  "nextRequestCursor": "text",
  "numberOfItems": 1
}

Get current honeypot configuration

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
Current honeypot configuration
get
GET /settings/honeypot HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

Current honeypot configuration

{
  "sourcePath": "text",
  "placementPaths": [
    "text"
  ]
}

Remove placement path from honeypot configuration

delete
Authorizations
Query parameters
pathstringOptional

Placement path

Header parameters
api-versionstringRequired
Responses
200
An updated honeypot configuration without the selected placement path
400
Request validation failed
delete
DELETE /settings/honeypot HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
{
  "sourcePath": "text",
  "placementPaths": [
    "text"
  ]
}

List all security incidents

get
Authorizations
Query parameters
userstringOptional

User name. Only includes the incidents which were created for a specific user

Header parameters
api-versionstringRequired
Responses
200
A list of all detected security incidents
application/json
get
GET /security-incidents HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

A list of all detected security incidents

[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "user": "text",
    "start": "2025-05-25T10:34:25.482Z",
    "end": "2025-05-25T10:34:25.482Z"
  }
]

List all affected files linked to an incident with provided identifier

get
Authorizations
Path parameters
incidentIdstring · uuidRequired

Incident identifier

Query parameters
Limitinteger · int32 · min: 1 · max: 2000Optional

Maximum number of entries to be returned

CursorstringOptional

Cursor to filter out already returned entries

Header parameters
api-versionstringRequired
Responses
200
A list of affected files connected to an incident with a given identifier
application/json
400
Request validation failed
application/json
404
An incident with provided identifier was not found
application/json
get
GET /security-incidents/{incidentId}/files HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
[
  {
    "originalPath": "text",
    "mostRecentPath": "text",
    "firstModificationTime": "2025-05-25T10:34:25.482Z",
    "modification": {
      "id": 1,
      "name": "text"
    }
  }
]

Get suspicious events connected to an incident with provided identifier

get
Authorizations
Path parameters
idstring · uuidRequired

Incident identifier

Query parameters
Startstring · date-timeOptional
Endstring · date-timeOptional
Limitinteger · int32 · min: 1 · max: 5000Optional
CursorstringOptional
Header parameters
api-versionstringRequired
Responses
200
A collection of events connected to an incident with a given identifier
application/json
400
Request validation failed
application/json
404
An incident with provided identifier was not found
application/json
get
GET /security-incidents/{id}/events HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
{
  "events": [
    {
      "filename": "text",
      "oldFilename": "text",
      "occurrenceTimeStamp": "2025-05-25T10:34:25.482Z",
      "insertionTimeStamp": "2025-05-25T10:34:25.482Z",
      "type": {
        "id": 1,
        "name": "text"
      },
      "username": "text",
      "pid": 1,
      "networkUsername": "text"
    }
  ],
  "nextRequestCursor": "text",
  "numberOfItems": 1
}

Get all possible values of affected file modification types

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
A list of all possible values of affected file modification types
application/json
get
GET /security-incidents/modification-types HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

A list of all possible values of affected file modification types

[
  {
    "id": 1,
    "name": "text"
  }
]

Removes the current registration from a management server

delete
Authorizations
Header parameters
api-versionstringRequired
Responses
204
Registration is removed
delete
DELETE /registrations HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
204

Registration is removed

No content

Returns block list information

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
Current block list data
get
GET /settings/block-list HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

Current block list data

{
  "lastUpdated": "2025-05-25T10:34:25.482Z",
  "fileGroupCount": 1
}

Returns skip list information

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
Current skip list
get
GET /settings/block-list/skip HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

Current skip list

{
  "filters": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "createdDate": "2025-05-25T10:34:25.482Z",
      "pattern": "text"
    }
  ]
}

Remove a pattern from skip list

delete
Authorizations
Path parameters
idstring · uuidRequired

Skip list pattern identifier

Header parameters
api-versionstringRequired
Responses
204
Skip pattern was removed
400
Request validation failed
delete
DELETE /settings/block-list/skip/{id} HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*

No content

Get all scans

get
Authorizations
Query parameters
Limitinteger · int32 · min: 1 · max: 2000Optional

Maximum number of entries to be returned

CursorstringOptional

Cursor to filter out already returned entries

Header parameters
api-versionstringRequired
Responses
200
Returns a list of all scans, both ended and ongoing
400
Bad Request
get
GET /scans HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "startedAt": "2025-05-25T10:34:25.482Z",
    "endedAt": "2025-05-25T10:34:25.482Z",
    "lastScannedPath": "text",
    "scannedFilesCount": 1,
    "suspiciousFilesCount": 1,
    "state": {
      "id": 1,
      "name": "text"
    },
    "pathsToScan": [
      {
        "value": "text",
        "errorMessage": "text"
      }
    ]
  }
]

Get a scan with a given ID

get
Authorizations
Path parameters
idstring · uuidRequired
Header parameters
api-versionstringRequired
Responses
200
Returns a scan with provided ID
404
There is no scan with a given ID
get
GET /scans/{id} HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "startedAt": "2025-05-25T10:34:25.482Z",
  "endedAt": "2025-05-25T10:34:25.482Z",
  "lastScannedPath": "text",
  "scannedFilesCount": 1,
  "suspiciousFilesCount": 1,
  "state": {
    "id": 1,
    "name": "text"
  },
  "pathsToScan": [
    {
      "value": "text",
      "errorMessage": "text"
    }
  ]
}

Get suspicious files' details from a scan with a given ID

get
Authorizations
Path parameters
idstring · uuidRequired
Query parameters
Limitinteger · int32 · min: 1 · max: 1000Optional

Maximum number of entries to be returned

CursorstringOptional

Cursor to filter out already returned entries

Header parameters
api-versionstringRequired
Responses
200
Returns a list of suspicious files found by this scan
400
Bad Request
404
There is no scan with a given ID
get
GET /scans/{id}/suspicious-files HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "startedAt": "2025-05-25T10:34:25.482Z",
  "endedAt": "2025-05-25T10:34:25.482Z",
  "lastScannedPath": "text",
  "scannedFilesCount": 1,
  "suspiciousFilesCount": 1,
  "state": {
    "id": 1,
    "name": "text"
  },
  "pathsToScan": [
    {
      "value": "text",
      "errorMessage": "text"
    }
  ]
}

Attempts to stop a scan with given ID

post
Authorizations
Path parameters
idstring · uuidRequired
Header parameters
api-versionstringRequired
Responses
200
Scan was successfully stopped
204
Scan has already finished
404
Scan with provided ID doesn't exist
422
Scan with provided ID cannot be stopped
post
POST /scans/{id}/stop HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*

No content

Returns current SMB monitoring configuration

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
Current SMB monitoring configuration
application/json
get
GET /settings/smb HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

Current SMB monitoring configuration

{
  "enabled": true,
  "message": {
    "template": "text"
  },
  "listener": {
    "port": 1,
    "endMarker": "text"
  }
}

Get current threshold configuration.

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
Current threshold configuration
get
GET /settings/threshold HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

Current threshold configuration

{
  "entropyCheck": {
    "enabled": true,
    "maxCheckAttempts": 1
  },
  "magicNumberCheck": {
    "enabled": true,
    "filesChecked": 1
  },
  "numberOfBuckets": 1,
  "pointsLimit": 1,
  "writesPerSecond": {
    "high": 1,
    "medium": 1,
    "low": 1
  },
  "riskWeights": {
    "high": 1,
    "medium": 1,
    "low": 1
  }
}

Get OpenTelemetry metrics of the Agent as a Prometheus log

get
Responses
200
Success
get
GET /metrics HTTP/1.1
Host: 
Accept: */*
200

Success

No content

Get Agent's healtcheck

get
Responses
200
Success
get
GET /health HTTP/1.1
Host: 
Accept: */*
200

Success

No content

  • GETReturns all agent tags
  • POSTAdds a new agent tag
  • DELETERemoves an agent tag
  • PUTUpdate password for default user
  • GETGet current file system events configuration
  • PUTUpdate file system events configuration
  • GETGet all excluded paths
  • POSTCreate new excluded path
  • GETGet single excluded path
  • DELETERemove excluded path
  • GET/settings/reports/file-event-report
  • PUT/settings/reports/file-event-report
  • POST/settings/reports/file-event-report/hours
  • DELETE/settings/reports/file-event-report/hours
  • GET/settings/reports/file-event-report/excluded-paths
  • POST/settings/reports/file-event-report/excluded-paths
  • DELETE/settings/reports/file-event-report/excluded-paths/{id}
  • GET/settings/reports/file-event-report/timezones
  • GETReturns current file integrity configuration
  • POSTAdds new monitored path to file integrity configuration
  • PUTUpdates file integrity strategy configuration
  • DELETERemoves path with specified ID from file integrity configuration
  • PUTUpdates one of monitored paths
  • GETList all file system event types
  • GETList file system events
  • GETGet current honeypot configuration
  • POSTAdd placement path to honeypot configuration
  • PUTUpdate honeypot configuration
  • DELETERemove placement path from honeypot configuration
  • GETList all security incidents
  • GETList all affected files linked to an incident with provided identifier
  • GETGet suspicious events connected to an incident with provided identifier
  • GETGet all possible values of affected file modification types
  • POSTRegisters the agent's node with a management server
  • DELETERemoves the current registration from a management server
  • GETReturns block list information
  • PUTUpdate block list patterns
  • GETReturns skip list information
  • POSTAdd a pattern to skip list
  • PUTUpdate skip list patterns
  • DELETERemove a pattern from skip list
  • GETGet all scans
  • POSTStart new scan
  • GETGet a scan with a given ID
  • GETGet suspicious files' details from a scan with a given ID
  • POSTAttempts to stop a scan with given ID
  • GETReturns current SMB monitoring configuration
  • PUTUpdates SMB monitoring configuration
  • GETGet current threshold configuration.
  • PUTUpdate threshold configuration.
  • GETGet OpenTelemetry metrics of the Agent as a Prometheus log
  • GETGet Agent's healtcheck

Returns all agent tags

get
Authorizations
Header parameters
api-versionstringRequired
Responses
200
A list of all currently added tags
get
GET /settings/tags HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Accept: */*
200

A list of all currently added tags

[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "tag": "text",
    "createdAt": "2025-05-25T10:34:25.482Z"
  }
]

Adds a new agent tag

post
Authorizations
Header parameters
api-versionstringRequired
Body
tagstring · min: 1 · max: 250Required
Responses
201
Tag was successfully added
400
Bad request was sent
409
Tag already exists and can't be added again
post
POST /settings/tags HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 14

{
  "tag": "text"
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "tag": "text",
  "createdAt": "2025-05-25T10:34:25.482Z"
}

Update password for default user

put
Authorizations
Header parameters
api-versionstringRequired
Body
newPasswordstring · min: 5 · max: 20000Required
Responses
204
Password was successfully updated
400
Request validation failed
application/json
500
Configuration file is malformed
put
PUT /authentication/password HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 22

{
  "newPassword": "text"
}

No content

Deprecated

Update file system events configuration

put
Authorizations
Header parameters
api-versionstringRequired
Body
queryingDelaystring · date-spanOptional
savingDelaystring · date-spanOptional
Responses
200
Updated file system events configuration
application/json
400
Request validation failed
application/json
put
PUT /settings/events HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 45

{
  "queryingDelay": "text",
  "savingDelay": "text"
}
{
  "queryingDelay": "text",
  "savingDelay": "text",
  "incidentDetection": {
    "enabled": true,
    "inactivityPeriod": "text"
  }
}

Create new excluded path

post
Authorizations
Header parameters
api-versionstringRequired
Body
pathstring · min: 1Required

Path to exclude

userstring | nullableOptional

Username for which the path should be excluded from monitoring

Responses
201
An excluded path entry was created
400
Request validation failed
404
Excluded paths file was not found
409
Excluded path already exists in the file
post
POST /settings/excluded-paths HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 29

{
  "path": "text",
  "user": "text"
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "path": "text",
  "user": "text"
}
put
Authorizations
Header parameters
api-versionstringRequired
Body
enabledbooleanRequired
timeZonestring · min: 1Required
Responses
200
Success
400
Bad Request
put
PUT /settings/reports/file-event-report HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 34

{
  "enabled": true,
  "timeZone": "text"
}
{
  "enabled": true,
  "timeZone": "text",
  "scheduledHours": [
    "10:34:25"
  ]
}
post
Authorizations
Header parameters
api-versionstringRequired
Body
hourstring · timeRequired
Responses
200
Success
400
Bad Request
409
Conflict
post
POST /settings/reports/file-event-report/hours HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 19

{
  "hour": "10:34:25"
}
{
  "enabled": true,
  "timeZone": "text",
  "scheduledHours": [
    "10:34:25"
  ]
}
post
Authorizations
Header parameters
api-versionstringRequired
Body
pathstring · min: 1Required

Path to exclude

userstring | nullableOptional

Username for which the path should be excluded from monitoring

Responses
201
Created
400
Bad Request
409
Conflict
post
POST /settings/reports/file-event-report/excluded-paths HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 29

{
  "path": "text",
  "user": "text"
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "prefix": {
    "isQualified": true,
    "fileName": "text"
  },
  "username": "text"
}

Adds new monitored path to file integrity configuration

post
Authorizations
Header parameters
api-versionstringRequired
Body

Request to add new monitored path to file integrity configuration

prefixstring · min: 1Required

Path prefix to monitor

checkFileContentsbooleanRequired

Indicates if the file contents are checked to reduce number of false positives

Responses
200
Success
201
New path was successfully added
400
Request validation failed
409
Conflict
post
POST /settings/file-integrity HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 42

{
  "prefix": "text",
  "checkFileContents": true
}
{
  "enabled": true,
  "paths": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "prefix": "text",
      "checkFileContents": true
    }
  ]
}

Updates file integrity strategy configuration

put
Authorizations
Header parameters
api-versionstringRequired
Body

Updates file integrity strategy configuration

enabledbooleanRequired

Indicates if the file integrity strategy is enabled

Responses
200
Success
400
Request validation failed
put
PUT /settings/file-integrity HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 16

{
  "enabled": true
}
{
  "enabled": true,
  "paths": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "prefix": "text",
      "checkFileContents": true
    }
  ]
}

Updates one of monitored paths

put
Authorizations
Path parameters
idstring · uuidRequired

ID of path to update

Header parameters
api-versionstringRequired
Body
checkFileContentsbooleanRequired

Indicates if the file contents are checked to reduce number of false positives

Responses
200
Success
404
Not Found
put
PUT /settings/file-integrity/{id} HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 26

{
  "checkFileContents": true
}
{
  "enabled": true,
  "paths": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "prefix": "text",
      "checkFileContents": true
    }
  ]
}

Add placement path to honeypot configuration

post
Authorizations
Header parameters
api-versionstringRequired
Body
placementPathstring · min: 1Required
Responses
200
An updated honeypot configuration with the new placement path
400
Request validation failed
post
POST /settings/honeypot HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 24

{
  "placementPath": "text"
}
{
  "sourcePath": "text",
  "placementPaths": [
    "text"
  ]
}

Update honeypot configuration

put
Authorizations
Header parameters
api-versionstringRequired
Body
placementPathsstring[]Required

A set of placement paths

Responses
200
Updated honeypot configuration
400
Request validation failed
put
PUT /settings/honeypot HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 27

{
  "placementPaths": [
    "text"
  ]
}
{
  "sourcePath": "text",
  "placementPaths": [
    "text"
  ]
}

Registers the agent's node with a management server

post
Authorizations
Header parameters
api-versionstringRequired
Body

A request that registers an agent with a management server

instance_idstring · uuidRequired

Agent instance identifier

server_addressstring · min: 1Required

The Guard Mode management server address/host

key_idstring · uuidRequired

API key identifier

api_key_secretstring · min: 1Required

API key secret

Responses
200
Registration response with an extra data about the node
400
Request validation failed
409
Agent is already registered with a server instance
post
POST /registrations HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 150

{
  "instance_id": "123e4567-e89b-12d3-a456-426614174000",
  "server_address": "text",
  "key_id": "123e4567-e89b-12d3-a456-426614174000",
  "api_key_secret": "text"
}
{
  "fqdn": "text",
  "operatingSystem": "text"
}

Update block list patterns

put
Authorizations
Header parameters
api-versionstringRequired
Body
lastUpdatedstring · date-timeRequired

The timestamp which will be set as the 'last update time' for the block list

filtersstring[]Required

Collection of path filters

Example: ["*.exe"]
Responses
204
Block list patterns were updated
304
Block list was not modified because it is already up to date
400
Request validation failed
put
PUT /settings/block-list HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 62

{
  "lastUpdated": "2025-05-25T10:34:25.482Z",
  "filters": [
    "*.exe"
  ]
}

No content

Add a pattern to skip list

post
Authorizations
Header parameters
api-versionstringRequired
Body
patternstring · min: 1Required

File path pattern

Responses
204
Skip pattern added
400
Request validation failed
409
Pattern already exists in the skip list
post
POST /settings/block-list/skip HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 18

{
  "pattern": "text"
}

No content

Update skip list patterns

put
Authorizations
Header parameters
api-versionstringRequired
Body
filtersstring[]Required

Collection of path filters

Example: ["*.exe"]
Responses
204
Skip list patterns updated
400
Request validation failed
put
PUT /settings/block-list/skip HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 21

{
  "filters": [
    "*.exe"
  ]
}

No content

Start new scan

post
Authorizations
Header parameters
api-versionstringRequired
Body

Scan creation request

pathsstring[]Required

Paths that will be recursively scanned

checkBlockListPatternsbooleanRequired

Indicates if file names found during scan should be analyzed to find files with names often used by ransomware

sendAlertsbooleanOptional

If true, Agent will raise alert on suspicious file found

Responses
200
Returns a newly created scan
202
Accepted
400
Bad request was sent
post
POST /scans HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 66

{
  "paths": [
    "text"
  ],
  "checkBlockListPatterns": true,
  "sendAlerts": true
}

No content

Updates SMB monitoring configuration

put
Authorizations
Header parameters
api-versionstringRequired
Body
enabledbooleanRequired
Responses
200
Updated SMB monitoring configuration
application/json
400
Request validation failed
application/json
put
PUT /settings/smb HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 87

{
  "enabled": true,
  "message": {
    "template": "text"
  },
  "listener": {
    "port": 1,
    "endMarker": "text"
  }
}
{
  "enabled": true,
  "message": {
    "template": "text"
  },
  "listener": {
    "port": 1,
    "endMarker": "text"
  }
}

Update threshold configuration.

put
Authorizations
Header parameters
api-versionstringRequired
Body
numberOfBucketsinteger · int32 · max: 1000Required

Number of threshold buckets

pointsLimitinteger · int32 · max: 1000Required

Limit of data points to analyze

Responses
200
Updated threshold configuration
400
Request validation failed
put
PUT /settings/threshold HTTP/1.1
Host: 
Authorization: Basic username:password
api-version: text
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 235

{
  "entropyCheck": {
    "enabled": true,
    "maxCheckAttempts": 1
  },
  "magicNumberCheck": {
    "enabled": true,
    "filesChecked": 1
  },
  "numberOfBuckets": 1,
  "pointsLimit": 1,
  "writesPerSecond": {
    "high": 1,
    "medium": 1,
    "low": 1
  },
  "riskWeights": {
    "high": 1,
    "medium": 1,
    "low": 1
  }
}
{
  "entropyCheck": {
    "enabled": true,
    "maxCheckAttempts": 1
  },
  "magicNumberCheck": {
    "enabled": true,
    "filesChecked": 1
  },
  "numberOfBuckets": 1,
  "pointsLimit": 1,
  "writesPerSecond": {
    "high": 1,
    "medium": 1,
    "low": 1
  },
  "riskWeights": {
    "high": 1,
    "medium": 1,
    "low": 1
  }
}