# Start user data stream (USER_STREAM)

## API Description

Creates a listenKey, or returns the key's existing one.

## HTTP Request

```http
POST /v1/listenKey
```

## Request Weight

1

## Request Parameters

NONE

## Response Example

```json
{"listenKey":"pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1"}
```

| Field | Type | Description |
| - | - | - |
| `listenKey` | STRING | Opaque token. Valid for **60 minutes** from creation or from the last keepalive. |

Connect with it at:

```
wss://trade-stream.yellowboxmarkets.com/ws/<listenKey>
```

**Notes**

- **One active listenKey per API key.** Calling `POST` again while a key is active returns the
  **same** listenKey and extends it by 60 minutes — it does not mint a second one and does not
  invalidate existing connections. To rotate, call `DELETE` then `POST`.
- The listenKey is a **bearer credential**. Anyone holding it can read every execution, position and
  balance change on every account in the key's scope. Treat it like the API secret: never log it,
  never put it in a URL you share, never expose it to a browser.
- It does **not** grant trading. It is read-only.
- While the trading surface is switched off this endpoint answers `-1017` (HTTP 503). `PUT` and
  `DELETE` stay available, so an existing stream can still be kept alive or closed.
