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

# Class ksPlayerAPI

Namespace: [KS.Reactor](/reactor/api-reference/ks.reactor.md)\
Assembly: KSCommon.dll

Implementation of the ksPlayerAPI used for player requests.

```csharp
public class ksPlayerAPI
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← [ksPlayerAPI](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi.md)

#### Inherited Members

[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)), [object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)), [object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone), [object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

#### Extension Methods

[ksPlayerAPIExtensions.DeleteSession(ksPlayerAPI)](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksplayerapiextensions.md#KS_Reactor_Client_Unity_ksPlayerAPIExtensions_DeleteSession_KS_Reactor_ksPlayerAPI_), [ksPlayerAPIExtensions.LoadSession(ksPlayerAPI, ksPlayerAPI.LoginCallback, object)](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksplayerapiextensions.md#KS_Reactor_Client_Unity_ksPlayerAPIExtensions_LoadSession_KS_Reactor_ksPlayerAPI_KS_Reactor_ksPlayerAPI_LoginCallback_System_Object_), [ksPlayerAPIExtensions.LoginWithDevice(ksPlayerAPI, ksPlayerAPI.LoginCallback, object)](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksplayerapiextensions.md#KS_Reactor_Client_Unity_ksPlayerAPIExtensions_LoginWithDevice_KS_Reactor_ksPlayerAPI_KS_Reactor_ksPlayerAPI_LoginCallback_System_Object_), [ksPlayerAPIExtensions.SaveSession(ksPlayerAPI, ksPlayerAPI.Session)](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksplayerapiextensions.md#KS_Reactor_Client_Unity_ksPlayerAPIExtensions_SaveSession_KS_Reactor_ksPlayerAPI_KS_Reactor_ksPlayerAPI_Session_)

## Constructors

### ksPlayerAPI(RequestHandler) <a href="#ks_reactor_ksplayerapi__ctor_ks_reactor_ksplayerapi_requesthandler" id="ks_reactor_ksplayerapi__ctor_ks_reactor_ksplayerapi_requesthandler"></a>

Constructor.

```csharp
public ksPlayerAPI(ksPlayerAPI.RequestHandler requestFactory = null)
```

#### Parameters

`requestFactory` [ksPlayerAPI](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi.md).[RequestHandler](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi/ks.reactor.ksplayerapi.requesthandler.md)

Optional request handling method.

## Properties

### SessionExpiry <a href="#ks_reactor_ksplayerapi_sessionexpiry" id="ks_reactor_ksplayerapi_sessionexpiry"></a>

How long in hours it takes a session created by a login request to expire with no activity.

```csharp
public int SessionExpiry { get; set; }
```

#### Property Value

[int](https://learn.microsoft.com/dotnet/api/system.int32)

## Methods

### CreateSession(string) <a href="#ks_reactor_ksplayerapi_createsession_system_string" id="ks_reactor_ksplayerapi_createsession_system_string"></a>

Constructs and binds a new session to this API using a Base64 encoded session string.

```csharp
public ksPlayerAPI.Session CreateSession(string encodedSession)
```

#### Parameters

`encodedSession` [string](https://learn.microsoft.com/dotnet/api/system.string)

Encoded session string.

#### Returns

[ksPlayerAPI](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi.md).[Session](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi/ks.reactor.ksplayerapi.session.md)

### Initialize(string, string, string) <a href="#ks_reactor_ksplayerapi_initialize_system_string_system_string_system_string" id="ks_reactor_ksplayerapi_initialize_system_string_system_string_system_string"></a>

Initializes the API object.

```csharp
public void Initialize(string APIURL, string APIKey, string APISecret)
```

#### Parameters

`APIURL` [string](https://learn.microsoft.com/dotnet/api/system.string)

Player API URL.

`APIKey` [string](https://learn.microsoft.com/dotnet/api/system.string)

Project ID.

`APISecret` [string](https://learn.microsoft.com/dotnet/api/system.string)

Project client secret.

### LoginWithDeviceID(string, DeviceTypes, bool, LoginCallback, object) <a href="#ks_reactor_ksplayerapi_loginwithdeviceid_system_string_ks_reactor_ksplayerapi_devicetypes_system_boo" id="ks_reactor_ksplayerapi_loginwithdeviceid_system_string_ks_reactor_ksplayerapi_devicetypes_system_boo"></a>

Login with device ID.

```csharp
public void LoginWithDeviceID(string deviceId, ksPlayerAPI.DeviceTypes deviceType, bool register, ksPlayerAPI.LoginCallback callback = null, object asyncState = null)
```

#### Parameters

`deviceId` [string](https://learn.microsoft.com/dotnet/api/system.string)

Device ID.

`deviceType` [ksPlayerAPI](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi.md).[DeviceTypes](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi/ks.reactor.ksplayerapi.devicetypes.md)

Device type.

`register` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

Register a new player.

`callback` [ksPlayerAPI](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi.md).[LoginCallback](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi/ks.reactor.ksplayerapi.logincallback.md)

Asynchronous callback.

`asyncState` [object](https://learn.microsoft.com/dotnet/api/system.object)

State object returned in the callback.

### LoginWithEmail(string, string, LoginCallback, object) <a href="#ks_reactor_ksplayerapi_loginwithemail_system_string_system_string_ks_reactor_ksplayerapi_logincallba" id="ks_reactor_ksplayerapi_loginwithemail_system_string_system_string_ks_reactor_ksplayerapi_logincallba"></a>

Login with an email address and password.

```csharp
public void LoginWithEmail(string email, string password, ksPlayerAPI.LoginCallback callback = null, object asyncState = null)
```

#### Parameters

`email` [string](https://learn.microsoft.com/dotnet/api/system.string)

`password` [string](https://learn.microsoft.com/dotnet/api/system.string)

`callback` [ksPlayerAPI](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi.md).[LoginCallback](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi/ks.reactor.ksplayerapi.logincallback.md)

Asynchronous callback.

`asyncState` [object](https://learn.microsoft.com/dotnet/api/system.object)

State object returned in the callback.

### LoginWithUsername(string, string, LoginCallback, object) <a href="#ks_reactor_ksplayerapi_loginwithusername_system_string_system_string_ks_reactor_ksplayerapi_logincal" id="ks_reactor_ksplayerapi_loginwithusername_system_string_system_string_ks_reactor_ksplayerapi_logincal"></a>

Login with an email address and password.

```csharp
public void LoginWithUsername(string username, string password, ksPlayerAPI.LoginCallback callback = null, object asyncState = null)
```

#### Parameters

`username` [string](https://learn.microsoft.com/dotnet/api/system.string)

`password` [string](https://learn.microsoft.com/dotnet/api/system.string)

`callback` [ksPlayerAPI](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi.md).[LoginCallback](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi/ks.reactor.ksplayerapi.logincallback.md)

Asynchronous callback.

`asyncState` [object](https://learn.microsoft.com/dotnet/api/system.object)

State object returned in the callback.

### Register(string, string, string, GenericCallback, object) <a href="#ks_reactor_ksplayerapi_register_system_string_system_string_system_string_ks_reactor_ksplayerapi_gen" id="ks_reactor_ksplayerapi_register_system_string_system_string_system_string_ks_reactor_ksplayerapi_gen"></a>

Creates a new player with email/username/password credentials.

```csharp
public void Register(string email, string username, string password, ksPlayerAPI.GenericCallback callback = null, object asyncState = null)
```

#### Parameters

`email` [string](https://learn.microsoft.com/dotnet/api/system.string)

`username` [string](https://learn.microsoft.com/dotnet/api/system.string)

`password` [string](https://learn.microsoft.com/dotnet/api/system.string)

`callback` [ksPlayerAPI](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi.md).[GenericCallback](/reactor/api-reference/ks.reactor/ks.reactor.ksplayerapi/ks.reactor.ksplayerapi.genericcallback.md)

Asynchronous callback.

`asyncState` [object](https://learn.microsoft.com/dotnet/api/system.object)

State object returned in the callback.
