> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tensorstudio.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get file upload status

> Poll upload progress for a batch_upload_id returned by POST /files/upload. Returns per-file upload_status and gcs_key for completed files.

Poll upload progress for a `batch_upload_id` returned by `POST /files/upload`. Returns per-file `upload_status` and `gcs_key` for completed files.

## Upload statuses

* `pending` — queued for background upload
* `uploading` — upload in progress
* `completed` — ready for batch submission
* `failed` — upload failed

## Example

```bash theme={"system"}
curl -X GET "https://api.soket.ai/files/upload/$BATCH_UPLOAD_ID" \
  -H "Authorization: Bearer $JWT_TOKEN"
```

## Typical response

```json theme={"system"}
{
  "batch_upload_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "completed",
  "total_files": 2,
  "completed": 2,
  "failed": 0,
  "uploading": 0,
  "pending": 0,
  "files": [
    {
      "file_id": "1374132b-b5db-4ec3-9cf1-f61f982e89b0",
      "filename": "audio1.wav",
      "size_bytes": 1048576,
      "estimated_duration_seconds": 65.5,
      "upload_status": "completed",
      "gcs_key": "uploads/2026/06/03/1374132b-b5db-4ec3-9cf1-f61f982e89b0.wav"
    }
  ]
}
```


## OpenAPI

````yaml GET /files/upload/{batch_upload_id}
openapi: 3.0.3
info:
  title: Dhrith ASR API
  version: 1.0.0
  description: >-
    Upload audio, submit batches, track progress, and fetch merged transcription
    results.
servers:
  - url: https://api.soket.ai/transcribe
    description: Batch transcription, status, results, and download
  - url: https://api.soket.ai
    description: File upload and management
security:
  - bearerAuth: []
paths:
  /files/upload/{batch_upload_id}:
    servers:
      - url: https://api.soket.ai
    get:
      summary: Get file upload status
      description: >-
        Poll upload progress for a batch_upload_id returned by POST
        /files/upload. Returns per-file upload_status and gcs_key for completed
        files.
      operationId: getUploadStatus
      parameters:
        - name: batch_upload_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Upload status response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadStatusResponse'
        '401':
          description: Missing or invalid token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Upload batch not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    UploadStatusResponse:
      type: object
      properties:
        batch_upload_id:
          type: string
        status:
          type: string
        total_files:
          type: integer
        completed:
          type: integer
        failed:
          type: integer
        uploading:
          type: integer
        pending:
          type: integer
        files:
          type: array
          items:
            $ref: '#/components/schemas/UploadedFileSummary'
    ErrorResponse:
      type: object
      properties:
        detail:
          oneOf:
            - type: string
            - type: object
              additionalProperties: true
    UploadedFileSummary:
      type: object
      properties:
        file_id:
          type: string
        filename:
          type: string
        size_bytes:
          type: integer
        estimated_duration_seconds:
          type: number
        upload_status:
          type: string
          enum:
            - pending
            - uploading
            - completed
            - failed
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````