API reference: brute-force protection

Read and change the brute-force protection settings for website and Windows logins.

Get the brute-force settings

GET /api/bruteforce/settings

Needs a Viewer or Admin key.

Replies

Status Meaning Body
200 OK BruteForceSettings

Reply fields

Field Type Description
sources list of BruteForceSource The logs to read for failed sign-ins. Send the whole list when you save (at most 50); a source you leave out is removed. Always present.
authFailurePoints number Risk points added for each failed sign-in, from above 0 up to 1000. Default 4. Always present.
escalationThreshold number The risk score at which an address is blocked. It must be above 0; default 20. Lower it to block sooner, raise it to allow more failures. Always present.
baseBlockTtlMinutes integer How long, in minutes, a block lasts when the address has just reached the threshold, from 1 to 10080 (7 days). Default 30. Blocks last longer as the score grows, up to maxBlockTtlMinutes. Always present.
maxBlockTtlMinutes integer The longest a block can last, in minutes. It must be at least baseBlockTtlMinutes and no more than 10080 (7 days). Default 240. Blocks always expire. Always present.

Change the brute-force settings

PUT /api/bruteforce/settings

Needs an Admin key.

Send the whole settings object, as GET returns it, with your changes.

Request body: BruteForceSettings

Field Type Description
sources list of BruteForceSource The logs to read for failed sign-ins. Send the whole list when you save (at most 50); a source you leave out is removed. Required.
authFailurePoints number Risk points added for each failed sign-in, from above 0 up to 1000. Default 4.
escalationThreshold number The risk score at which an address is blocked. It must be above 0; default 20. Lower it to block sooner, raise it to allow more failures.
baseBlockTtlMinutes integer How long, in minutes, a block lasts when the address has just reached the threshold, from 1 to 10080 (7 days). Default 30. Blocks last longer as the score grows, up to maxBlockTtlMinutes.
maxBlockTtlMinutes integer The longest a block can last, in minutes. It must be at least baseBlockTtlMinutes and no more than 10080 (7 days). Default 240. Blocks always expire.

Replies

Status Meaning Body
200 OK BruteForceSettingsSaved
400 Bad Request ApiError

Reply fields

Field Type Description
settings BruteForceSettings The brute-force settings as now saved. Always present.
logAccess list of any JSON One entry for each enabled log folder, saying whether PortWall could be given permission to read it. A failure here does not undo the save. Always present.
Updated 2026-10-27Something unclear or missing? Tell us.