# URL Query Parameters

The Arcware Pixel Streaming WebSDK supports several **URL query parameters** that influence how the SDK initializes and behaves at runtime.

These parameters are mainly intended for:

* debugging
* testing
* white-labelling
* session control
* developer tools

Some parameters affect **only the UI integration (`ArcwareInit`)**, while others affect **both UI and Core integrations (`CoreSetup`)**.

***

## Overview

| Parameter    | Applies To | Description                                      |
| ------------ | ---------- | ------------------------------------------------ |
| `i` / `info` | UI only    | Shows the debug information overlay              |
| `wl`         | UI only    | Enables or injects white-labelling configuration |
| `noSession`  | UI + Core  | Prevents reuse of an existing session            |
| `session`    | UI + Core  | Forces usage of a specific session               |
| `reconnect`  | UI + Core  | Attempts to reconnect to a previous session      |

These parameters are only interpreted when:

```typescript
useUrlParams: true
```

is enabled in the SDK configuration.

***

## UI Debug Overlay

### `?i` or `?info`

Enables the **debug information overlay** in the default WebSDK UI.

Example:

```
https://example.com/?i
```

or

```
https://example.com/?info
```

#### Applies to

| Mode                 | Supported |
| -------------------- | --------- |
| ArcwareInit (UI)     | ✔         |
| CoreSetup (Headless) | ✖         |

The debug overlay may display information such as:

* FPS
* bitrate
* WebRTC connection statistics
* resolution
* latency information

This overlay is intended for **debugging and diagnostics**.

***

## White Labelling via URL

### `?wl`

The `wl` parameter enables **white-labelling configuration through the URL**.

Example:

```
https://example.com/?wl
```

or

```
https://example.com/?wl=<base64 encoded object>
```

#### Applies to

| Mode             | Supported |
| ---------------- | --------- |
| ArcwareInit (UI) | ✔         |
| CoreSetup        | ✔         |

***

### Enabling Remote White Labelling

When the parameter is present without a value:

```
?wl
```

the SDK automatically enables:

```javascript
fetchRemoteWhiteLabelling: true
```

The SDK will request branding configuration from the Arcware backend.

***

### Providing White Labelling via URL

The parameter can also contain a **base64-encoded JSON configuration object**.

Example URL:

```
https://example.com/?wl=eyJsb2FkaW5nSWNvb...
```

Decoded example:

```json
{
  "loadingIconUrl": "/branding/logo.png",
  "splashScreenUrl": "/branding/splash.jpg",
  "splashScreenMode": "contain"
}
```

***

## Session Control

The WebSDK normally manages sessions automatically. These parameters allow manual control of session behavior.

***

### `?noSession`

Disables session reuse and forces the SDK to **start without restoring a previous session**.

Example:

```
https://example.com/?noSession
```

#### Applies to

| Mode        | Supported |
| ----------- | --------- |
| ArcwareInit | ✔         |
| CoreSetup   | ✔         |

This is useful for testing scenarios where a clean instance should always be started.

***

### `?session=<id>`

Forces the SDK to connect using a specific session ID.

Example:

```
https://example.com/?session=abc123
```

#### Applies to

| Mode        | Supported |
| ----------- | --------- |
| ArcwareInit | ✔         |
| CoreSetup   | ✔         |

If the session exists and is still active, the SDK will reconnect to that session.

***

### `?reconnect`

Attempts to reconnect to a previously known session.

Example:

```
https://example.com/?reconnect
```

#### Applies to

| Mode        | Supported |
| ----------- | --------- |
| ArcwareInit | ✔         |
| CoreSetup   | ✔         |

If no valid session is found, a new session will be created automatically.

***

## Interaction with `useUrlParams`

URL parameters are only interpreted if the SDK configuration enables URL parsing.

Example:

```javascript
ArcwareInit(
  { shareId: "<share-id>" },
  {
    useUrlParams: true
  }
);
```

If `useUrlParams` is disabled, query parameters will be ignored.

***

## Example URLs

### Enable debug overlay

```
https://example.com/?i
```

***

### Enable white labelling

```
https://example.com/?wl
```

***

### Provide custom white labelling

```
https://example.com/?wl=<base64 configuration>
```

***

### Force new session

```
https://example.com/?noSession
```

***

### Reconnect to session

```
https://example.com/?session=abc123
```

***

## Notes

* Query parameters are primarily intended for **debugging and advanced usage**.
* Production applications typically configure behavior through **SDK configuration rather than URL parameters**.
* Parameters affecting the UI (such as `?i`) have no effect when using **headless CoreSetup integrations**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.arcware.cloud/web-integration/new-websdk/in-depth/url-query-parameters.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
