Skip to main content
POST
/
user
/
audio-notes
Upload one or more audio segments for transcription and vault ingestion
curl --request POST \
  --url https://pria.praxislxp.com/user/audio-notes \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form 'files=<string>' \
  --form combine=true \
  --form 'segment_names=<string>' \
  --form 'selectedCourse=<string>' \
  --form 'selectedAssistant=<string>' \
  --form files.items='@example-file'
{
  "acknowledged": true,
  "uploads": [
    {
      "id": "<string>",
      "originalname": "<string>",
      "status": "<string>"
    }
  ]
}

Authorizations

Authorization
string
header
required

JWT token passed in authorization header

Body

multipart/form-data
files
file[]
required
combine
enum<string>

When true and all segments share a single mimetype, the server losslessly concatenates them via ffmpeg into a single upload before ingestion. Falls back to per-segment uploads on mismatch or concat failure.

Available options:
true,
false
segment_names
string[]

Optional names parallel to files[]; ignored when combine=true

selectedCourse
string

Optional JSON-stringified course context ({ course_id, course_name, assistant: { _id } }) — applied to the History row that runFinalize updates as ingestion completes. Same shape as POST /user/files.

selectedAssistant
string

Optional active-assistant ObjectId — used as the History row's assistant field when no selectedCourse.assistant is provided.

Response

Accepted — uploads queued for background ingestion

acknowledged
boolean
uploads
object[]