---
title: "How a browser uploads a file to this deployment's storage"
method: GET
path: "/api/v0/documents/upload-mode"
tags: ["Documents"]
---

# How a browser uploads a file to this deployment's storage

`GET /api/v0/documents/upload-mode`

## 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/upload-mode`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/outerport/apis/outerport-api/docs/api/v0/documents/upload-mode/get.ts> (a function with typed inputs; its response is checked against the schema)

## Response `200`

Successful Response

- UploadModeResponse
  - `mode` 'signed_url' | 'api', required: How a browser sends a file's bytes. `signed_url`: GET /documents/{document_id}/upload-url (or /components/{component_id}/upload-url), PUT the bytes to the URL it returns, then PUT the same path to start processing. `api`: send the bytes in the request body of PUT /documents/{document_id}/file (or POST /components with the image); no signed URL is issued.

## Changes

- **2026-11-09** `ecd5b922e78a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/outerport/apis/outerport-api/changes/api/v0/documents/upload-mode/get.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)
