---
title: "Upload app binary"
method: PUT
path: "/api/uploads/{uploadId}"
tags: ["Uploads"]
---

# Upload app binary

`PUT /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/put.ts> (a function with typed inputs; its response is checked against the schema)

Upload the app binary (APK/IPA) for a previously created upload record.
Use this endpoint when the `presignedUrl` from `POST /api/uploads` points to
your Aximo instance (local development). In production, upload directly to the
S3 presigned URL instead.

## Path parameters

- `uploadId` string, uuid, required

## Request body `application/octet-stream`

- string, binary

## Response `200`

File uploaded successfully.

- object
  - `success` boolean

## Other responses

- `400`: No body provided.
- `401`: Missing or invalid API key.
- `404`: Upload not found.
- `405`: This deployment stores uploads in S3; PUT the file to the `presignedUrl` from `POST /api/uploads` instead.
- `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)
