---
title: "Fetch upload and transcription status"
method: GET
path: "/uploads/{id}"
tags: ["Uploads"]
---

# Fetch upload and transcription status

`GET /uploads/{id}`

## Response `200`

Upload found

- UploadStatusResponse
  - `id` string, required
  - `filename` string, nullable, required
  - `sizeBytes` integer, nullable, required
  - `durationSec` integer, nullable, required
  - `requiredCredits` integer, nullable, required
  - `reservedCredits` integer, nullable, required
  - `status` 'initiated' | 'uploading' | 'uploaded' | 'processing' | 'awaiting_credits' | 'completed' | 'failed' | 'aborted', required
  - `progress` integer, nullable, required
  - `stage` string, nullable, required
  - `error` string, nullable, required
  - `createdAt` string, date-time, required
  - `completedAt` string, date-time, nullable, required
  - `transcriptionId` string
  - `transcriptionUrl` string

## Other responses

- `400` — Invalid request
- `401` — Missing or invalid API key
- `404` — Resource not found
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.dev/mediacaption/apis/media-caption-public-api.md) · [All operations](https://skmtc.dev/mediacaption/apis/media-caption-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mediacaption/media-caption-public-api/revisions/fff36efa50d3/schema)
