---
title: "List uploaded apps"
method: GET
path: "/api/uploads"
tags: ["Uploads"]
---

# List uploaded apps

`GET /api/uploads`

## Request

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

Returns previously uploaded apps that are ready to use or currently processing.
Automatically validates uploads against Device Farm and re-uploads expired entries.

## Query parameters

- `fileType` 'ANDROID_APP' | 'IOS_APP'

## Response `200`

List of uploads.

- object
  - `uploads` Upload[], required
    - `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.
- `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)
