---
title: "Get upload status"
method: GET
path: "/api/uploads/{uploadId}"
tags: ["Uploads"]
---

# Get upload status

`GET /api/uploads/{uploadId}`

## Request

- Base URL: `https://aximo.autify.com`
- URL: `https://aximo.autify.com/api/uploads/{uploadId}`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/autify/apis/aximo-api/docs/api/uploads/:uploadId/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the current processing status of an upload. Poll this endpoint
after calling `POST /api/uploads/{uploadId}/submit` until `status` is
`succeeded` or `failed`.

## Path parameters

- `uploadId` string, uuid, required

## Response `200`

Upload details.

- Upload
  - `id` string, uuid, required
  - `uploadArn` string, nullable: Encrypted upload identifier token. Available once status is `succeeded`. Pass this value as `uploadArn` when creating sessions.
  - `fileName` string, required
  - `fileSize` integer, nullable: File size in bytes.
  - `fileType` 'ANDROID_APP' | 'IOS_APP', required
  - `appName` string, nullable: Human-readable app name (auto-extracted from APK/IPA).
  - `appVersion` string, nullable
  - `identifier` string, nullable: Bundle ID (iOS) or package name (Android).
  - `iconData` string, nullable: Base64-encoded PNG app icon.
  - `status` 'initialized' | 'processing' | 'succeeded' | 'failed', required: - `initialized` — record created, waiting for file upload and submission. - `processing` — worker is uploading to Device Farm. - `succeeded` — ready to use in sessions. - `failed` — processing failed (see `message` for details).
  - `message` string, nullable: Status details (e.g. error message on failure). Returned by `GET /api/uploads/{uploadId}` only; the list omits it.
  - `uploadedAt` string, date-time, required
  - `isExpired` boolean, required: Whether the upload has expired on Device Farm (auto-expires after 30 days).
  - `isUnavailable` boolean: True when the upload cannot be used for a run (not `succeeded`, or expired). Returned by `GET /api/uploads` only.

## Other responses

- `401`: Missing or invalid API key.
- `404`: Upload not found or belongs to another organization.
- `429`: Rate limit exceeded — e.g. the daily session limit was reached for the organization, or too many API requests were sent in a short window (retry after the number of seconds in the `Retry-After` header).
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/autify/apis/aximo-api.md) - [All operations](https://skmtc.dev/autify/apis/aximo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/autify/apis/aximo-api/revisions/590722011284?raw)
