> ## Documentation Index
> Fetch the complete documentation index at: https://developers.reintersect.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload a hosted version

> Upload a Workers bundle and its manifest as a new version of a hosted app.

> Reintersect apps are in developer preview. Names and limits can still change before general
> release.

Creates a version of a Reintersect-hosted app from a bundle and publishes it to the target. The CLI's
`reintersect deploy` calls this for hosted apps.

Authenticate with a member API key of the app's owner or of a workspace owner or admin, a deploy
token for this app, or an agent builder token for an app the member owns. Any other caller gets
`ReintersectAppNotFoundError`.

## Body

`multipart/form-data` with:

| Part | Description |
| - | - |
| `bundle` | The ES module bundle (`app.mjs`, `application/javascript+module`), at most 10 MB. |
| `manifest` | The manifest as JSON. |
| `compatDate` | The Workers compatibility date, `YYYY-MM-DD`. |
| `target` | `preview` or `production`. |

## Response

The version:

| Field | Description |
| - | - |
| `id` | The version id. |
| `appId` | The app. |
| `number` | The version number, increasing per app. |
| `status` | `preview`, `published` or `superseded`. |
| `target` | `preview` or `production`. |
| `manifestHash` | A hash of the manifest. |
| `bundleSha` | The bundle's SHA-256, or `null` for self-hosted apps. |
| `reconsentRequired` | `true` when some installs wait for an admin to approve new access. |
| `playgroundUrl` | The playground link for a preview, or `null`. |
| `createdAt` | ISO 8601. |

## Errors

| `_tag` | Status | Cause |
| - | - | - |
| `ReintersectAppNotFoundError` | 404 | No such app, or you may not deploy it. |
| `ReintersectAppDeployTargetForbiddenError` | 403 | A preview-only deploy token or an agent builder token asked for production. |
| `ReintersectAppManifestInvalidError` | 422 | The manifest breaks a rule; `reason` says which. See [Manifest validation](/reference/manifest#validation). |
| `ReintersectAppPatternInvalidError` | 422 | A reference pattern is invalid; `reason` says why. |
| `ReintersectAppBundleInvalidError` | 422 | The bundle is empty, too large or not a module. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.