---
title: "Upload Session"
method: POST
path: "/api/channels/meet/auth/upload-session"
tags: ["channels", "channels", "meet-auth"]
---

# Upload Session

`POST /api/channels/meet/auth/upload-session`

## Request

- Base URL: `https://api.dialogbrain.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.dialogbrain.com/api/channels/meet/auth/upload-session`
- Auth: none declared

Persist a Playwright storage_state blob on the workspace's google_calendar account.

Creates the row if no google_calendar account exists yet (allows bootstrap before
OAuth — though normal flow is OAuth first, then session upload).

Args:
    req: UploadSessionRequest with storage_state JSON
    user: Authenticated user context
    db: Shared database session (channel_account)
    workspace_id: Workspace ID (from JWT)

Returns:
    UploadSessionResponse with channel_account_id and status

Raises:
    HTTPException(404): No google_calendar account found for workspace
    HTTPException(500): Database error

## Request body

- UploadSessionRequest: Request body for uploading a Playwright storage_state.
  - `storage_state` object, required: Playwright storage_state JSON (cookies, origins, etc.)

## Response `200`

Successful Response

- UploadSessionResponse: Response after successfully uploading a session.
  - `status` string, required: Status: 'updated' or 'created'
  - `channel_account_id` integer, required: google_calendar channel_account ID

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway.md) · [All operations](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/revisions/77bef09a9209?raw)
