> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/scene-fusion/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/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfiwebservice.md).

# Interface sfIWebService

Namespace: [KS.SceneFusion.Client](/scene-fusion/api-reference/ks.scenefusion.client.md)\
Assembly: KSUnity-Editor.dll

Interface for communicating with the CoEdit web service.

```csharp
public interface sfIWebService
```

## Properties

### Email <a href="#ks_scenefusion_client_sfiwebservice_email" id="ks_scenefusion_client_sfiwebservice_email"></a>

Email of logged-in user. Null if logged out.

```csharp
string Email { get; }
```

#### Property Value

string

### IsLoggedIn <a href="#ks_scenefusion_client_sfiwebservice_isloggedin" id="ks_scenefusion_client_sfiwebservice_isloggedin"></a>

Are we logged in?

```csharp
bool IsLoggedIn { get; }
```

#### Property Value

bool

### SFToken <a href="#ks_scenefusion_client_sfiwebservice_sftoken" id="ks_scenefusion_client_sfiwebservice_sftoken"></a>

Scene Fusion Token

```csharp
string SFToken { get; set; }
```

#### Property Value

string

### Url <a href="#ks_scenefusion_client_sfiwebservice_url" id="ks_scenefusion_client_sfiwebservice_url"></a>

URL

```csharp
string Url { get; }
```

#### Property Value

string

### UserName <a href="#ks_scenefusion_client_sfiwebservice_username" id="ks_scenefusion_client_sfiwebservice_username"></a>

User name logged-in user. Null if logged out.

```csharp
string UserName { get; }
```

#### Property Value

string

## Methods

### Authenticate(string, string, Login) <a href="#ks_scenefusion_client_sfiwebservice_authenticate_system_string_system_string_ks_scenefusion_client_s" id="ks_scenefusion_client_sfiwebservice_authenticate_system_string_system_string_ks_scenefusion_client_s"></a>

Sends a request to login to Scene Fusion using an email and token.

```csharp
void Authenticate(string email, string token, sfWebServiceCallbacks.Login callback)
```

#### Parameters

`email` string

`token` string

`callback` [sfWebServiceCallbacks](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks.md).[Login](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks/ks.scenefusion.client.sfwebservicecallbacks.login.md)

callback to call when the request completes.

### DownloadLANServer(sfProjectInfo, DownloadLANServer) <a href="#ks_scenefusion_client_sfiwebservice_downloadlanserver_ks_scenefusion_client_sfprojectinfo_ks_scenefu" id="ks_scenefusion_client_sfiwebservice_downloadlanserver_ks_scenefusion_client_sfprojectinfo_ks_scenefu"></a>

Download a LAN server compatible with the current SF version

```csharp
void DownloadLANServer(sfProjectInfo project, sfWebServiceCallbacks.DownloadLANServer callback)
```

#### Parameters

`project` [sfProjectInfo](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfprojectinfo.md)

project used for authentication

`callback` [sfWebServiceCallbacks](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks.md).[DownloadLANServer](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks/ks.scenefusion.client.sfwebservicecallbacks.downloadlanserver.md)

download callback

### FetchToken(Login) <a href="#ks_scenefusion_client_sfiwebservice_fetchtoken_ks_scenefusion_client_sfwebservicecallbacks_login" id="ks_scenefusion_client_sfiwebservice_fetchtoken_ks_scenefusion_client_sfwebservicecallbacks_login"></a>

Sends a request for a Scene Fusion authentication token

```csharp
void FetchToken(sfWebServiceCallbacks.Login callback)
```

#### Parameters

`callback` [sfWebServiceCallbacks](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks.md).[Login](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks/ks.scenefusion.client.sfwebservicecallbacks.login.md)

callback to call when the request completes.

### GetFeedbackQuestions(GetFeedbackQuestions) <a href="#ks_scenefusion_client_sfiwebservice_getfeedbackquestions_ks_scenefusion_client_sfwebservicecallbacks" id="ks_scenefusion_client_sfiwebservice_getfeedbackquestions_ks_scenefusion_client_sfwebservicecallbacks"></a>

Get feedback questions

```csharp
void GetFeedbackQuestions(sfWebServiceCallbacks.GetFeedbackQuestions callback)
```

#### Parameters

`callback` [sfWebServiceCallbacks](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks.md).[GetFeedbackQuestions](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks/ks.scenefusion.client.sfwebservicecallbacks.getfeedbackquestions.md)

callback to call when the request completes.

### GetSessions(string, GetSessions) <a href="#ks_scenefusion_client_sfiwebservice_getsessions_system_string_ks_scenefusion_client_sfwebservicecall" id="ks_scenefusion_client_sfiwebservice_getsessions_system_string_ks_scenefusion_client_sfwebservicecall"></a>

Sends a request to the web server to retrieve a list of available sessions.

```csharp
void GetSessions(string application, sfWebServiceCallbacks.GetSessions callback)
```

#### Parameters

`application` string

application name and version

`callback` [sfWebServiceCallbacks](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks.md).[GetSessions](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks/ks.scenefusion.client.sfwebservicecallbacks.getsessions.md)

callback to call when the request completes.

### Login(string, string, Login) <a href="#ks_scenefusion_client_sfiwebservice_login_system_string_system_string_ks_scenefusion_client_sfwebser" id="ks_scenefusion_client_sfiwebservice_login_system_string_system_string_ks_scenefusion_client_sfwebser"></a>

Sends a request to login to Scene Fusion using an email and password.

```csharp
void Login(string email, string password, sfWebServiceCallbacks.Login callback)
```

#### Parameters

`email` string

`password` string

`callback` [sfWebServiceCallbacks](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks.md).[Login](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks/ks.scenefusion.client.sfwebservicecallbacks.login.md)

callback to call when the request completes.

### Logout() <a href="#ks_scenefusion_client_sfiwebservice_logout" id="ks_scenefusion_client_sfiwebservice_logout"></a>

Logs out.

```csharp
void Logout()
```

### SendFeedback(ksJSON) <a href="#ks_scenefusion_client_sfiwebservice_sendfeedback_ks_reactor_ksjson" id="ks_scenefusion_client_sfiwebservice_sendfeedback_ks_reactor_ksjson"></a>

Send feedback ansers

```csharp
void SendFeedback(ksJSON answers)
```

#### Parameters

`answers` ksJSON

### SendLog(string, sfSessionInfo) <a href="#ks_scenefusion_client_sfiwebservice_sendlog_system_string_ks_scenefusion_client_sfsessioninfo" id="ks_scenefusion_client_sfiwebservice_sendlog_system_string_ks_scenefusion_client_sfsessioninfo"></a>

Send Log

```csharp
bool SendLog(string log, sfSessionInfo sessionInfo)
```

#### Parameters

`log` string

Unity log data

`sessionInfo` [sfSessionInfo](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfsessioninfo.md)

sessionInfo the logs are for. Null if the logs are not for a session.

#### Returns

bool

true if message sent to server

### SetUserColor(int, string, SetUserColor) <a href="#ks_scenefusion_client_sfiwebservice_setusercolor_system_int32_system_string_ks_scenefusion_client_sf" id="ks_scenefusion_client_sfiwebservice_setusercolor_system_int32_system_string_ks_scenefusion_client_sf"></a>

Sends a request to the web server to set color on a user.

```csharp
void SetUserColor(int projectId, string userColorHex, sfWebServiceCallbacks.SetUserColor callback)
```

#### Parameters

`projectId` int

active project ID

`userColorHex` string

new color hex string.

`callback` [sfWebServiceCallbacks](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks.md).[SetUserColor](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks/ks.scenefusion.client.sfwebservicecallbacks.setusercolor.md)

callback to call when the request completes.

### StartSession(int, string, string, StartSession) <a href="#ks_scenefusion_client_sfiwebservice_startsession_system_int32_system_string_system_string_ks_scenefu" id="ks_scenefusion_client_sfiwebservice_startsession_system_int32_system_string_system_string_ks_scenefu"></a>

Sends a request to the web server to start a session.

```csharp
void StartSession(int projectId, string application, string scene, sfWebServiceCallbacks.StartSession callback)
```

#### Parameters

`projectId` int

`application` string

application name and version

`scene` string

`callback` [sfWebServiceCallbacks](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks.md).[StartSession](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks/ks.scenefusion.client.sfwebservicecallbacks.startsession.md)

callback to call when the request completes.

### StopSession(sfSessionInfo, StopSession) <a href="#ks_scenefusion_client_sfiwebservice_stopsession_ks_scenefusion_client_sfsessioninfo_ks_scenefusion_c" id="ks_scenefusion_client_sfiwebservice_stopsession_ks_scenefusion_client_sfsessioninfo_ks_scenefusion_c"></a>

Sends a request to the web server to stop a session.

```csharp
void StopSession(sfSessionInfo sessionInfo, sfWebServiceCallbacks.StopSession callback)
```

#### Parameters

`sessionInfo` [sfSessionInfo](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfsessioninfo.md)

sessionInfo for session to stop.

`callback` [sfWebServiceCallbacks](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks.md).[StopSession](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfwebservicecallbacks/ks.scenefusion.client.sfwebservicecallbacks.stopsession.md)

callback to call when the request completes.

### Update(float) <a href="#ks_scenefusion_client_sfiwebservice_update_system_single" id="ks_scenefusion_client_sfiwebservice_update_system_single"></a>

Called every frame.

```csharp
void Update(float deltaTime)
```

#### Parameters

`deltaTime` float

deltaTime in seconds since last frame.
