> For the complete documentation index, see [llms.txt](https://dynamicpixels.gitbook.io/dynamicpixels-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dynamicpixels.gitbook.io/dynamicpixels-docs/web-api/users.md).

# Users

Explore the Web APIs available for managing users, including detailed descriptions and usage examples.

{% hint style="warning" %}
To use service functions, first ensure that the service is activated before. You can see services by opening "Service Hub" From the game's dashboard header.&#x20;
{% endhint %}

## POST /api/auth/email/login

> Logs in a user with an email address.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/auth/email/login":{"post":{"tags":["Auth"],"summary":"Logs in a user with an email address.","operationId":"LoginWithEmail","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginWithEmailRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginWithEmailRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/LoginWithEmailRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}}}}}},"components":{"schemas":{"LoginWithEmailRequest":{"required":["email","password"],"type":"object","properties":{"version":{"type":"integer","format":"int32","nullable":true},"client_id":{"type":"string","nullable":true},"client_secret":{"type":"string","nullable":true},"email":{"minLength":1,"type":"string"},"password":{"minLength":1,"type":"string"},"device_info":{"$ref":"#/components/schemas/Device"}},"additionalProperties":false},"Device":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"user":{"type":"integer","format":"int32","nullable":true},"device_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true},"package_name":{"type":"string","nullable":true},"sdk_version":{"type":"string","nullable":true},"version_name":{"type":"string","nullable":true},"version_code":{"type":"string","nullable":true},"os_api_lavel":{"type":"string","nullable":true},"device":{"type":"string","nullable":true},"from":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"product":{"type":"string","nullable":true},"carrier_name":{"type":"string","nullable":true},"manufacturer":{"type":"string","nullable":true},"other_tags":{"type":"string","nullable":true},"screen_width":{"type":"string","nullable":true},"screen_height":{"type":"string","nullable":true},"sdcard_state":{"type":"string","nullable":true},"game_orientation":{"type":"string","nullable":true},"network_type":{"type":"string","nullable":true},"mac_address":{"type":"string","nullable":true},"ip_address":{"type":"string","nullable":true},"device_name":{"type":"string","nullable":true},"device_model":{"type":"string","nullable":true},"device_type":{"type":"string","nullable":true},"operating_system":{"type":"string","nullable":true},"processor_type":{"type":"string","nullable":true},"processor_count":{"type":"string","nullable":true},"processor_frequency":{"type":"string","nullable":true},"graphics_device_name":{"type":"string","nullable":true},"graphics_device_vendor":{"type":"string","nullable":true},"graphics_memory_size":{"type":"string","nullable":true}},"additionalProperties":false},"LoginResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"},"token":{"type":"string","nullable":true},"connection":{"$ref":"#/components/schemas/Connection"}},"additionalProperties":false},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true},"is_ban":{"type":"boolean"},"is_tester":{"type":"boolean"},"is_guest":{"type":"boolean"},"google_token":{"type":"string","nullable":true},"fcm_id":{"type":"string","nullable":true},"steam_id":{"type":"string","nullable":true},"steam_app_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"Connection":{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"protocol":{"type":"string","nullable":true},"version":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## POST /api/auth/email/register

> Registers a new user with an email address.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/auth/email/register":{"post":{"tags":["Auth"],"summary":"Registers a new user with an email address.","operationId":"RegisterWithEmail","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterWithEmailRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/RegisterWithEmailRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/RegisterWithEmailRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}}}}}},"components":{"schemas":{"RegisterWithEmailRequest":{"required":["email","name","password"],"type":"object","properties":{"version":{"type":"integer","format":"int32","nullable":true},"client_id":{"type":"string","nullable":true},"client_secret":{"type":"string","nullable":true},"name":{"minLength":1,"type":"string"},"email":{"minLength":1,"type":"string"},"password":{"minLength":1,"type":"string"},"device_info":{"$ref":"#/components/schemas/Device"}},"additionalProperties":false},"Device":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"user":{"type":"integer","format":"int32","nullable":true},"device_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true},"package_name":{"type":"string","nullable":true},"sdk_version":{"type":"string","nullable":true},"version_name":{"type":"string","nullable":true},"version_code":{"type":"string","nullable":true},"os_api_lavel":{"type":"string","nullable":true},"device":{"type":"string","nullable":true},"from":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"product":{"type":"string","nullable":true},"carrier_name":{"type":"string","nullable":true},"manufacturer":{"type":"string","nullable":true},"other_tags":{"type":"string","nullable":true},"screen_width":{"type":"string","nullable":true},"screen_height":{"type":"string","nullable":true},"sdcard_state":{"type":"string","nullable":true},"game_orientation":{"type":"string","nullable":true},"network_type":{"type":"string","nullable":true},"mac_address":{"type":"string","nullable":true},"ip_address":{"type":"string","nullable":true},"device_name":{"type":"string","nullable":true},"device_model":{"type":"string","nullable":true},"device_type":{"type":"string","nullable":true},"operating_system":{"type":"string","nullable":true},"processor_type":{"type":"string","nullable":true},"processor_count":{"type":"string","nullable":true},"processor_frequency":{"type":"string","nullable":true},"graphics_device_name":{"type":"string","nullable":true},"graphics_device_vendor":{"type":"string","nullable":true},"graphics_memory_size":{"type":"string","nullable":true}},"additionalProperties":false},"LoginResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"},"token":{"type":"string","nullable":true},"connection":{"$ref":"#/components/schemas/Connection"}},"additionalProperties":false},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true},"is_ban":{"type":"boolean"},"is_tester":{"type":"boolean"},"is_guest":{"type":"boolean"},"google_token":{"type":"string","nullable":true},"fcm_id":{"type":"string","nullable":true},"steam_id":{"type":"string","nullable":true},"steam_app_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"Connection":{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"protocol":{"type":"string","nullable":true},"version":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## POST /api/auth/login

> Logs in a user using an authentication token.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/auth/login":{"post":{"tags":["Auth"],"summary":"Logs in a user using an authentication token.","operationId":"LoginWithToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginWithTokenRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginWithTokenRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/LoginWithTokenRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}}}}}},"components":{"schemas":{"LoginWithTokenRequest":{"required":["token"],"type":"object","properties":{"version":{"type":"integer","format":"int32","nullable":true},"client_id":{"type":"string","nullable":true},"client_secret":{"type":"string","nullable":true},"token":{"minLength":1,"type":"string"},"device_info":{"$ref":"#/components/schemas/Device"}},"additionalProperties":false},"Device":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"user":{"type":"integer","format":"int32","nullable":true},"device_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true},"package_name":{"type":"string","nullable":true},"sdk_version":{"type":"string","nullable":true},"version_name":{"type":"string","nullable":true},"version_code":{"type":"string","nullable":true},"os_api_lavel":{"type":"string","nullable":true},"device":{"type":"string","nullable":true},"from":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"product":{"type":"string","nullable":true},"carrier_name":{"type":"string","nullable":true},"manufacturer":{"type":"string","nullable":true},"other_tags":{"type":"string","nullable":true},"screen_width":{"type":"string","nullable":true},"screen_height":{"type":"string","nullable":true},"sdcard_state":{"type":"string","nullable":true},"game_orientation":{"type":"string","nullable":true},"network_type":{"type":"string","nullable":true},"mac_address":{"type":"string","nullable":true},"ip_address":{"type":"string","nullable":true},"device_name":{"type":"string","nullable":true},"device_model":{"type":"string","nullable":true},"device_type":{"type":"string","nullable":true},"operating_system":{"type":"string","nullable":true},"processor_type":{"type":"string","nullable":true},"processor_count":{"type":"string","nullable":true},"processor_frequency":{"type":"string","nullable":true},"graphics_device_name":{"type":"string","nullable":true},"graphics_device_vendor":{"type":"string","nullable":true},"graphics_memory_size":{"type":"string","nullable":true}},"additionalProperties":false},"LoginResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"},"token":{"type":"string","nullable":true},"connection":{"$ref":"#/components/schemas/Connection"}},"additionalProperties":false},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true},"is_ban":{"type":"boolean"},"is_tester":{"type":"boolean"},"is_guest":{"type":"boolean"},"google_token":{"type":"string","nullable":true},"fcm_id":{"type":"string","nullable":true},"steam_id":{"type":"string","nullable":true},"steam_app_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"Connection":{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"protocol":{"type":"string","nullable":true},"version":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## POST /api/auth/oauth/google

> Logs in a user with a Google account.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/auth/oauth/google":{"post":{"tags":["Auth"],"summary":"Logs in a user with a Google account.","operationId":"LoginWithGoogle","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginWithGoogleRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginWithGoogleRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/LoginWithGoogleRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}}}}}},"components":{"schemas":{"LoginWithGoogleRequest":{"required":["access_token"],"type":"object","properties":{"version":{"type":"integer","format":"int32","nullable":true},"client_id":{"type":"string","nullable":true},"client_secret":{"type":"string","nullable":true},"access_token":{"minLength":1,"type":"string"},"device_info":{"$ref":"#/components/schemas/Device"}},"additionalProperties":false},"Device":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"user":{"type":"integer","format":"int32","nullable":true},"device_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true},"package_name":{"type":"string","nullable":true},"sdk_version":{"type":"string","nullable":true},"version_name":{"type":"string","nullable":true},"version_code":{"type":"string","nullable":true},"os_api_lavel":{"type":"string","nullable":true},"device":{"type":"string","nullable":true},"from":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"product":{"type":"string","nullable":true},"carrier_name":{"type":"string","nullable":true},"manufacturer":{"type":"string","nullable":true},"other_tags":{"type":"string","nullable":true},"screen_width":{"type":"string","nullable":true},"screen_height":{"type":"string","nullable":true},"sdcard_state":{"type":"string","nullable":true},"game_orientation":{"type":"string","nullable":true},"network_type":{"type":"string","nullable":true},"mac_address":{"type":"string","nullable":true},"ip_address":{"type":"string","nullable":true},"device_name":{"type":"string","nullable":true},"device_model":{"type":"string","nullable":true},"device_type":{"type":"string","nullable":true},"operating_system":{"type":"string","nullable":true},"processor_type":{"type":"string","nullable":true},"processor_count":{"type":"string","nullable":true},"processor_frequency":{"type":"string","nullable":true},"graphics_device_name":{"type":"string","nullable":true},"graphics_device_vendor":{"type":"string","nullable":true},"graphics_memory_size":{"type":"string","nullable":true}},"additionalProperties":false},"LoginResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"},"token":{"type":"string","nullable":true},"connection":{"$ref":"#/components/schemas/Connection"}},"additionalProperties":false},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true},"is_ban":{"type":"boolean"},"is_tester":{"type":"boolean"},"is_guest":{"type":"boolean"},"google_token":{"type":"string","nullable":true},"fcm_id":{"type":"string","nullable":true},"steam_id":{"type":"string","nullable":true},"steam_app_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"Connection":{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"protocol":{"type":"string","nullable":true},"version":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## POST /api/auth/oauth/steam

> Logs in a user with Steam account.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/auth/oauth/steam":{"post":{"tags":["Auth"],"summary":"Logs in a user with Steam account.","operationId":"LoginWithSteam","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginWithSteamRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginWithSteamRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/LoginWithSteamRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}}}}}},"components":{"schemas":{"LoginWithSteamRequest":{"required":["app_id","name","steam_id"],"type":"object","properties":{"version":{"type":"integer","format":"int32","nullable":true},"client_id":{"type":"string","nullable":true},"client_secret":{"type":"string","nullable":true},"steam_id":{"minLength":1,"type":"string"},"app_id":{"minLength":1,"type":"string"},"name":{"minLength":1,"type":"string"},"device_info":{"$ref":"#/components/schemas/Device"}},"additionalProperties":false},"Device":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"user":{"type":"integer","format":"int32","nullable":true},"device_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true},"package_name":{"type":"string","nullable":true},"sdk_version":{"type":"string","nullable":true},"version_name":{"type":"string","nullable":true},"version_code":{"type":"string","nullable":true},"os_api_lavel":{"type":"string","nullable":true},"device":{"type":"string","nullable":true},"from":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"product":{"type":"string","nullable":true},"carrier_name":{"type":"string","nullable":true},"manufacturer":{"type":"string","nullable":true},"other_tags":{"type":"string","nullable":true},"screen_width":{"type":"string","nullable":true},"screen_height":{"type":"string","nullable":true},"sdcard_state":{"type":"string","nullable":true},"game_orientation":{"type":"string","nullable":true},"network_type":{"type":"string","nullable":true},"mac_address":{"type":"string","nullable":true},"ip_address":{"type":"string","nullable":true},"device_name":{"type":"string","nullable":true},"device_model":{"type":"string","nullable":true},"device_type":{"type":"string","nullable":true},"operating_system":{"type":"string","nullable":true},"processor_type":{"type":"string","nullable":true},"processor_count":{"type":"string","nullable":true},"processor_frequency":{"type":"string","nullable":true},"graphics_device_name":{"type":"string","nullable":true},"graphics_device_vendor":{"type":"string","nullable":true},"graphics_memory_size":{"type":"string","nullable":true}},"additionalProperties":false},"LoginResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"},"token":{"type":"string","nullable":true},"connection":{"$ref":"#/components/schemas/Connection"}},"additionalProperties":false},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true},"is_ban":{"type":"boolean"},"is_tester":{"type":"boolean"},"is_guest":{"type":"boolean"},"google_token":{"type":"string","nullable":true},"fcm_id":{"type":"string","nullable":true},"steam_id":{"type":"string","nullable":true},"steam_app_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"Connection":{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"protocol":{"type":"string","nullable":true},"version":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## POST /api/auth/ota

> Sends a One-Time Authentication (OTA) token to the user.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/auth/ota":{"post":{"tags":["Auth"],"summary":"Sends a One-Time Authentication (OTA) token to the user.","operationId":"SendOtaToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendOtaTokenRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/SendOtaTokenRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/SendOtaTokenRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"boolean"}},"application/json":{"schema":{"type":"boolean"}},"text/json":{"schema":{"type":"boolean"}}}}}}}},"components":{"schemas":{"SendOtaTokenRequest":{"required":["phone_number"],"type":"object","properties":{"phone_number":{"minLength":1,"type":"string"}},"additionalProperties":false}}}}
```

## POST /api/auth/ota/verify

> Verifies the One-Time Authentication (OTA) token.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/auth/ota/verify":{"post":{"tags":["Auth"],"summary":"Verifies the One-Time Authentication (OTA) token.","operationId":"VerifyOtaToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyOtaTokenRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/VerifyOtaTokenRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/VerifyOtaTokenRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}}}}}},"components":{"schemas":{"VerifyOtaTokenRequest":{"required":["phone_number","token"],"type":"object","properties":{"version":{"type":"integer","format":"int32","nullable":true},"client_id":{"type":"string","nullable":true},"client_secret":{"type":"string","nullable":true},"phone_number":{"minLength":1,"type":"string"},"name":{"type":"string","nullable":true},"token":{"minLength":1,"type":"string"},"device_info":{"$ref":"#/components/schemas/Device"}},"additionalProperties":false},"Device":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"user":{"type":"integer","format":"int32","nullable":true},"device_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true},"package_name":{"type":"string","nullable":true},"sdk_version":{"type":"string","nullable":true},"version_name":{"type":"string","nullable":true},"version_code":{"type":"string","nullable":true},"os_api_lavel":{"type":"string","nullable":true},"device":{"type":"string","nullable":true},"from":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"product":{"type":"string","nullable":true},"carrier_name":{"type":"string","nullable":true},"manufacturer":{"type":"string","nullable":true},"other_tags":{"type":"string","nullable":true},"screen_width":{"type":"string","nullable":true},"screen_height":{"type":"string","nullable":true},"sdcard_state":{"type":"string","nullable":true},"game_orientation":{"type":"string","nullable":true},"network_type":{"type":"string","nullable":true},"mac_address":{"type":"string","nullable":true},"ip_address":{"type":"string","nullable":true},"device_name":{"type":"string","nullable":true},"device_model":{"type":"string","nullable":true},"device_type":{"type":"string","nullable":true},"operating_system":{"type":"string","nullable":true},"processor_type":{"type":"string","nullable":true},"processor_count":{"type":"string","nullable":true},"processor_frequency":{"type":"string","nullable":true},"graphics_device_name":{"type":"string","nullable":true},"graphics_device_vendor":{"type":"string","nullable":true},"graphics_memory_size":{"type":"string","nullable":true}},"additionalProperties":false},"LoginResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"},"token":{"type":"string","nullable":true},"connection":{"$ref":"#/components/schemas/Connection"}},"additionalProperties":false},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true},"is_ban":{"type":"boolean"},"is_tester":{"type":"boolean"},"is_guest":{"type":"boolean"},"google_token":{"type":"string","nullable":true},"fcm_id":{"type":"string","nullable":true},"steam_id":{"type":"string","nullable":true},"steam_app_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"Connection":{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"protocol":{"type":"string","nullable":true},"version":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## GET /api/auth/ota

> Checks if One-Time Authentication (OTA) is ready.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/auth/ota":{"get":{"tags":["Auth"],"summary":"Checks if One-Time Authentication (OTA) is ready.","operationId":"IsOtaReady","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"boolean"}},"application/json":{"schema":{"type":"boolean"}},"text/json":{"schema":{"type":"boolean"}}}}}}}}}
```

## POST /api/auth/guest

> Logs in a user as a guest.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/auth/guest":{"post":{"tags":["Auth"],"summary":"Logs in a user as a guest.","operationId":"LoginAsGuest","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginAsGuestRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginAsGuestRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/LoginAsGuestRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}}}}}},"components":{"schemas":{"LoginAsGuestRequest":{"type":"object","properties":{"version":{"type":"integer","format":"int32","nullable":true},"client_id":{"type":"string","nullable":true},"client_secret":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"device_info":{"$ref":"#/components/schemas/Device"}},"additionalProperties":false},"Device":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"user":{"type":"integer","format":"int32","nullable":true},"device_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true},"package_name":{"type":"string","nullable":true},"sdk_version":{"type":"string","nullable":true},"version_name":{"type":"string","nullable":true},"version_code":{"type":"string","nullable":true},"os_api_lavel":{"type":"string","nullable":true},"device":{"type":"string","nullable":true},"from":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"product":{"type":"string","nullable":true},"carrier_name":{"type":"string","nullable":true},"manufacturer":{"type":"string","nullable":true},"other_tags":{"type":"string","nullable":true},"screen_width":{"type":"string","nullable":true},"screen_height":{"type":"string","nullable":true},"sdcard_state":{"type":"string","nullable":true},"game_orientation":{"type":"string","nullable":true},"network_type":{"type":"string","nullable":true},"mac_address":{"type":"string","nullable":true},"ip_address":{"type":"string","nullable":true},"device_name":{"type":"string","nullable":true},"device_model":{"type":"string","nullable":true},"device_type":{"type":"string","nullable":true},"operating_system":{"type":"string","nullable":true},"processor_type":{"type":"string","nullable":true},"processor_count":{"type":"string","nullable":true},"processor_frequency":{"type":"string","nullable":true},"graphics_device_name":{"type":"string","nullable":true},"graphics_device_vendor":{"type":"string","nullable":true},"graphics_memory_size":{"type":"string","nullable":true}},"additionalProperties":false},"LoginResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"},"token":{"type":"string","nullable":true},"connection":{"$ref":"#/components/schemas/Connection"}},"additionalProperties":false},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true},"is_ban":{"type":"boolean"},"is_tester":{"type":"boolean"},"is_guest":{"type":"boolean"},"google_token":{"type":"string","nullable":true},"fcm_id":{"type":"string","nullable":true},"steam_id":{"type":"string","nullable":true},"steam_app_id":{"type":"string","nullable":true},"first_login":{"type":"string","format":"date-time","nullable":true},"last_login":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"Connection":{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"protocol":{"type":"string","nullable":true},"version":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## GET /api/table/services/users/{userId}

> Finds a user by their unique identifier.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/table/services/users/{userId}":{"get":{"tags":["Users"],"summary":"Finds a user by their unique identifier.","operationId":"GetUserByID","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/UserDtoRowResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/UserDtoRowResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/UserDtoRowResponse"}}}}}}}},"components":{"schemas":{"UserDtoRowResponse":{"type":"object","properties":{"row":{"$ref":"#/components/schemas/UserDto"}},"additionalProperties":false},"UserDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"steamId":{"type":"string","nullable":true},"steamAppId":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true},"isBan":{"type":"boolean"},"isTester":{"type":"boolean"},"isGuest":{"type":"boolean"},"googleToken":{"type":"string","nullable":true},"fcmId":{"type":"string","nullable":true},"firstLogin":{"type":"string","format":"date-time","nullable":true},"lastLogin":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false}}}}
```

## GET /api/table/services/users

> Retrieves the currently logged-in user.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/table/services/users":{"get":{"tags":["Users"],"summary":"Retrieves the currently logged-in user.","operationId":"GetCurrentUser","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/UserDtoRowResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/UserDtoRowResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/UserDtoRowResponse"}}}}}}}},"components":{"schemas":{"UserDtoRowResponse":{"type":"object","properties":{"row":{"$ref":"#/components/schemas/UserDto"}},"additionalProperties":false},"UserDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"steamId":{"type":"string","nullable":true},"steamAppId":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true},"isBan":{"type":"boolean"},"isTester":{"type":"boolean"},"isGuest":{"type":"boolean"},"googleToken":{"type":"string","nullable":true},"fcmId":{"type":"string","nullable":true},"firstLogin":{"type":"string","format":"date-time","nullable":true},"lastLogin":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false}}}}
```

## POST /api/table/services/users/find

> Find users based on the provided parameters.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/table/services/users/find":{"post":{"tags":["Users"],"summary":"Find users based on the provided parameters.","operationId":"Find","parameters":[{"name":"skip","in":"query","schema":{"type":"integer","format":"int32","default":0}},{"name":"limit","in":"query","schema":{"type":"integer","format":"int32","default":25}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindUserParams"}},"text/json":{"schema":{"$ref":"#/components/schemas/FindUserParams"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/FindUserParams"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/UserDtoRowsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/UserDtoRowsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/UserDtoRowsResponse"}}}}}}}},"components":{"schemas":{"FindUserParams":{"type":"object","properties":{"query":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"UserDtoRowsResponse":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/UserDto"},"nullable":true},"totalCount":{"type":"integer","format":"int32"}},"additionalProperties":false},"UserDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"steamId":{"type":"string","nullable":true},"steamAppId":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true},"isBan":{"type":"boolean"},"isTester":{"type":"boolean"},"isGuest":{"type":"boolean"},"googleToken":{"type":"string","nullable":true},"fcmId":{"type":"string","nullable":true},"firstLogin":{"type":"string","format":"date-time","nullable":true},"lastLogin":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false}}}}
```

## PUT /api/table/services/users

> Updates the details of the currently logged-in user.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/table/services/users":{"put":{"tags":["Users"],"summary":"Updates the details of the currently logged-in user.","operationId":"EditCurrentUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditUserParams"}},"text/json":{"schema":{"$ref":"#/components/schemas/EditUserParams"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/EditUserParams"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/UserDtoRowsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/UserDtoRowsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/UserDtoRowsResponse"}}}}}}}},"components":{"schemas":{"EditUserParams":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EditUserFields"}},"additionalProperties":false},"EditUserFields":{"type":"object","properties":{"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true}},"additionalProperties":false},"UserDtoRowsResponse":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/UserDto"},"nullable":true},"totalCount":{"type":"integer","format":"int32"}},"additionalProperties":false},"UserDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"steamId":{"type":"string","nullable":true},"steamAppId":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"tags":{"type":"string","nullable":true},"isBan":{"type":"boolean"},"isTester":{"type":"boolean"},"isGuest":{"type":"boolean"},"googleToken":{"type":"string","nullable":true},"fcmId":{"type":"string","nullable":true},"firstLogin":{"type":"string","format":"date-time","nullable":true},"lastLogin":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false}}}}
```
