> 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/models.md).

# Models

## The StandardSuccessResponse object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"schemas":{"StandardSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}}}}}
```

## The StandardErrorResponse object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"schemas":{"StandardErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}}}}}
```

## The LicenseKey object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"schemas":{"LicenseKey":{"type":"object","properties":{"id":{"type":"integer"},"key_value":{"type":"string"},"product":{"type":"string"},"start_time":{"type":"string","format":"date-time","nullable":true},"end_time":{"type":"string","format":"date-time","nullable":true},"used_count":{"type":"integer"},"max_uses":{"type":"integer"},"is_banned":{"type":"boolean"},"is_active":{"type":"boolean"},"note":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The ResellerKey object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"schemas":{"ResellerKey":{"type":"object","properties":{"id":{"type":"integer"},"key_value":{"type":"string"},"status":{"type":"string"},"user_id":{"type":"integer"},"max_uses":{"type":"integer"},"used_count":{"type":"integer"},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The RemoteSetting object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"schemas":{"RemoteSetting":{"type":"object","properties":{"id":{"type":"integer"},"user_id":{"type":"integer"},"product_id":{"type":"string"},"product_name":{"type":"string"},"access_id":{"type":"string"},"config":{"type":"string","description":"Serialized JSON configuration or structured object."},"status":{"type":"string","enum":["active","inactive"]},"created_at":{"type":"string","format":"date-time"}}}}}}
```

## The StaffUrl object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"schemas":{"StaffUrl":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"description":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"allowed_product_ids":{"type":"array","items":{"type":"integer"}},"usage_limit":{"type":"integer","nullable":true},"expires_at":{"type":"string","format":"date-time","nullable":true},"url_path":{"type":"string"},"access_key":{"type":"string"},"is_active":{"type":"integer"}}}}}}
```

## The DiscordIntegration object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"schemas":{"DiscordIntegration":{"type":"object","properties":{"id":{"type":"integer"},"guild_id":{"type":"string"},"guild_name":{"type":"string"},"is_active":{"type":"integer"},"log_channel_id":{"type":"string","nullable":true},"log_dm_enabled":{"type":"integer"},"owner_username":{"type":"string","nullable":true},"products":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"}}}},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/DiscordPermission"}}}},"DiscordPermission":{"type":"object","properties":{"id":{"type":"integer"},"subject_type":{"type":"string","enum":["ROLE","USER"]},"subject_id":{"type":"string"},"product_id":{"type":"integer","nullable":true},"can_create_key":{"type":"integer"},"can_delete_key":{"type":"integer"},"can_ban_key":{"type":"integer"},"can_freeze_key":{"type":"integer"},"can_reset_hwid":{"type":"integer"}}}}}}
```

## The DiscordPermission object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"schemas":{"DiscordPermission":{"type":"object","properties":{"id":{"type":"integer"},"subject_type":{"type":"string","enum":["ROLE","USER"]},"subject_id":{"type":"string"},"product_id":{"type":"integer","nullable":true},"can_create_key":{"type":"integer"},"can_delete_key":{"type":"integer"},"can_ban_key":{"type":"integer"},"can_freeze_key":{"type":"integer"},"can_reset_hwid":{"type":"integer"}}}}}}
```

## The Computer object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"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"}}}}}}
```

## The PaginationMeta object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"schemas":{"PaginationMeta":{"type":"object","properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"}}}}}}
```

## The BuildSetting object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"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"}}}}}}
```

## The UnverifiedBuild object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}
```

## The VerifiedBuild object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"schemas":{"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"}}}}}}
```

## The ServersideString object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"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"}}}}}}
```

## The ServersideFile object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"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}}}}}}
```

## The BlacklistedProcess object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"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"}}}}}}
```

## The BlacklistedWindow object

```json
{"openapi":"3.0.3","info":{"title":"qPapel Protection Web API","version":"1.0.0"},"components":{"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"}}}}}}
```
