---
title: "Get a signed URL to upload a .zip or .pst container"
method: POST
path: "/api/v0/documents/containers/upload-url"
tags: ["Documents"]
---

# Get a signed URL to upload a .zip or .pst container

`POST /api/v0/documents/containers/upload-url`

## Request

- Base URL: `https://api.outerport.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.outerport.com/api/v0/documents/containers/upload-url`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/outerport/apis/outerport-api/docs/api/v0/documents/containers/upload-url/post.ts> (a function with typed inputs; its response is checked against the schema)

Returns a URL the client PUTs the container's bytes to, with the returned Content-Type. Then start its expansion with POST /documents/containers. On cloud storage the URL is the store's own signed URL and the bytes never pass through the API; on local storage the API streams them to disk. Either way the API never holds the container.

## Request body

- ContainerUploadUrlRequest
  - `name` string, required: The container's file name; its extension must be .zip or .pst.
  - `size` integer, required: The container's size in bytes.

## Response `200`

Successful Response

- ContainerUploadUrlResponse
  - `upload_id` string, uuid, required: Names this upload when expansion is started with POST /documents/containers.
  - `url` string, required: The signed URL to PUT the container's bytes to.
  - `content_type` string, required: The Content-Type header the PUT must carry. On S3 and GCS the URL is signed for this value, and storage refuses a PUT that sends another.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-13** `7f81908bcdfe`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/outerport/apis/outerport-api/changes/api/v0/documents/containers/upload-url/post.md)

---

[API](https://skmtc.dev/outerport/apis/outerport-api.md) - [All operations](https://skmtc.dev/outerport/apis/outerport-api/llms.txt) - [OpenAPI document](https://skmtc.dev/outerport/apis/outerport-api/revisions/08b5bf6f7f18?raw)
