Skip to content

Create Portfolio Document Upload

Required scope: portfolio_file:create

This is step 1 of the public document upload flow. Call this first, upload the document directly to the returned signed URL, then call CompletePortfolioDocumentUpload.

Documents may be at most 25 MB. The declared content type must match the uploaded file bytes.

Generated Reference
POST /public-api/publicapi.v1.Portfolio/CreatePortfolioDocumentUpload

Creates a short-lived signed upload URL for a portfolio document.

Request CreatePortfolioDocumentUploadRequest
Response CreatePortfolioDocumentUploadResponse

CreatePortfolioDocumentUploadRequest

Field Type
portfolio_id string
filename string
content_type string
size_bytes int64
visibility PortfolioFileVisibility
description string
created_at optional int64
updated_at optional int64

CreatePortfolioDocumentUploadResponse

Field Type
upload_id string
upload_url string
storage_key string
expires_at int64
headers map<string, string>
{
"portfolioId": "be85f4d1-b680-4964-bf62-9828fdf4ce04",
"filename": "quote.pdf",
"contentType": "application/pdf",
"sizeBytes": 124991,
"visibility": "PUBLIC_PORTFOLIO_FILE_VISIBILITY_CUSTOMER",
"description": "Generated quote from ERP"
}

Successful requests return 201 Created.

{
"uploadId": "9a970b0c-1a2f-49db-b67b-43fa4fc32bbf",
"uploadUrl": "https://storage.example/signed-put-url",
"storageKey": "workspaces/.../documents/abc123.pdf",
"expiresAt": 1760000000,
"headers": {
"Content-Type": "application/pdf"
}
}