Skip to main content
POST
Capture a voice note (transcription only)

Authorizations

X-API-Key
string
header
required

Body

application/json

Payload to create a transcription-only voice session for a signal.

The transcript is produced client-side by the browser's Web Speech API — the same capture mechanism the existing voice-feedback pipeline uses — so the consumer reviews and (optionally) edits the text before attaching it. Audio bytes are never uploaded to Closient by this endpoint; the session stores the readable transcript only. Crucially this path is transcription-only: it never runs the LLM enrichment / Linear-issue analysis step the superuser "/feedback" stream uses.

transcript
string
required

Transcribed voice note, produced client-side by the browser's Web Speech API and reviewable/editable by the consumer before submit. Whitespace-only values are rejected with 400. Stored verbatim; never analysed (transcription is a format conversion, not content analysis — epic dumb-pipe rule).

Minimum string length: 1
Pattern: ^[^\x00]{1,}$
Example:

"The packaging smelled off when I opened the box."

page_url
string
default:""

URL of the hosted product page the voice note was captured on. Stored verbatim for context; empty when not provided.

Maximum string length: 2000
Pattern: ^[^\x00]{0,}$

Response

Created

The created voice session, returned so the form can attach it to a signal.

The consumer form takes id and sends it back as voice_session_id when it POSTs the signal, which links the session via the Signal.voice_session FK. No enrichment/Linear fields are exposed — the signals voice path never runs that step.

id
string<shortuuid>
required

Public short-UUID of the created voice session. Send this as voice_session_id when creating the signal to link the transcript to it.

Required string length: 22
Pattern: ^[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22}$
transcript
string
required

The stored transcript, echoed back so the client can confirm what was captured.