---
title: "Update an app binary by appkey"
method: POST
path: "/v1/storage/*"
tags: ["Storage"]
---

# Update an app binary by appkey

`POST /v1/storage/*`

Replaces the binary stored under an existing `appkey`. The `app_url` (`tb://<appkey>`) stays the same so deployed CI configurations keep working without changes — useful for "always use the latest" CI flows. Metadata is re-extracted asynchronously: poll GET /storage/<appkey> until its `state` is `DONE`.

## Request body

- PostV1Storage — Update an app binary by appkey
  - `splat` integer, required
  - `file` unknown
  - `url` string — Public HTTPS URL to fetch the new binary from.

## Response `201`

Update an app binary by appkey

- TestingbotEntitiesStorageUpload — Testingbot_Entities_StorageUpload model
  - `app_url` string, required — TestingBot storage URL (`tb://<appkey>`). Pass as a capability to reference this app in mobile tests.

## Other responses

- `400` — Missing or invalid file/url
- `401` — Authentication required
- `403` — Account is read-only

---

[API](https://skmtc.net/testingbot/apis/testingbot-rest-api.md) · [All operations](https://skmtc.net/testingbot/apis/testingbot-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/testingbot/testingbot-rest-api/versions/eff607a49246/schema)
