Admin URL protection is available since v1.3.0. All other security features are available since v2.0.0.
GET /security
Returns the current admin URL protection status.Response
Whether custom admin URL protection is active.
The configured custom login slug. Empty string if not set.
The full custom login URL. Empty string if protection is disabled.
The standard WordPress login URL.
GET /security/overview
Returns all security feature states in a single call.Response
Whether custom admin URL protection is active.
The configured custom login slug.
The full custom login URL.
The standard WordPress login URL.
Whether login attempt limiting is active.
Number of failed attempts before a lockout is triggered.
Time window in seconds in which failed attempts are counted.
Lockout duration in seconds.
Number of currently recorded lockout log entries.
Number of IPs in the blocklist.
Whether XML-RPC is disabled.
Whether the WordPress version is hidden from public output.
Whether 2FA is active for the currently authenticated user.
Current WordPress version.
Current WordPress locale.
POST /security/admin-url
Enables or updates the custom login slug. Direct access towp-login.php is blocked once a slug is configured.
Parameters
The custom login URL slug. Must be at least 4 characters and must not be a reserved slug such as
wp-admin, wp-login, admin, or login.Response
Always
true on success.The saved slug.
The resulting full custom login URL.
DELETE /security/admin-url
Disables custom admin URL protection and restores access to the defaultwp-login.php.
Response
Always
true on success.POST /security/limiter
Saves login attempt limiter settings.Parameters
Enable or disable the login attempt limiter.
Number of failed attempts before an IP is locked out. Defaults to
5.Time window in seconds during which failed attempts are counted. Defaults to
300.Lockout duration in seconds. Defaults to
900 (15 minutes).Response
Always
true on success.GET /security/lockouts
Returns the lockout log, sorted newest first.Response
DELETE /security/lockouts
Clears all lockout log entries.Response
Always
true on success.POST /security/lockouts/unlock
Unlocks a specific IP address, clearing its lockout transient and removing it from the lockout log.Parameters
The IP address to unlock.
Response
Always
true on success.GET /security/ip-blocklist
Returns all IPs and CIDR ranges currently in the blocklist.Response
POST /security/ip-blocklist
Adds an IP address or CIDR range to the blocklist. Blocked IPs receive a403 response on all requests.
Parameters
A valid IPv4 or IPv6 address, or a CIDR range (e.g.
203.0.113.0/24).Optional description for why this IP is blocked.
Response
Always
true on success.DELETE /security/ip-blocklist
Removes an IP address or CIDR range from the blocklist.Parameters
The IP address or CIDR range to remove.
Response
Always
true on success.POST /security/hardening
Saves XML-RPC and WordPress version visibility settings.Parameters
Disable XML-RPC entirely by returning a
403 response to all XML-RPC requests.Remove the WordPress version from the generator meta tag and RSS feed.
Response
Always
true on success.POST /security/integrity
Runs a WordPress core file integrity check by comparing MD5 hashes against the official checksums fromapi.wordpress.org. Only wp-admin and wp-includes are scanned — wp-content is excluded.
Response
The WordPress version used for the checksum lookup.
The WordPress locale used for the checksum lookup.
Total number of files checked.
Number of files that passed the check.
true if no modified or missing files were found.Relative paths of core files that are absent from disk.
GET /security/2fa
Returns the two-factor authentication (TOTP) status for the currently authenticated user.Response
Whether 2FA is active for this user.
Whether a TOTP secret is stored for this user.
Number of remaining backup codes.
POST /security/2fa/setup
Generates a new TOTP secret and returns theotpauth:// URI and a QR code URL. The secret is saved as pending until verified via POST /security/2fa/verify.
Response
The Base32-encoded TOTP secret. Display this to the user for manual entry into an authenticator app.
The
otpauth://totp/... URI that encodes the secret, issuer, and account.URL of a QR code image encoding the
otp_url. Scan with an authenticator app.POST /security/2fa/verify
Verifies a TOTP code from the authenticator app. On success, the pending secret is activated and a set of one-time backup codes is returned.Backup codes are shown only once. Store them securely — they cannot be retrieved later.
Parameters
The 6-digit TOTP code from the authenticator app.
Response
Always
true on success.Array of 8 one-time backup codes shown only on this response.
DELETE /security/2fa
Disables two-factor authentication for the currently authenticated user and removes all stored secrets and backup codes.Response
Always
true on success.