---
title: "Generate Formatted Transcript Endpoint"
method: POST
path: "/v1/generate-formatted-transcript"
tags: ["Digital Humans"]
---

# Generate Formatted Transcript Endpoint

`POST /v1/generate-formatted-transcript`

Take a raw transcript and return the structured transcript, derived utterances, and speaks_first.

## Headers

- `X-API-Key` string, required

## Request body

- GenerateFormattedTranscriptRequest
  - `original_transcript` string, required — Raw transcript in any format

## Response `200`

Successful Response

- GenerateFormattedTranscriptResponse
  - `formatted_transcript` object[], required — Structured transcript: [{"role": "USER"|"AGENT", "utterance": "..."}]
  - `description` string, required — JSON-encoded list of user utterances (the intent/description field)
  - `speaks_first_config` SpeaksFirstConfig — Configuration for whether the digital human speaks first and how. Stored as JSONB in Supabase (speaks_first_config).
    - `speaks_first` boolean, required — Whether the digital human speaks first in the call
    - `mode` 'custom' | 'ai_generated', nullable — When speaks_first is true: 'custom' (user-provided message) or 'ai_generated' (no message)
    - `message` string, nullable — When mode is 'custom', the message the digital human says first
    - `dynamic` boolean — When speaks_first is true: wait up to 5s for the agent to open; speak first only if it stays quiet. If the agent does open, the digital human yields and a mode='custom' message is DISCARDED, not spoken after the greeting, so on any agent that greets callers, a dynamic custom opener is never heard. Set false to speak it every time, at the top of the call and possibly over the greeting. Defaults on, so configs saved before this field existed become dynamic

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-22** `b5daa886f4ee` — 1 info
  - added the optional property `speaks_first_config/anyOf[subschema #1: SpeaksFirstConfig]/dynamic` to the response with the `200` status

[Change history](https://skmtc.dev/getbluejay/apis/bluejay-api/changes/v1/generate-formatted-transcript/post.md)

---

[API](https://skmtc.dev/getbluejay/apis/bluejay-api.md) · [All operations](https://skmtc.dev/getbluejay/apis/bluejay-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getbluejay/bluejay-api/revisions/84e25a31d733/schema)
