> For the complete documentation index, see [llms.txt](https://docs.papelship.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.papelship.com/qpapel-web-api-reference/client-security-and-anti-cheat.md).

# Client Security & Anti Cheat

Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files.

## List Client Computers

> Retrieve device fingerprints, active hardware signatures, suspicious heuristics, and threat assessments.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"Computer":{"type":"object","properties":{"id":{"type":"integer"},"cpu_id":{"type":"string"},"computer_name":{"type":"string"},"username":{"type":"string"},"ip_address":{"type":"string"},"product":{"type":"string"},"key_value":{"type":"string"},"status":{"type":"string"},"threat_level":{"type":"string"},"is_banned":{"type":"boolean"},"ban_reason":{"type":"string","nullable":true},"cracker_actions":{"type":"string","nullable":true},"blacklist_detections":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"product_name":{"type":"string"}}},"PaginationMeta":{"type":"object","properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/computers":{"get":{"tags":["Client Security & Anti-Cheat"],"summary":"List Client Computers","description":"Retrieve device fingerprints, active hardware signatures, suspicious heuristics, and threat assessments.","operationId":"listComputers","parameters":[{"name":"search","in":"query","description":"Search term across CPU ID, machine name, username, IP address, or license key.","schema":{"type":"string"}},{"name":"product","in":"query","description":"Filter by product cheat_value.","schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter by status flag.","schema":{"type":"string","enum":["active","suspicious","banned"]}},{"name":"threat_level","in":"query","description":"Filter by computed threat level.","schema":{"type":"string","enum":["clean","suspicious","critical"]}},{"name":"banned","in":"query","description":"Filter by ban status.","schema":{"type":"string","enum":["true","false"]}},{"name":"page","in":"query","description":"Page index.","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","description":"Page size limit.","schema":{"type":"integer","default":20,"maximum":100}}],"responses":{"200":{"description":"Paginated computers list.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"computers":{"type":"array","items":{"$ref":"#/components/schemas/Computer"}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}}}}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Ban or Unban Client Device

> Apply a hardware ban or restore access for a client computer record.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/computers":{"post":{"tags":["Client Security & Anti-Cheat"],"summary":"Ban or Unban Client Device","description":"Apply a hardware ban or restore access for a client computer record.","operationId":"setComputerBan","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["computerId","action"],"properties":{"computerId":{"type":"integer","description":"Unique ID of the computer."},"action":{"type":"string","enum":["ban","unban"]},"reason":{"type":"string","description":"Required when action is 'ban'."}}}}}},"responses":{"200":{"description":"Computer ban status updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Clear Suspicious Flags

> Reset anti-cheat alert flags and cracker detections on a client machine back to clean.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/computers":{"put":{"tags":["Client Security & Anti-Cheat"],"summary":"Clear Suspicious Flags","description":"Reset anti-cheat alert flags and cracker detections on a client machine back to clean.","operationId":"clearSuspiciousComputer","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["computerId","action"],"properties":{"computerId":{"type":"integer"},"action":{"type":"string","enum":["clear-suspicious"]}}}}}},"responses":{"200":{"description":"Suspicious flags cleared.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Get Build Integrity Status

> Retrieve active build validation settings, pending unverified hashes, and approved build signatures.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"BuildSetting":{"type":"object","properties":{"id":{"type":"integer"},"product_id":{"type":"string"},"product_name":{"type":"string"},"access_id":{"type":"string"},"status":{"type":"string"},"build_check":{"type":"boolean"},"build_check_retry_seconds":{"type":"integer"},"build_check_action":{"type":"string"},"pending_count":{"type":"integer"},"verified_count":{"type":"integer"}}},"UnverifiedBuild":{"type":"object","properties":{"id":{"type":"integer"},"api_key":{"type":"string"},"product_id":{"type":"string"},"build_sha256":{"type":"string"},"client_version":{"type":"string"},"cpu_id":{"type":"string"},"ip_address":{"type":"string"},"first_seen":{"type":"string","format":"date-time"},"last_seen":{"type":"string","format":"date-time"},"seen_count":{"type":"integer"},"status":{"type":"string"},"metadata":{"type":"object"}}},"VerifiedBuild":{"type":"object","properties":{"id":{"type":"integer"},"api_key":{"type":"string"},"product_id":{"type":"string"},"build_sha256":{"type":"string"},"client_version":{"type":"string"},"label":{"type":"string"},"approved_by":{"type":"string"},"approved_at":{"type":"string","format":"date-time"},"enabled":{"type":"boolean"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/build-check":{"get":{"tags":["Client Security & Anti-Cheat"],"summary":"Get Build Integrity Status","description":"Retrieve active build validation settings, pending unverified hashes, and approved build signatures.","operationId":"getBuildCheckStatus","parameters":[{"name":"status","in":"query","description":"Comma-separated list of build review statuses.","schema":{"type":"string"}}],"responses":{"200":{"description":"Build integrity verification payload.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"summary":{"type":"object","properties":{"protected_products":{"type":"integer"},"total_products":{"type":"integer"},"pending_builds":{"type":"integer"},"verified_builds":{"type":"integer"},"rejected_builds":{"type":"integer"}}},"settings":{"type":"array","items":{"$ref":"#/components/schemas/BuildSetting"}},"unverified":{"type":"array","items":{"$ref":"#/components/schemas/UnverifiedBuild"}},"verified":{"type":"array","items":{"$ref":"#/components/schemas/VerifiedBuild"}}}}}}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## List Server-Side Strings

> Retrieve encrypted strings and game memory offsets delivered at runtime to authenticated loaders.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"ServersideString":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"username":{"type":"string"},"access_id":{"type":"string"},"label":{"type":"string"},"type":{"type":"string","enum":["string","offset","function"]},"string_value":{"type":"string"},"product_cheat_value":{"type":"string","nullable":true},"force_key_check":{"type":"boolean"},"status":{"type":"string","enum":["active","inactive"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/serverside-strings":{"get":{"tags":["Client Security & Anti-Cheat"],"summary":"List Server-Side Strings","description":"Retrieve encrypted strings and game memory offsets delivered at runtime to authenticated loaders.","operationId":"listServersideStrings","responses":{"200":{"description":"List of server-side strings.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ServersideString"}}}}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Create Server-Side String

> Register a protected string, memory offset, or URL endpoint for runtime client retrieval.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"ServersideString":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"username":{"type":"string"},"access_id":{"type":"string"},"label":{"type":"string"},"type":{"type":"string","enum":["string","offset","function"]},"string_value":{"type":"string"},"product_cheat_value":{"type":"string","nullable":true},"force_key_check":{"type":"boolean"},"status":{"type":"string","enum":["active","inactive"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/serverside-strings":{"post":{"tags":["Client Security & Anti-Cheat"],"summary":"Create Server-Side String","description":"Register a protected string, memory offset, or URL endpoint for runtime client retrieval.","operationId":"createServersideString","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["label","string_value"],"properties":{"label":{"type":"string","description":"Identifier label for lookup."},"string_value":{"type":"string","description":"Value to store and securely encrypt."},"type":{"type":"string","enum":["string","offset","function"],"default":"string"},"product_cheat_value":{"type":"string","description":"Product association."},"force_key_check":{"type":"boolean","default":false,"description":"Require active key session before serving."},"status":{"type":"string","enum":["active","inactive"],"default":"active"}}}}}},"responses":{"200":{"description":"Server-side string created.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/ServersideString"}}}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Update Server-Side String

> Modify string payload, type, or product bindings.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"ServersideString":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"username":{"type":"string"},"access_id":{"type":"string"},"label":{"type":"string"},"type":{"type":"string","enum":["string","offset","function"]},"string_value":{"type":"string"},"product_cheat_value":{"type":"string","nullable":true},"force_key_check":{"type":"boolean"},"status":{"type":"string","enum":["active","inactive"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/serverside-strings/{id}":{"put":{"tags":["Client Security & Anti-Cheat"],"summary":"Update Server-Side String","description":"Modify string payload, type, or product bindings.","operationId":"updateServersideString","parameters":[{"name":"id","in":"path","required":true,"description":"Unique ID of the record.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["label","string_value"],"properties":{"label":{"type":"string"},"string_value":{"type":"string"},"type":{"type":"string","enum":["string","offset","function"]},"product_cheat_value":{"type":"string"},"force_key_check":{"type":"boolean"},"status":{"type":"string","enum":["active","inactive"]}}}}}},"responses":{"200":{"description":"String updated.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/ServersideString"}}}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Delete Server-Side String

> Permanently delete a protected string record.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"NotFoundError":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/serverside-strings/{id}":{"delete":{"tags":["Client Security & Anti-Cheat"],"summary":"Delete Server-Side String","description":"Permanently delete a protected string record.","operationId":"deleteServersideString","parameters":[{"name":"id","in":"path","required":true,"description":"Unique ID of the record.","schema":{"type":"integer"}}],"responses":{"200":{"description":"String deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}}}}
```

## Toggle Server-Side String Status

> Switch state between active and inactive.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/serverside-strings/{id}":{"patch":{"tags":["Client Security & Anti-Cheat"],"summary":"Toggle Server-Side String Status","description":"Switch state between active and inactive.","operationId":"toggleServersideStringStatus","parameters":[{"name":"id","in":"path","required":true,"description":"Unique ID of the record.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["active","inactive"]}}}}}},"responses":{"200":{"description":"Status updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## List Server-Side Binary Files

> List uploaded protected DLLs, binary segments, and asset files.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"ServersideFile":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"access_id":{"type":"string"},"label":{"type":"string"},"original_name":{"type":"string"},"stored_name":{"type":"string"},"storage_path":{"type":"string"},"mime_type":{"type":"string"},"file_size":{"type":"integer"},"file_hash":{"type":"string"},"status":{"type":"string","enum":["active","inactive"]},"download_count":{"type":"integer"},"last_downloaded":{"type":"string","format":"date-time"},"product_cheat_value":{"type":"string","nullable":true},"force_key_check":{"type":"boolean"},"force_encrypted_download":{"type":"boolean"},"install_path":{"type":"string","nullable":true}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/serverside-files":{"get":{"tags":["Client Security & Anti-Cheat"],"summary":"List Server-Side Binary Files","description":"List uploaded protected DLLs, binary segments, and asset files.","operationId":"listServersideFiles","responses":{"200":{"description":"List of server-side files.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ServersideFile"}}}}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Upload Server-Side Binary File

> Upload and encrypt a binary DLL or payload file (supports up to 50MB).

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"ServersideFile":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"access_id":{"type":"string"},"label":{"type":"string"},"original_name":{"type":"string"},"stored_name":{"type":"string"},"storage_path":{"type":"string"},"mime_type":{"type":"string"},"file_size":{"type":"integer"},"file_hash":{"type":"string"},"status":{"type":"string","enum":["active","inactive"]},"download_count":{"type":"integer"},"last_downloaded":{"type":"string","format":"date-time"},"product_cheat_value":{"type":"string","nullable":true},"force_key_check":{"type":"boolean"},"force_encrypted_download":{"type":"boolean"},"install_path":{"type":"string","nullable":true}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/serverside-files":{"post":{"tags":["Client Security & Anti-Cheat"],"summary":"Upload Server-Side Binary File","description":"Upload and encrypt a binary DLL or payload file (supports up to 50MB).","operationId":"uploadServersideFile","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["label","file"],"properties":{"label":{"type":"string","description":"Descriptive title."},"file":{"type":"string","format":"binary","description":"DLL or binary file payload."},"product_cheat_value":{"type":"string","description":"Associated product cheat_value."},"force_key_check":{"type":"boolean","default":true},"force_encrypted_download":{"type":"boolean","default":true},"install_path":{"type":"string","description":"Destination path on the target machine."}}}}}},"responses":{"200":{"description":"File uploaded and encrypted.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/ServersideFile"}}}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Overwrite File Payload Binary

> Upload a new binary version while keeping the existing file metadata and ID.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/serverside-files/{id}":{"post":{"tags":["Client Security & Anti-Cheat"],"summary":"Overwrite File Payload Binary","description":"Upload a new binary version while keeping the existing file metadata and ID.","operationId":"reuploadServersideFile","parameters":[{"name":"id","in":"path","required":true,"description":"Unique database ID of the file record.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file","reupload"],"properties":{"file":{"type":"string","format":"binary","description":"Replacement executable/DLL payload."},"reupload":{"type":"string","enum":["true"]}}}}}},"responses":{"200":{"description":"File payload re-uploaded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Update Server-Side File Settings

> Modify properties, active state, install path, or security enforcement flags.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/serverside-files/{id}":{"put":{"tags":["Client Security & Anti-Cheat"],"summary":"Update Server-Side File Settings","description":"Modify properties, active state, install path, or security enforcement flags.","operationId":"updateServersideFile","parameters":[{"name":"id","in":"path","required":true,"description":"Unique database ID of the file record.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string"},"status":{"type":"string","enum":["active","inactive"]},"product_cheat_value":{"type":"string"},"force_key_check":{"type":"boolean"},"force_encrypted_download":{"type":"boolean"},"install_path":{"type":"string"}}}}}},"responses":{"200":{"description":"File settings updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Delete Server-Side File

> Permanently remove a file record and delete binary data from storage.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"NotFoundError":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/serverside-files/{id}":{"delete":{"tags":["Client Security & Anti-Cheat"],"summary":"Delete Server-Side File","description":"Permanently remove a file record and delete binary data from storage.","operationId":"deleteServersideFile","parameters":[{"name":"id","in":"path","required":true,"description":"Unique database ID of the file record.","schema":{"type":"integer"}}],"responses":{"200":{"description":"File deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}}}}
```

## Regenerate File Access ID

> Rotate the download access ID token for security purposes.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/serverside-files/{id}":{"patch":{"tags":["Client Security & Anti-Cheat"],"summary":"Regenerate File Access ID","description":"Rotate the download access ID token for security purposes.","operationId":"regenerateFileAccessId","parameters":[{"name":"id","in":"path","required":true,"description":"Unique database ID of the file record.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["regenerate-access"]}}}}}},"responses":{"200":{"description":"Access token regenerated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## List Blacklisted Processes

> Retrieve executable process name blacklist rules scanned by client loaders.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"BlacklistedProcess":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"process_name":{"type":"string"},"is_active":{"type":"boolean"},"severity":{"type":"string","enum":["suspicious","ban"]},"description":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/blacklisted-processes":{"get":{"tags":["Client Security & Anti-Cheat"],"summary":"List Blacklisted Processes","description":"Retrieve executable process name blacklist rules scanned by client loaders.","operationId":"listBlacklistedProcesses","responses":{"200":{"description":"List of blacklisted processes.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/BlacklistedProcess"}}}}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Create Blacklisted Process Rule

> Add an executable process filename to client detection lists.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"BlacklistedProcess":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"process_name":{"type":"string"},"is_active":{"type":"boolean"},"severity":{"type":"string","enum":["suspicious","ban"]},"description":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/blacklisted-processes":{"post":{"tags":["Client Security & Anti-Cheat"],"summary":"Create Blacklisted Process Rule","description":"Add an executable process filename to client detection lists.","operationId":"createBlacklistedProcess","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["process_name"],"properties":{"process_name":{"type":"string","description":"Process filename (e.g. CheatEngine.exe, fiddler.exe)."},"is_active":{"type":"boolean","default":true},"severity":{"type":"string","enum":["suspicious","ban"],"default":"suspicious"},"description":{"type":"string","description":"Context note on why this process is flagged."}}}}}},"responses":{"200":{"description":"Blacklist rule added.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/BlacklistedProcess"}}}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Update Blacklisted Process Rule

> Modify rule parameters, action severity, or active status.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/blacklisted-processes/{id}":{"put":{"tags":["Client Security & Anti-Cheat"],"summary":"Update Blacklisted Process Rule","description":"Modify rule parameters, action severity, or active status.","operationId":"updateBlacklistedProcess","parameters":[{"name":"id","in":"path","required":true,"description":"Unique database ID of the rule.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"process_name":{"type":"string"},"is_active":{"type":"boolean"},"severity":{"type":"string","enum":["suspicious","ban"]},"description":{"type":"string"}}}}}},"responses":{"200":{"description":"Blacklist rule updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Delete Blacklisted Process Rule

> Remove a process filename rule from the blacklist catalog.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"NotFoundError":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/blacklisted-processes/{id}":{"delete":{"tags":["Client Security & Anti-Cheat"],"summary":"Delete Blacklisted Process Rule","description":"Remove a process filename rule from the blacklist catalog.","operationId":"deleteBlacklistedProcess","parameters":[{"name":"id","in":"path","required":true,"description":"Unique database ID of the rule.","schema":{"type":"integer"}}],"responses":{"200":{"description":"Blacklist rule removed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}}}}
```

## List Blacklisted Windows

> Retrieve active window title detection strings scanned by protected loaders.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"BlacklistedWindow":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"window_title":{"type":"string"},"is_active":{"type":"boolean"},"severity":{"type":"string","enum":["suspicious","ban"]},"is_partial_match":{"type":"boolean"},"description":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/blacklisted-windows":{"get":{"tags":["Client Security & Anti-Cheat"],"summary":"List Blacklisted Windows","description":"Retrieve active window title detection strings scanned by protected loaders.","operationId":"listBlacklistedWindows","responses":{"200":{"description":"List of window title blacklist rules.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/BlacklistedWindow"}}}}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Create Blacklisted Window Rule

> Add an exact or partial window title string to detect debuggers and disassemblers.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"BlacklistedWindow":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"window_title":{"type":"string"},"is_active":{"type":"boolean"},"severity":{"type":"string","enum":["suspicious","ban"]},"is_partial_match":{"type":"boolean"},"description":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/blacklisted-windows":{"post":{"tags":["Client Security & Anti-Cheat"],"summary":"Create Blacklisted Window Rule","description":"Add an exact or partial window title string to detect debuggers and disassemblers.","operationId":"createBlacklistedWindow","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["window_title"],"properties":{"window_title":{"type":"string","description":"Window title string to search for."},"is_active":{"type":"boolean","default":true},"severity":{"type":"string","enum":["suspicious","ban"],"default":"suspicious"},"description":{"type":"string","description":"Documentation note for this window check."},"is_partial_match":{"type":"boolean","default":true,"description":"Match substring occurrences within window titles."}}}}}},"responses":{"200":{"description":"Window blacklist rule created.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/BlacklistedWindow"}}}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Update Blacklisted Window Rule

> Modify window title matching options, severity actions, or active status.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"BadRequestError":{"description":"Invalid request body or query parameter structure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/blacklisted-windows/{id}":{"put":{"tags":["Client Security & Anti-Cheat"],"summary":"Update Blacklisted Window Rule","description":"Modify window title matching options, severity actions, or active status.","operationId":"updateBlacklistedWindow","parameters":[{"name":"id","in":"path","required":true,"description":"Unique database ID of the rule.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"window_title":{"type":"string"},"is_active":{"type":"boolean"},"severity":{"type":"string","enum":["suspicious","ban"]},"description":{"type":"string"},"is_partial_match":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Window rule updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}}}}
```

## Delete Blacklisted Window Rule

> Permanently remove a window title check from the blacklist.

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"tags":[{"name":"Client Security & Anti-Cheat","description":"Device fingerprint monitoring, process blacklists, window title filters, and server-side protected strings/files."}],"servers":[{"url":"https://papelship.com/api/qpapel/v1","description":"Production Server"}],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]},{"ApiKeyHeaderLegacy":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","description":"Standard HTTP Bearer token authentication header (e.g. `Authorization: Bearer pk_live_...`)."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Custom header API key authentication parameter (`x-api-key: pk_live_...`)."},"ApiKeyHeaderLegacy":{"type":"apiKey","in":"header","name":"api-key","description":"Legacy custom header API key fallback parameter (`api-key: pk_live_...`)."}},"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}},"responses":{"UnauthorizedError":{"description":"Authentication failed. Missing or invalid developer API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}},"NotFoundError":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardErrorResponse"}}}}}},"paths":{"/blacklisted-windows/{id}":{"delete":{"tags":["Client Security & Anti-Cheat"],"summary":"Delete Blacklisted Window Rule","description":"Permanently remove a window title check from the blacklist.","operationId":"deleteBlacklistedWindow","parameters":[{"name":"id","in":"path","required":true,"description":"Unique database ID of the rule.","schema":{"type":"integer"}}],"responses":{"200":{"description":"Window rule deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardSuccessResponse"}}}},"401":{"$ref":"#/components/responses/UnauthorizedError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}}}}
```
