codai docs
Referință APIGateway

Transcrieri

Înregistrezi ședințe și apeluri pe orice dispozitiv și primești o transcriere română/engleză cu vorbitori și marcaje de timp pe cuvânt, apoi un rezumat, idei cheie, acțiuni și prompturi pentru agenți gata de rulat.

Transcrierile transformă o înregistrare în text căutabil și în ceva pe care poți acționa. Aplicația desktop, telefonul și ceasul înregistrează local și încarcă în fundal; gateway-ul transcrie cu etichete de vorbitor și marcaje de timp pe cuvânt (română și engleză, inclusiv amestecate în aceeași înregistrare), apoi scrie analiza: un titlu, un rezumat, idei cheie cu citări, acțiuni, decizii, întrebări deschise și prompturi pentru agenți pe care le poți lansa.

Transcrierile se activează per cont cât timp sunt în previzualizare. Când funcția e oprită pentru cheia ta, toate endpoint-urile de mai jos răspund 404.

Drumul unei înregistrări

  1. Creare. POST /v1/transcripts cu un client_id generat de client (o reîncercare după un crash întoarce aceeași transcriere) și started_at. Stare recording.
  2. Încărcare. Fiecare pistă (mic, system — sunetul sistemului, sau o singură pistă mixed) urcă prin tus 1.0 la /v1/uploads: reluabil, cel mult 8 MB per PATCH, deci o conexiune căzută sau o repornire continuă de la ultimul octet pe care îl are serverul (HEAD /v1/uploads/{id}). Id-urile de încărcare aparțin contului tău; altă cheie nu le poate continua.
  3. Finalizare. POST /v1/transcripts/{id}/finalize cu id-urile încărcărilor, durata, marcajele și (opțional) textul live. Stare queued.
  4. Transcriere. Procesul de fundal taie sunetul în ferestre de cel mult 15 minute (limita pentru separarea vorbitorilor) și le trimite la Gemini 3.5 Transcribe. Vorbitorii sunt potriviți între ferestre. Stare transcribing, apoi analyzing.
  5. Analiză. Un model scrie analiza din transcriere (cu prompt caching). Stare ready. Un eșec după 5 încercări se termină cu failed și error; POST …/retranscribe și …/reanalyze reiau un pas.

Cât timp un pas se reîncearcă, status nu se schimbă; GET /v1/transcripts/{id} întoarce processing cu attempts, max_attempts, last_error și next_attempt_at, ca un client să poată spune „se reîncearcă” în loc să pară blocat. GET /v1/transcripts/stream (server-sent events) trimite un eveniment transcript la fiecare schimbare de stare.

Vizualizare live. În timpul înregistrării, dispozitivul poate trimite POST /v1/transcripts/{id}/live cu textul curent (finals, partial, level, device, elapsed_ms, paused) cam o dată pe secundă. Fiecare vizualizator al fluxului (pagina din hub, desktop, telefon, ceas) îl primește ca op: live; nu se salvează nimic, iar cadrele la mai puțin de 250 ms sunt ignorate.

import { readFile } from 'node:fs/promises';
import { Codai } from 'codai-sdk';

const codai = new Codai({ apiKey: process.env.CODAI_API_KEY! });
const t = await codai.transcripts.create({
  client_id: crypto.randomUUID(),
  source: 'desktop',
  started_at: new Date().toISOString(),
});
const uploadId = await codai.transcripts.uploadAudio(await readFile('sedinta.ogg'), {
  transcriptId: t.id,
  onProgress: (sent, total) => console.log(`${sent}/${total}`),
});
await codai.transcripts.finalize(t.id, {
  duration_ms: 1_800_000,
  uploads: [{ track: 'mic', upload_id: uploadId }],
});
for await (const e of codai.transcripts.stream()) if (e.id === t.id && e.status === 'ready') break;
const gata = await codai.transcripts.get(t.id);
console.log(gata.insights?.summary);
from codai import Codai

codai = Codai(api_key="codai_...")
t = codai.transcripts.create({"client_id": "rec-2026-10-06-1", "source": "desktop", "started_at": "2026-10-06T09:00:00Z"})
upload_id = codai.transcripts.upload_audio(open("sedinta.ogg", "rb").read(), transcript_id=t["id"])
codai.transcripts.finalize(t["id"], {"duration_ms": 1_800_000, "uploads": [{"track": "mic", "upload_id": upload_id}]})
srt = codai.transcripts.export(t["id"], "srt")["text"]

Lucrul cu o transcriere

  • Citire. GET /v1/transcripts/{id}: vorbitorii (redenumești unul sau te marchezi pe tine cu PATCH …/speakers/{label}), replicile cu marcaje de timp pe cuvânt (corectezi una cu PATCH …/utterances/{seq}), marcajele și ultima analiză.
  • Căutare și întrebări. GET /v1/transcripts/search caută după text și după sens (mode=hybrid, implicit). POST /v1/transcripts/ask răspunde la o întrebare din toate înregistrările tale, cu citări [n] către transcriere, vorbitor și moment.
  • Acțiune. Analiza conține prompts sugerate pentru agenți; POST …/prompts/{index}/accept transformă unul într-un prompt în așteptare cu source: transcript, gata de lansat pe un dispozitiv.
  • Export și redare. GET …/export?format=md|txt|srt|vtt|json|pdf|docx (vezi mai jos); GET …/audio întoarce linkuri semnate, de scurtă durată, pentru fiecare pistă.
  • Organizare. Dosare (/v1/transcript-folders), etichete și fixare; un vocabular personal (PUT /v1/transcript-vocabulary) pentru nume și termeni pe care transcrierea trebuie să-i scrie corect.

Export ca PDF sau Word

GET /v1/transcripts/{id}/export?format=pdf și format=docx întorc un fișier binar atașat, numit după titlu (un filename ASCII plus titlul exact în filename*). Documentul conține titlul, data, durata și vorbitorii, apoi rezumatul, ideile cheie și acțiunile când există analiza, apoi transcrierea pe vorbitori cu marcaje [hh:mm:ss]. PDF-ul încorporează un font Unicode, deci diacriticele (ș, ț, ă, î, â) apar corect la tipărire. Etichetele urmează limba transcrierii (română sau engleză).

import { writeFile } from 'node:fs/promises';

const pdf = await codai.transcripts.export(t.id, 'pdf'); // { bytes, filename, contentType }
await writeFile(pdf.filename ?? 'transcriere.pdf', pdf.bytes);
docx = codai.transcripts.export(t["id"], "docx")  # {"bytes", "filename", "content_type"}
open(docx["filename"] or "transcriere.docx", "wb").write(docx["bytes"])

POST /v1/transcripts/{id}/shares cu un expiresInDays opțional (1–365; fără el linkul nu expiră) întoarce { id, token, url, expiresAt }, unde url este https://hub.codai.ro/t/<token>. Oricine are linkul poate citi titlul, vorbitorii, transcrierea, rezumatul, ideile cheie și acțiunile, niciodată sunetul, și nimic care să-ți identifice contul. Deciziile, întrebările deschise și prompturile sugerate rămân private.

  • Tokenul are 32 de octeți aleatori și se afișează o singură dată: se păstrează doar amprenta lui SHA-256, așa că GET …/shares listează linkurile active cu url: null.
  • DELETE …/shares/{shareId} revocă imediat un link; ștergerea transcrierii șterge toate linkurile ei.
  • Pagina din spatele linkului citește GET /v1/public/transcripts/{token}, care nu cere cheie API, are limită de cereri per vizitator și răspunde 404 pentru un link necunoscut, expirat sau revocat.
const link = await codai.transcripts.shares.create(t.id, { expiresInDays: 30 });
console.log(link.url); // copiază-l acum; nu mai poate fi afișat
const active = await codai.transcripts.shares.list(t.id);
await codai.transcripts.shares.revoke(t.id, active[0]!.id);

Confidențialitate, păstrare și limite

  • Sunetul stă într-un bucket din UE, criptat cu o cheie dedicată, și se șterge după 30 de zile; textul și analiza rămân până le ștergi tu. După ce sunetul dispare, audio_purged_at este setat și redarea și retranscrierea nu mai sunt oferite.
  • DELETE /v1/transcripts/{id} șterge transcrierea și sunetul ei. Ștergerea contului șterge toate înregistrările; exportul contului include toate tabelele de transcrieri (fără sunet).
  • Cel mult 3 ore per înregistrare și 20 de ore pe lună per cont (GET /v1/transcripts/usage).

Tool-uri MCP

Serverul MCP expune list_transcripts, get_transcript, search_transcripts, ask_transcripts, export_transcript (doar formatele text; PDF și Word sunt fișiere binare), accept_transcript_prompt și transcript_share_create, apelate cu cheia ta API (token-urile OAuth sunt refuzate). Ștergerea, revocarea linkurilor, reluarea și editarea rămân în aplicații.

GET
/v1/transcripts

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri query

status?string

Doar transcrierile cu acest status.

Valoare din"recording""uploading""queued""transcribing""analyzing""ready""failed"
folder_id?string

Doar transcrierile din acest dosar.

Formatuuid
pinned?boolean

Filtru după fixare: true/1 doar cele fixate, false/0 doar cele nefixate.

tag?string

Doar transcrierile cu această etichetă.

Lungimelength <= 40
cursor?string

next_cursor al paginii anterioare (dată-oră ISO); întoarce transcrieri mai vechi.

Lungimelength <= 200
limit?integer

Dimensiunea paginii (1–100).

Interval1 <= value <= 100
Implicit30

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

O pagină de transcrieri.

application/json
  1. response
transcripts*array<>
next_cursor*|

Cursorul paginii următoare; null pe ultima pagină.

Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/transcripts'
Exemplu de răspuns
{  "transcripts": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "client_id": "string",      "title": "string",      "status": "recording",      "source": "desktop",      "template": "auto",      "language_hint": "string",      "language": "string",      "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",      "pinned": true,      "tags": [        "string"      ],      "feed_memory": true,      "started_at": "2019-08-24T14:15:22Z",      "duration_ms": 0,      "error": "string",      "audio_available": true,      "ready_at": "2019-08-24T14:15:22Z",      "created_at": "2019-08-24T14:15:22Z",      "updated_at": "2019-08-24T14:15:22Z"    }  ],  "next_cursor": "string"}
POST
/v1/transcripts

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
title?string
Lungimelength <= 200
source*string
Valoare din"desktop""phone""wear""web""vscode""tv""api"
template?TranscriptTemplate

Determină forma analizei; auto lasă modelul să aleagă.

Valoare din"auto""meeting""brainstorm""journal""interview""lecture"
language_hint?string
Lungime2 <= length <= 12
Implicit"auto"
tracks?array<>
Elemente1 <= items <= 2
folder_id?|
Formatuuid
client_id*string

Id generat de client; o creare reluată după un crash întoarce aceeași transcriere.

Lungime8 <= length <= 64
started_at*string
Formatdate-time
feed_memory?boolean
Implicitfalse

Corpul răspunsului

Transcrierea (nouă sau cea existentă pentru acest client_id).

application/json
  1. response
id*string
Formatuuid
client_id*string
title*string
status*TranscriptStatus

Ciclu de viață: recording → uploading → queued → transcribing → analyzing → ready, sau failed.

Valoare din"recording""uploading""queued""transcribing""analyzing""ready""failed"
source*string
Valoare din"desktop""phone""wear""web""vscode""tv""api"
template*TranscriptTemplate

Determină forma analizei; auto lasă modelul să aleagă.

Valoare din"auto""meeting""brainstorm""journal""interview""lecture"
language_hint*string

auto, ro, en sau alt tag BCP-47 transmis recunoașterii vorbirii.

language*|

Limba detectată, după transcriere.

folder_id*|
Formatuuid
pinned*boolean
tags*array<string>
feed_memory*boolean

Opțiune ca faptele extrase să alimenteze memoria codai.

started_at*string
Formatdate-time
duration_ms*integer
Interval0 <= value
error*string|null
audio_available*boolean

false după ce retenția de 30 de zile a șters audio-ul.

ready_at*|
Formatdate-time
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/transcripts' \  -H 'Content-Type: application/json' \  -d '{  "source": "desktop",  "client_id": "stringst",  "started_at": "2019-08-24T14:15:22Z"}'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "client_id": "string",  "title": "string",  "status": "recording",  "source": "desktop",  "template": "auto",  "language_hint": "string",  "language": "string",  "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",  "pinned": true,  "tags": [    "string"  ],  "feed_memory": true,  "started_at": "2019-08-24T14:15:22Z",  "duration_ms": 0,  "error": "string",  "audio_available": true,  "ready_at": "2019-08-24T14:15:22Z",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}
GET
/v1/transcripts/usage

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Alocare consumată și rămasă.

application/json
  1. response
used_ms*integer
Interval0 <= value
cap_ms*integer
Interval0 <= value
remaining_ms*integer
Interval0 <= value
period_start*string
Formatdate-time
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/transcripts/usage'
Exemplu de răspuns
{  "used_ms": 0,  "cap_ms": 0,  "remaining_ms": 0,  "period_start": "2019-08-24T14:15:22Z"}
GET
/v1/transcripts/stream

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Stream SSE (text/event-stream, cache-control: no-cache).

response?stringtext/event-stream
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/transcripts/stream'
Exemplu de răspuns
"string"
GET
/v1/transcripts/search

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri query

q*string

Interogarea de căutare.

Lungime1 <= length <= 500
mode?string

Modul de căutare.

Implicit"hybrid"
Valoare din"hybrid""text""semantic"
limit?integer

Numărul maxim de replici găsite (1–50).

Interval1 <= value <= 50
Implicit20

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Replici găsite și titluri găsite.

application/json
  1. response
hits*array<>
titles*array<>
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/transcripts/search?q=string'
Exemplu de răspuns
{  "hits": [    {      "transcript_id": "215670dc-b708-4c27-9393-0b9ca7d8935d",      "title": "string",      "start_ms": 0,      "end_ms": 0,      "speaker": "string",      "snippet": "string"    }  ],  "titles": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "title": "string"    }  ]}
POST
/v1/transcripts/ask

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
question*string
Lungime3 <= length <= 2000
transcript_ids?array<>

Limitează căutarea la aceste transcrieri.

Elementeitems <= 50

Corpul răspunsului

Răspunsul și sursele lui numerotate.

application/json
  1. response
answer*string
sources*array<>
Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/transcripts/ask' \  -H 'Content-Type: application/json' \  -d '{  "question": "string"}'
Exemplu de răspuns
{  "answer": "string",  "sources": [    {      "n": 1,      "transcript_id": "215670dc-b708-4c27-9393-0b9ca7d8935d",      "title": "string",      "start_ms": 0,      "end_ms": 0,      "text": "string"    }  ]}
GET
/v1/transcripts/{id}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Detaliul transcrierii.

application/json
  1. response
id*string
Formatuuid
client_id*string
title*string
status*TranscriptStatus

Ciclu de viață: recording → uploading → queued → transcribing → analyzing → ready, sau failed.

Valoare din"recording""uploading""queued""transcribing""analyzing""ready""failed"
source*string
Valoare din"desktop""phone""wear""web""vscode""tv""api"
template*TranscriptTemplate

Determină forma analizei; auto lasă modelul să aleagă.

Valoare din"auto""meeting""brainstorm""journal""interview""lecture"
language_hint*string

auto, ro, en sau alt tag BCP-47 transmis recunoașterii vorbirii.

language*|

Limba detectată, după transcriere.

folder_id*|
Formatuuid
pinned*boolean
tags*array<string>
feed_memory*boolean

Opțiune ca faptele extrase să alimenteze memoria codai.

started_at*string
Formatdate-time
duration_ms*integer
Interval0 <= value
error*string|null
audio_available*boolean

false după ce retenția de 30 de zile a șters audio-ul.

ready_at*|
Formatdate-time
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
live_preview*|

Textul live de pe dispozitiv, păstrat ca rezervă până sosește transcrierea finală.

processing*|

Lucrarea de fundal în așteptare, sau null când nu există. Cât timp o lucrare se reîncearcă, status rămâne transcribing / analyzing; last_error și next_attempt_at spun de ce și când rulează din nou. După max_attempts transcrierea devine failed.

tracks*array<>
speakers*array<>
utterances*array<>
bookmarks*array<>
insights*|null
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "client_id": "string",  "title": "string",  "status": "recording",  "source": "desktop",  "template": "auto",  "language_hint": "string",  "language": "string",  "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",  "pinned": true,  "tags": [    "string"  ],  "feed_memory": true,  "started_at": "2019-08-24T14:15:22Z",  "duration_ms": 0,  "error": "string",  "audio_available": true,  "ready_at": "2019-08-24T14:15:22Z",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "live_preview": "string",  "processing": {    "kind": "transcribe",    "attempts": 0,    "max_attempts": 1,    "last_error": "string",    "next_attempt_at": "2019-08-24T14:15:22Z"  },  "tracks": [    {      "kind": "mic",      "bytes": 0    }  ],  "speakers": [    {      "label": "string",      "name": "string",      "is_owner": true,      "talk_ms": 0    }  ],  "utterances": [    {      "seq": 0,      "speaker": "string",      "start_ms": 0,      "end_ms": 0,      "text": "string",      "language": "string",      "words": [        {          "w": "string",          "s": 0,          "e": 0,          "c": 0        }      ],      "edited": true    }  ],  "bookmarks": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "at_ms": 0,      "label": "string"    }  ],  "insights": {    "version": 0,    "model": "string",    "created_at": "2019-08-24T14:15:22Z",    "accepted_prompts": {      "property1": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "property2": "497f6eca-6276-4993-bfeb-53cbbbba6f08"    },    "title": "string",    "summary": "string",    "template": "auto",    "language": "string",    "keyPoints": [      {        "text": "string",        "cite": {          "startMs": 0,          "endMs": 0        }      }    ],    "actions": [      {        "text": "string",        "owner": "string",        "due": "string",        "cite": {          "startMs": 0,          "endMs": 0        }      }    ],    "decisions": [      {        "text": "string",        "cite": {          "startMs": 0,          "endMs": 0        }      }    ],    "openQuestions": [      {        "text": "string",        "cite": {          "startMs": 0,          "endMs": 0        }      }    ],    "tags": [      "string"    ],    "project": "string",    "prompts": [      {        "title": "string",        "prompt": "string",        "repo": "string",        "cite": {          "startMs": 0,          "endMs": 0        }      }    ]  }}
PATCH
/v1/transcripts/{id}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
Proprietăți1 <= properties
title?string
Lungime1 <= length <= 200
folder_id?|
Formatuuid
pinned?boolean
tags?array<>
Elementeitems <= 30
template?TranscriptTemplate

Determină forma analizei; auto lasă modelul să aleagă.

Valoare din"auto""meeting""brainstorm""journal""interview""lecture"
feed_memory?boolean

Corpul răspunsului

Transcrierea actualizată.

application/json
  1. response
id*string
Formatuuid
client_id*string
title*string
status*TranscriptStatus

Ciclu de viață: recording → uploading → queued → transcribing → analyzing → ready, sau failed.

Valoare din"recording""uploading""queued""transcribing""analyzing""ready""failed"
source*string
Valoare din"desktop""phone""wear""web""vscode""tv""api"
template*TranscriptTemplate

Determină forma analizei; auto lasă modelul să aleagă.

Valoare din"auto""meeting""brainstorm""journal""interview""lecture"
language_hint*string

auto, ro, en sau alt tag BCP-47 transmis recunoașterii vorbirii.

language*|

Limba detectată, după transcriere.

folder_id*|
Formatuuid
pinned*boolean
tags*array<string>
feed_memory*boolean

Opțiune ca faptele extrase să alimenteze memoria codai.

started_at*string
Formatdate-time
duration_ms*integer
Interval0 <= value
error*string|null
audio_available*boolean

false după ce retenția de 30 de zile a șters audio-ul.

ready_at*|
Formatdate-time
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
Exemplu de cerere
curl -X PATCH 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{}'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "client_id": "string",  "title": "string",  "status": "recording",  "source": "desktop",  "template": "auto",  "language_hint": "string",  "language": "string",  "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",  "pinned": true,  "tags": [    "string"  ],  "feed_memory": true,  "started_at": "2019-08-24T14:15:22Z",  "duration_ms": 0,  "error": "string",  "audio_available": true,  "ready_at": "2019-08-24T14:15:22Z",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}
DELETE
/v1/transcripts/{id}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Șters.

Exemplu de cerere
curl -X DELETE 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Exemplu de răspuns
Gol
POST
/v1/transcripts/{id}/finalize

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
duration_ms*integer
Interval1 <= value <= 10860000
uploads*array<>
Elemente1 <= items <= 2
bookmarks?array<>
Elementeitems <= 500
live_preview?string
Lungimelength <= 400000

Corpul răspunsului

Deja finalizată; transcrierea așa cum este.

application/json
  1. response
id*string
Formatuuid
client_id*string
title*string
status*TranscriptStatus

Ciclu de viață: recording → uploading → queued → transcribing → analyzing → ready, sau failed.

Valoare din"recording""uploading""queued""transcribing""analyzing""ready""failed"
source*string
Valoare din"desktop""phone""wear""web""vscode""tv""api"
template*TranscriptTemplate

Determină forma analizei; auto lasă modelul să aleagă.

Valoare din"auto""meeting""brainstorm""journal""interview""lecture"
language_hint*string

auto, ro, en sau alt tag BCP-47 transmis recunoașterii vorbirii.

language*|

Limba detectată, după transcriere.

folder_id*|
Formatuuid
pinned*boolean
tags*array<string>
feed_memory*boolean

Opțiune ca faptele extrase să alimenteze memoria codai.

started_at*string
Formatdate-time
duration_ms*integer
Interval0 <= value
error*string|null
audio_available*boolean

false după ce retenția de 30 de zile a șters audio-ul.

ready_at*|
Formatdate-time
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/finalize' \  -H 'Content-Type: application/json' \  -d '{  "duration_ms": 1,  "uploads": [    {      "track": "mic",      "upload_id": "stringst"    }  ]}'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "client_id": "string",  "title": "string",  "status": "recording",  "source": "desktop",  "template": "auto",  "language_hint": "string",  "language": "string",  "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",  "pinned": true,  "tags": [    "string"  ],  "feed_memory": true,  "started_at": "2019-08-24T14:15:22Z",  "duration_ms": 0,  "error": "string",  "audio_available": true,  "ready_at": "2019-08-24T14:15:22Z",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}
POST
/v1/transcripts/{id}/retranscribe

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

În coadă pentru transcriere.

application/json
  1. response
id*string
Formatuuid
client_id*string
title*string
status*TranscriptStatus

Ciclu de viață: recording → uploading → queued → transcribing → analyzing → ready, sau failed.

Valoare din"recording""uploading""queued""transcribing""analyzing""ready""failed"
source*string
Valoare din"desktop""phone""wear""web""vscode""tv""api"
template*TranscriptTemplate

Determină forma analizei; auto lasă modelul să aleagă.

Valoare din"auto""meeting""brainstorm""journal""interview""lecture"
language_hint*string

auto, ro, en sau alt tag BCP-47 transmis recunoașterii vorbirii.

language*|

Limba detectată, după transcriere.

folder_id*|
Formatuuid
pinned*boolean
tags*array<string>
feed_memory*boolean

Opțiune ca faptele extrase să alimenteze memoria codai.

started_at*string
Formatdate-time
duration_ms*integer
Interval0 <= value
error*string|null
audio_available*boolean

false după ce retenția de 30 de zile a șters audio-ul.

ready_at*|
Formatdate-time
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/retranscribe'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "client_id": "string",  "title": "string",  "status": "recording",  "source": "desktop",  "template": "auto",  "language_hint": "string",  "language": "string",  "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",  "pinned": true,  "tags": [    "string"  ],  "feed_memory": true,  "started_at": "2019-08-24T14:15:22Z",  "duration_ms": 0,  "error": "string",  "audio_available": true,  "ready_at": "2019-08-24T14:15:22Z",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}
POST
/v1/transcripts/{id}/reanalyze

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

În coadă pentru analiză.

application/json
  1. response
id*string
Formatuuid
client_id*string
title*string
status*TranscriptStatus

Ciclu de viață: recording → uploading → queued → transcribing → analyzing → ready, sau failed.

Valoare din"recording""uploading""queued""transcribing""analyzing""ready""failed"
source*string
Valoare din"desktop""phone""wear""web""vscode""tv""api"
template*TranscriptTemplate

Determină forma analizei; auto lasă modelul să aleagă.

Valoare din"auto""meeting""brainstorm""journal""interview""lecture"
language_hint*string

auto, ro, en sau alt tag BCP-47 transmis recunoașterii vorbirii.

language*|

Limba detectată, după transcriere.

folder_id*|
Formatuuid
pinned*boolean
tags*array<string>
feed_memory*boolean

Opțiune ca faptele extrase să alimenteze memoria codai.

started_at*string
Formatdate-time
duration_ms*integer
Interval0 <= value
error*string|null
audio_available*boolean

false după ce retenția de 30 de zile a șters audio-ul.

ready_at*|
Formatdate-time
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/reanalyze'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "client_id": "string",  "title": "string",  "status": "recording",  "source": "desktop",  "template": "auto",  "language_hint": "string",  "language": "string",  "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",  "pinned": true,  "tags": [    "string"  ],  "feed_memory": true,  "started_at": "2019-08-24T14:15:22Z",  "duration_ms": 0,  "error": "string",  "audio_available": true,  "ready_at": "2019-08-24T14:15:22Z",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}
POST
/v1/transcripts/{id}/live

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
finals?string
Lungimelength <= 4000
partial?string
Lungimelength <= 1000
level?number
Interval0 <= value <= 1
device*string
Valoare din"phone""wear""desktop"
elapsed_ms*integer
Interval0 <= value
paused?boolean

Corpul răspunsului

Acceptat (sau ignorat de limita de frecvență).

Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/live' \  -H 'Content-Type: application/json' \  -d '{  "device": "phone",  "elapsed_ms": 0}'
Exemplu de răspuns
Gol
POST
/v1/transcripts/{id}/bookmarks

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
at_ms*integer
Interval0 <= value <= 10860000
label?string
Lungimelength <= 120

Corpul răspunsului

Semnul de carte.

application/json
  1. response
id*string
Formatuuid
at_ms*integer
Interval0 <= value
label*string|null
Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/bookmarks' \  -H 'Content-Type: application/json' \  -d '{  "at_ms": 0}'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "at_ms": 0,  "label": "string"}
PATCH
/v1/transcripts/{id}/speakers/{label}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid
label*string

Eticheta de diarizare a vorbitorului (de exemplu A).

Lungimelength <= 40

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
name*string
Lungime1 <= length <= 80
is_owner?boolean

Corpul răspunsului

Vorbitorul redenumit.

application/json
  1. response
label*string
name*string
is_owner*boolean
Exemplu de cerere
curl -X PATCH 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/speakers/string' \  -H 'Content-Type: application/json' \  -d '{  "name": "string"}'
Exemplu de răspuns
{  "label": "string",  "name": "string",  "is_owner": true}
PATCH
/v1/transcripts/{id}/utterances/{seq}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid
seq*integer

Poziția replicii în transcriere (de la 0).

Interval0 <= value

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
text*string
Lungime1 <= length <= 20000

Corpul răspunsului

Replica corectată.

application/json
  1. response
seq*integer
text*string
edited*boolean
Exemplu de cerere
curl -X PATCH 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/utterances/0' \  -H 'Content-Type: application/json' \  -d '{  "text": "string"}'
Exemplu de răspuns
{  "seq": 0,  "text": "string",  "edited": true}
GET
/v1/transcripts/{id}/audio

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

URL-uri semnate (cache-control: private, no-store).

application/json
  1. response
tracks*array<>
expires_in?integer

Secundele cât URL-urile rămân valide; lipsește când tracks este gol.

Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/audio'
Exemplu de răspuns
{  "tracks": [    {      "kind": "mic",      "mime": "string",      "url": "http://example.com"    }  ],  "expires_in": 0}
GET
/v1/transcripts/{id}/export

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri query

format?string

Formatul fișierului.

Implicit"md"
Valoare din"md""txt""srt""vtt""json""pdf""docx"

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Fișierul exportat (text UTF-8, sau binar pentru pdf / docx).

response?string
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/export'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "client_id": "string",  "title": "string",  "status": "recording",  "source": "desktop",  "template": "auto",  "language_hint": "string",  "language": "string",  "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",  "pinned": true,  "tags": [    "string"  ],  "feed_memory": true,  "started_at": "2019-08-24T14:15:22Z",  "duration_ms": 0,  "error": "string",  "audio_available": true,  "ready_at": "2019-08-24T14:15:22Z",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "live_preview": "string",  "processing": {    "kind": "transcribe",    "attempts": 0,    "max_attempts": 1,    "last_error": "string",    "next_attempt_at": "2019-08-24T14:15:22Z"  },  "tracks": [    {      "kind": "mic",      "bytes": 0    }  ],  "speakers": [    {      "label": "string",      "name": "string",      "is_owner": true,      "talk_ms": 0    }  ],  "utterances": [    {      "seq": 0,      "speaker": "string",      "start_ms": 0,      "end_ms": 0,      "text": "string",      "language": "string",      "words": [        {          "w": "string",          "s": 0,          "e": 0,          "c": 0        }      ],      "edited": true    }  ],  "bookmarks": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "at_ms": 0,      "label": "string"    }  ],  "insights": {    "version": 0,    "model": "string",    "created_at": "2019-08-24T14:15:22Z",    "accepted_prompts": {      "property1": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "property2": "497f6eca-6276-4993-bfeb-53cbbbba6f08"    },    "title": "string",    "summary": "string",    "template": "auto",    "language": "string",    "keyPoints": [      {        "text": "string",        "cite": {          "startMs": 0,          "endMs": 0        }      }    ],    "actions": [      {        "text": "string",        "owner": "string",        "due": "string",        "cite": {          "startMs": 0,          "endMs": 0        }      }    ],    "decisions": [      {        "text": "string",        "cite": {          "startMs": 0,          "endMs": 0        }      }    ],    "openQuestions": [      {        "text": "string",        "cite": {          "startMs": 0,          "endMs": 0        }      }    ],    "tags": [      "string"    ],    "project": "string",    "prompts": [      {        "title": "string",        "prompt": "string",        "repo": "string",        "cite": {          "startMs": 0,          "endMs": 0        }      }    ]  }}
POST
/v1/transcripts/{id}/prompts/{index}/accept

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid
index*integer

Index în insights.prompts (0–20).

Interval0 <= value <= 20

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Deja acceptat; promptul existent.

application/json
  1. response
prompt_id*string
Formatuuid
created*boolean
Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/prompts/0/accept'
Exemplu de răspuns
{  "prompt_id": "24783230-27c2-455c-9de9-95bbdbb78c3d",  "created": true}
POST
/v1/transcripts/{id}/shares

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
expiresInDays?integer

Durata linkului în zile; omite-l pentru un link care nu expiră.

Interval1 <= value <= 365

Corpul răspunsului

Link creat; păstrează tokenul/url-ul, nu poate fi recuperat.

application/json
  1. response
id*string
Formatuuid
token*string

32 de octeți aleatori, base64url. Afișat doar în acest răspuns.

url*string

Pagina publică doar pentru citire, https://hub.codai.ro/t/<token>.

Formaturi
expiresAt*|
Formatdate-time
Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/shares' \  -H 'Content-Type: application/json' \  -d '{}'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "token": "string",  "url": "http://example.com",  "expiresAt": "2019-08-24T14:15:22Z"}
GET
/v1/transcripts/{id}/shares

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Linkurile active.

application/json
  1. response
data*array<>
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/shares'
Exemplu de răspuns
{  "data": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "url": null,      "createdAt": "2019-08-24T14:15:22Z",      "expiresAt": "2019-08-24T14:15:22Z"    }  ]}
DELETE
/v1/transcripts/{id}/shares/{shareId}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul transcrierii (uuid). Un id străin sau malformat primește 404.

Formatuuid
shareId*string

Id-ul partajării (uuid) din răspunsul de creare sau listare.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Revocat.

Exemplu de cerere
curl -X DELETE 'https://ai.codai.ro/v1/transcripts/497f6eca-6276-4993-bfeb-53cbbbba6f08/shares/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Exemplu de răspuns
Gol
GET
/v1/public/transcripts/{token}

Parametri de cale

token*string

Tokenul de partajare (43 de caractere base64url).

Potrivire^[A-Za-z0-9_-]{43}$

Corpul răspunsului

Transcrierea partajată.

application/json
  1. response
title*string
createdAt*string
Formatdate-time
durationMs*integer
Interval0 <= value
speakers*array<>
utterances*array<>
insights*null|
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/public/transcripts/string'
Exemplu de răspuns
{  "title": "string",  "createdAt": "2019-08-24T14:15:22Z",  "durationMs": 0,  "speakers": [    {      "label": "string",      "name": "string"    }  ],  "utterances": [    {      "speaker": "string",      "startMs": 0,      "endMs": 0,      "text": "string"    }  ],  "insights": null}
GET
/v1/transcript-folders

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Dosarele.

application/json
  1. response
folders*array<>
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/transcript-folders'
Exemplu de răspuns
{  "folders": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "name": "string",      "color": "string",      "position": 0    }  ]}
POST
/v1/transcript-folders

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
name*string
Lungime1 <= length <= 80
color?string
Potrivire^[a-z]{3,16}$

Corpul răspunsului

Dosarul.

application/json
  1. response
id*string
Formatuuid
name*string
color*string|null
position*integer
Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/transcript-folders' \  -H 'Content-Type: application/json' \  -d '{  "name": "string"}'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "name": "string",  "color": "string",  "position": 0}
PATCH
/v1/transcript-folders/{id}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul dosarului (uuid). Un id malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
name?string
Lungime1 <= length <= 80
color?string
Potrivire^[a-z]{3,16}$
position?integer
Interval0 <= value <= 10000

Corpul răspunsului

Dosarul actualizat.

application/json
  1. response
id*string
Formatuuid
name*string
color*string|null
position*integer
Exemplu de cerere
curl -X PATCH 'https://ai.codai.ro/v1/transcript-folders/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{}'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "name": "string",  "color": "string",  "position": 0}
DELETE
/v1/transcript-folders/{id}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul dosarului (uuid). Un id malformat primește 404.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Șters.

Exemplu de cerere
curl -X DELETE 'https://ai.codai.ro/v1/transcript-folders/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Exemplu de răspuns
Gol
GET
/v1/transcript-vocabulary

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Termenii tăi.

application/json
  1. response
terms*array<>
Elementeitems <= 1000
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/transcript-vocabulary'
Exemplu de răspuns
{  "terms": [    "string"  ]}
PUT
/v1/transcript-vocabulary

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
terms*array<>
Elementeitems <= 1000

Corpul răspunsului

Termenii stocați.

application/json
  1. response
terms*array<>
Elementeitems <= 1000
Exemplu de cerere
curl -X PUT 'https://ai.codai.ro/v1/transcript-vocabulary' \  -H 'Content-Type: application/json' \  -d '{  "terms": [    "string"  ]}'
Exemplu de răspuns
{  "terms": [    "string"  ]}
POST
/v1/uploads

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

tus-resumable*"1.0.0"

Versiunea protocolului.

Valoare din"1.0.0"
upload-length?integer

Dimensiunea totală în octeți, când este cunoscută.

Interval0 <= value <= 209715200
upload-defer-length?1

1 când dimensiunea nu este încă cunoscută.

Valoare din1
upload-metadata?string

Perechi cheie valoare-base64 separate prin virgulă (transcript, track, durationMs; sau purpose=list cu mime).

Corpul răspunsului

Upload creat.

Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/uploads' \  -H 'tus-resumable: 1.0.0'
Exemplu de răspuns
Gol
OPTIONS
/v1/uploads

Corpul răspunsului

Capabilitățile, în antetele răspunsului.

Exemplu de cerere
curl -X OPTIONS 'https://ai.codai.ro/v1/uploads'
Exemplu de răspuns
Gol
GET
/v1/uploads/{id}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul upload-ului tus din Location (legat de contul tău). Un id străin sau malformat primește 404.

Parametri header

tus-resumable*"1.0.0"

Versiunea protocolului.

Valoare din"1.0.0"

Corpul răspunsului

Offset-ul curent (cache-control: no-store), fără corp.

Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/uploads/string' \  -H 'tus-resumable: 1.0.0'
Exemplu de răspuns
Gol
PATCH
/v1/uploads/{id}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul upload-ului tus din Location (legat de contul tău). Un id străin sau malformat primește 404.

Parametri header

tus-resumable*"1.0.0"

Versiunea protocolului.

Valoare din"1.0.0"
upload-offset*integer

Offset-ul de la care începe bucata.

Interval0 <= value

Corpul cererii

body*fileapplication/offset+octet-stream
Formatbinary
Lungimelength <= 8388608

Corpul răspunsului

Bucată stocată.

Exemplu de cerere
curl -X PATCH 'https://ai.codai.ro/v1/uploads/string' \  -H 'tus-resumable: 1.0.0' \  -H 'upload-offset: 0' \  -H 'Content-Type: application/offset+octet-stream' \  -d 'string'
Exemplu de răspuns
Gol

Pe această pagină