Skip to main content
POST
/
files
/
upload
Upload files
curl --request POST \
  --url https://api.soket.ai/files/upload \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form 'files=<string>' \
  --form files.items='@example-file'
{
  "batch_upload_id": "<string>",
  "status": "accepted",
  "total_files": 123,
  "spool_seconds": 123,
  "files": [
    {
      "file_id": "<string>",
      "filename": "<string>",
      "size_bytes": 123,
      "estimated_duration_seconds": 123
    }
  ]
}
Accept one or more audio files as multipart form data. Files are spooled to disk immediately and uploaded to storage in the background. The response returns 202 Accepted with a batch_upload_id you can poll until uploads finish.

Example

curl -X POST "https://api.soket.ai/files/upload" \
  -H "Authorization: Bearer $JWT_TOKEN" \
  -F "files=@/absolute/path/audio1.wav" \
  -F "files=@/absolute/path/audio2.mp3"

Typical response

{
  "batch_upload_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "accepted",
  "total_files": 2,
  "spool_seconds": 0.42,
  "files": [
    {
      "file_id": "1374132b-b5db-4ec3-9cf1-f61f982e89b0",
      "filename": "audio1.wav",
      "size_bytes": 1048576,
      "estimated_duration_seconds": 65.5,
      "upload_status": "pending"
    }
  ]
}
Poll GET /files/upload/{batch_upload_id} until all files reach upload_status: "completed" before calling POST /batch.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

multipart/form-data
files
file[]
required

One or more audio files

Response

Upload accepted; background upload in progress

batch_upload_id
string
status
string
Example:

"accepted"

total_files
integer
spool_seconds
number
files
object[]