Documentation Index
Fetch the complete documentation index at: https://docs.auvy.ai/llms.txt
Use this file to discover all available pages before exploring further.
Transcription API
The transcription plane runs STT on already-ingested audio. It does not accept raw upload bytes — use the ingest plane first, then reference the attachment or asset by id.
Gladia keys: GET /v1/transcription/runtime checks API configuration. Pre-recorded STT runs on agent-end — set GLADIA_API_KEY there too.
Ingest first
| Plane | Route | Use for |
|---|
| Chat attachments | POST /v1/chat/attachments | Composer mic, meetings, trace audio |
| Vault assets | POST /v1/assets | Voice assets for RAG |
Runtime
GET /v1/transcription/runtime
const runtime = await auvy.transcription.runtime()
// { available, gladia_configured, reason? }
Transcribe
JSON body:
{
"source": { "type": "attachment_id", "id": "<uuid>" },
"locale": "en",
"diarize": true
}
const staged = await auvy.chat.uploadAttachment(wavFile, { brainId })
const { job_id } = await auvy.transcription.transcribe(
{ type: 'attachment_id', id: staged.id },
{ diarize: true, locale: 'en' },
)
const result = await auvy.transcription.waitForResult(job_id)
// { text, segments?: [{ speaker, text, start_ms?, end_ms? }] }
Poll job status
When status is completed, result contains { text, segments? } for transcription jobs.
Meetings example
const staged = await auvy.chat.uploadAttachment(wav, { brainId })
const { job_id } = await auvy.transcription.transcribe(
{ type: 'attachment_id', id: staged.id },
{ diarize: true },
)
const result = await auvy.transcription.waitForResult(job_id)
await auvy.resources.meetings.patchPartial(meetingId, {
transcript_segments: result.segments,
transcription: { status: 'ready', finalized_at: new Date().toISOString() },
})
See Meetings for transcript read APIs and speaker assignment.