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

# Create embed session

> Open a new session for a live widget by its embed token.

<Note>
  This is an embed runtime endpoint. It is called by the embedded Vouchmark widget in the applicant's browser, not by your backend. It uses the widget's `token` and does **not** take a `Bearer` token.
</Note>

Creates a new in-progress session for a live widget and returns both the session view and the widget's public config.

## Body

<ParamField body="token" type="string" required>
  The widget's embed link token (`embedLinkToken`, starts with `elt_`).
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.vouchmark.com/v1/widget/embed/sessions \
    -H "Content-Type: application/json" \
    -d '{
      "token": "elt_..."
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "success": true,
    "data": {
      "session": {
        "sessionId": "wses_...",
        "widgetId": "wgt_aBcD...",
        "status": "in_progress",
        "currentModuleId": null,
        "answers": {},
        "attachments": {},
        "referenceId": null
      },
      "widget": {
        "widgetId": "wgt_aBcD...",
        "name": "Acme KYB",
        "status": "live",
        "environment": "live",
        "config": {
          "branding": { "...": "..." },
          "flow": { "...": "..." },
          "modules": { "...": "..." }
        }
      }
    }
  }
  ```
</ResponseExample>

Returns `201`. A session's `status` is one of `in_progress`, `submitted`, or `abandoned`. Rate limited to 120 requests per minute.
