---
title: "Upload and parse a transcript file"
method: POST
path: "/v1/transcript-upload"
tags: ["Transcript Scenario Generation"]
---

# Upload and parse a transcript file

`POST /v1/transcript-upload`

Upload a single transcript file for parsing and content extraction. This is the second step
in the three-step workflow.

The file is streamed directly to Redis via the streamUpload middleware, then:
1. Read back from Redis
2. Parsed based on file type (PDF, CSV, DOCX)
3. Analyzed for speaker labels (Agent/Customer)
4. Stored as structured data in Redis (keyed by requestId)

Multiple files can be uploaded by calling this endpoint multiple times with the same requestId.
The generate endpoint retrieves all files for the request by requestId.

## Query parameters

- `projectId` string

## Response `200`

File uploaded and parsed successfully

- object
  - `success` boolean, required
  - `fileId` string, required — Unique file identifier
  - `fileName` string, required — Original file name
  - `fileSize` integer, required — File size in bytes
  - `fileType` 'pdf' | 'csv' | 'docx', required — Detected file type
  - `textLength` integer, required — Length of extracted text content
  - `processedAt` string, date-time, required

## Other responses

- `400` — Bad Request - Invalid file or missing parameters
- `401` — Unauthorized
- `403` — Forbidden - Insufficient permissions
- `404` — Not Found - Request ID not found or expired
- `413` — Payload Too Large - File exceeds maximum size

---

[API](https://skmtc.net/cognigy/apis/simulator-openapi-rest-ful-api-reference.md) · [All operations](https://skmtc.net/cognigy/apis/simulator-openapi-rest-ful-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cognigy/simulator-openapi-rest-ful-api-reference/revisions/85b2872bdfb7/schema)
