---
title: "Upload multi-document file"
method: POST
path: "/api/v1/external/shipments/{shipmentId}/documents/upload-multi"
tags: ["Documents"]
---

# Upload multi-document file

`POST /api/v1/external/shipments/{shipmentId}/documents/upload-multi`

## Request

- Base URL: `https://api.wove.com`
- URL: `https://api.wove.com/api/v1/external/shipments/{shipmentId}/documents/upload-multi`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/wove/apis/wove-external-api/docs/api/v1/external/shipments/:shipmentId/documents/upload-multi/post.ts> (a function with typed inputs; its response is checked against the schema)

Upload a file containing multiple documents.
For PDFs with multiple document types, this will create separate document records for each type.
The original file is stored once, with virtual splits created for each document type.

## Path parameters

- `shipmentId` string, required

## Request body `multipart/form-data`

- object
  - `file` string, binary, required: The document file to upload
  - `types` string, required: JSON string containing array of document types with page ranges

## Response `200`

Documents uploaded successfully

- object
  - `success` boolean
  - `data` object
    - `documents` object[]: Array of created document records
      - `id` string: Document ID
      - `type` string: Document type
      - `name` string: Generated document name
      - `startPage` integer, nullable: Start page for split documents
      - `endPage` integer, nullable: End page for split documents
      - `isSplit` boolean: Whether this is a split document

## Other responses

- `400`: Invalid file or types specification
- `404`: Shipment not found
- `413`: File too large

---

[API](https://skmtc.dev/wove/apis/wove-external-api.md) - [All operations](https://skmtc.dev/wove/apis/wove-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/wove/apis/wove-external-api/revisions/37290e267e07?raw)
