> ## Documentation Index
> Fetch the complete documentation index at: https://docs.honeyhive.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Sessions Methods

> Start HoneyHive trace sessions in TypeScript and submit session event batches with the Sessions namespace for grouping spans in an invocation.

#### create

> **create**(`request`: [`CreateSessionRequest`](/v2/sdk-reference/typescript/ref/sessions/CreateSessionRequest)): `Promise`\<[`CreateSessionResponse`](/v2/sdk-reference/typescript/ref/sessions/CreateSessionResponse)>

Start a new session

Start a new session. The request body is a bare session object (no
`session` wrapper). The server creates a session event and returns
it.

**No required properties.** Every field has a server-side fallback.

**Auto-generated properties** (provided by the server when omitted):

* `session_id` (string, UUID): Server generates a UUIDv4 if omitted
  or if the supplied value is not a valid UUID.

**Optional properties with defaults:**

* `event_name` (string): Falls back to `session_name` when not
  provided; defaults to `"unknown"` if both are absent.
* `source` (string): Defaults to `"unknown"`.

**Optional properties:**

* `session_name` (string): Display name for the session.
* `start_time` (number): Session start time as Unix milliseconds.
  The session normalizer uses `getInt64()` which only accepts numeric
  types; if a string is passed, the server silently falls back to the
  current time.
* `end_time` (number): Session end time as Unix milliseconds (same
  numeric-only caveat as `start_time`).
* `duration` (number): Session duration in milliseconds.
* `config` (object): Configuration associated with the session.
* `inputs` (object): Input data for the session.
* `outputs` (object): Output data from the session.
* `metadata` (object): Arbitrary metadata.
* `user_properties` (object): User properties.
* `children_ids` (array of strings): IDs of child events.

Idempotent on `session_id`: posting twice with the same `session_id`
merges metadata/user\_properties into the existing session and returns
the existing event.

#### createEventBatch

> **createEventBatch**(`request`: [`CreateSessionEventBatchRequest`](/v2/sdk-reference/typescript/ref/sessions/CreateSessionEventBatchRequest)): `Promise`\<[`CreateSessionEventBatchResponse`](/v2/sdk-reference/typescript/ref/sessions/CreateSessionEventBatchResponse)>

Add a batch of events to a session

Add a batch of events to an existing session. Each event in the batch
is stored with `session_id` set from the URL path, overriding any
`session_id` in the event body.

Each event must include `event_type` (one of `chain`, `model`, `tool`,
`session`) and `inputs`. Unknown top-level fields and unknown per-event
fields are rejected. Events are processed sequentially. For
higher-throughput ingestion across sessions, use
`POST /v1/events/batch` instead.

##### Example response

```json theme={null}
{
  "success": true
}
```
