Control which devices and IP addresses can authenticate with your application.Documentation Index
Fetch the complete documentation index at: https://docs.authforge.cc/llms.txt
Use this file to discover all available pages before exploring further.
Response signature model (Ed25519)
AuthForge signs/auth/validate and /auth/heartbeat success responses with a per-app Ed25519 private key.
- SDKs verify
signatureagainst the exact base64payloadstring using your app’spublicKey. appSecretauthenticates validate requests, but is not used for response signature verification.- Response shape includes
keyIdso clients can identify which signing key version produced the signature.
Success response shape
Tamper self-ban endpoint (public auth)
When your app detects tampering (anti-debug, runtime integrity checks, patch detection), you can call:POST
Trigger a self-ban request against the public auth host (
https://auth.authforge.cc).Request modes
/auth/selfban supports two request styles:
- Pre-session:
appId,appSecret,licenseKey,hwid,nonce - Post-session:
appId,sessionToken,hwid
| Field | Type | Default | Meaning |
|---|---|---|---|
revokeLicense | boolean | false pre-session / true post-session | Revoke the license key (post-session only) |
blacklistHwid | boolean | true | Add current HWID to app HWID blacklist |
blacklistIp | boolean | true | Add caller IP to app IP blacklist |
Critical safety rule
This prevents accidentally revoking arbitrary or attacker-supplied keys before the key is proven by a valid authenticated session.Example (pre-session, blacklist only)
Example (post-session, full lockout)
Get security config
GET
Retrieve the current blacklist and whitelist configuration for an application.
Path parameters
| Param | Type | Description |
|---|---|---|
appId | string | The application ID |
Example
Response (200)
Update security config
PUT
Replace the security configuration. Only included fields are updated; omitted lists remain unchanged.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
hwidBlacklist | string[] | No | HWIDs to block (max 1,000) |
hwidWhitelist | string[] | No | Allowed HWIDs only (max 1,000) |
ipBlacklist | string[] | No | IPs to block (max 1,000) |
ipWhitelist | string[] | No | Allowed IPs only (max 1,000) |
Example
Response (200)
Errors
| HTTP | Code | Cause |
|---|---|---|
| 400 | bad_request | Invalid entry format, exceeds 1,000 entries per list |
| 403 | forbidden | The app doesn’t belong to your account |
Clearing a list
Set the list to an empty array:Add to blacklist
POST
Add a single HWID or IP to the blacklist.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "hwid" or "ip" |
value | string | Yes | The HWID hash or IP address to block |
Example
Response (200)
Remove from blacklist
DELETE
Remove a single HWID or IP from the blacklist.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "hwid" or "ip" |
value | string | Yes | The entry to remove |
Example
Response (200)
Add to whitelist
POST
Add a single HWID or IP to the whitelist. Enabling a whitelist restricts authentication to only listed entries.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "hwid" or "ip" |
value | string | Yes | The HWID hash or IP address to allow |
Example
Response (200)
Remove from whitelist
DELETE
Remove a single HWID or IP from the whitelist. If the whitelist becomes empty, allowlist mode is deactivated.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "hwid" or "ip" |
value | string | Yes | The entry to remove |
Example
Response (200)
Limits
| Constraint | Value |
|---|---|
| Max entries per list | 1,000 |
| HWID value max length | 128 characters |
| IP value max length | 45 characters (IPv4 and IPv6) |
| HWID value min length | 1 character |
| IP value min length | 7 characters |
Evaluation order
During authentication, lists are checked in this order:- IP blacklist (reject if matched)
- IP whitelist (reject if list is non-empty and IP not listed)
- HWID blacklist (reject if matched)
- HWID whitelist (reject if list is non-empty and HWID not listed)