# Confirm a direct upload

Source: https://www.jawsdeploy.net/rest-api/package-store-confirm-upload | Section: Package Store

Promote a directly uploaded package into the workspace feed.

`POST /api/packagestore/package/confirm`

Completes the [direct upload](https://www.jawsdeploy.net/rest-api/package-store-negotiate-upload) flow. Call this after you have `PUT` the file bytes to the negotiated `uploadUrl`. The server validates the pending blob (size limit and file name), promotes it out of the quarantine path into the workspace's feed container, and registers the package so it becomes available to releases and deployments.

Until confirm succeeds, the uploaded bytes are not part of the feed and cannot be downloaded. Send the same `WorkspaceId` and `FileName` you passed to negotiate.

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `WorkspaceId` | body | string | yes | ID of the destination workspace. |
| `FileName` | body | string | yes | The same package file name used in the negotiate call. |

## Errors

| Status | Meaning |
|---|---|
| 400 | The pending blob is missing, exceeds the size limit, or the `WorkspaceId` / `FileName` is invalid. |
| 401 | Missing or invalid Basic auth credentials, or the service account lacks permission to push packages to this workspace. |

Example request:

```
POST /api/packagestore/package/confirm HTTP/1.1
Authorization: Basic <base64(...)>
Content-Type: application/json

{
  "WorkspaceId": "ws_abc",
  "FileName": "Acme.Web.2.5.3.zip"
}
```

Example response:

```
{}
```

