# Sessions
Hosted intake session fields, lifecycle states, and integration guidance
Source: https://www.klarefi.com/docs/reference/sessions

## Session object

A session is the applicant-facing intake container. It stores the signed hosted
URL, case type, linked case, answer state, document state, and submission
status.

## Common fields

- `session_id`: Klarefi session identifier
- `signed_url`: Applicant URL returned by `POST /api/v1/sessions`
- `case_type_id`: Case type assigned to the session
- `case_id`: Linked case identifier, currently the same value as `session_id`
- `external_case_id`: Your source-system reference
- `status`: Session lifecycle state
- `expires_at`: Session expiration timestamp
- `trace_id`: Optional integration correlation ID

## Lifecycle

Create a session from trusted server-side code. Redirect the applicant to the
signed URL. Subscribe to webhook events for state changes, and read current
state from the API when you need the latest record.

Klarefi also opens a session itself for each request in an email to your
connected mailbox, with the email and its files as the case's documents, and
when a declined applicant follows an invitation to apply again. Those sessions
send the same events and end in the same case package. See
[Email intake](/docs/guides/email-intake).
