Fan out diarization tasks for many rows in a single call.
Returns a summary with how many rows were queued and how many were skipped (broken down by reason) so the UI can show a meaningful toast even when nothing actually got enqueued (e.g. "All 12 rows already have transcripts").
JWT access token. Use: Authorization: Bearer .
In: header
Path Parameters
uuidHeader Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Body for kicking off diarization for one or many call-import rows.
The same shape powers both the per-row endpoint (where row_ids
is ignored) and the batch-level endpoint. only_missing is the
safe default G�� rows with an existing transcript are skipped unless
overwrite_existing is set.
Two modes are supported:
mode="stt_llm"(default) G�� the legacy two-stage pipeline: STT produces plain text, an LLM splits it into agent/user turns usingdiarization_prompt.stt_providerandstt_modelare required in this mode.mode="llm_only"G�� skip STT entirely and hand the recording's audio bytes to a multimodal chat model along withdiarization_prompt. The model both transcribes and diarises in a single pass. The STT fields are ignored (and must be omitted / null). Only providers whose chat API accepts audio input (OpenAIgpt-4o-audio-*, Google Gemini1.5/2.0) are usable; other providers will surface a typed error on the row.
Response Body
application/json
application/json
curl -X POST "https://example.com/api/v1/call-imports/497f6eca-6276-4993-bfeb-53cbbbba6f08/transcribe" \ -H "Content-Type: application/json" \ -d '{ "diarization_llm_provider": "string", "diarization_llm_model": "string" }'{ "queued": 0, "skipped_rows": 0, "skipped_reason_counts": { "property1": 0, "property2": 0 }, "accepted": false}Community & contact
- Found a bug or have a feature request? Open a GitHub issue.
- Join our Discord for faster replies!
