Skip to main content
POST
/
api
/
v1
/
products
/
delivery
/
upload-url
Create Upload URL
curl --request POST \
  --url https://api.sequenzy.com/api/v1/products/delivery/upload-url \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "filename": "<string>",
  "contentType": "<string>",
  "fileSizeBytes": 123
}
'
{
  "success": true,
  "uploadUrl": "https://...r2.cloudflarestorage.com/...",
  "publicUrl": "https://images.sequenzy.com/product-files/comp_123/9f2.../guide.pdf",
  "fileName": "guide.pdf"
}
Returns a presigned URL to upload a distributable file to Sequenzy storage. PUT the file bytes to uploadUrl, then attach publicUrl to a product with Attach Delivery File. Allowed types: PDF, ePub, ZIP, images, audio, video, and text files, up to 100MB. Files are stored under unguessable URLs.

Request

filename
string
required
Original file name (used to build the hosted file name).
contentType
string
required
File MIME type, e.g. application/pdf.
fileSizeBytes
number
required
File size in bytes (max 104857600).
curl -X POST "https://api.sequenzy.com/api/v1/products/delivery/upload-url" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename": "guide.pdf", "contentType": "application/pdf", "fileSizeBytes": 1048576}'

# Then upload the file bytes:
curl -X PUT "UPLOAD_URL_FROM_RESPONSE" \
  -H "Content-Type: application/pdf" \
  --data-binary @guide.pdf

Responses

{
  "success": true,
  "uploadUrl": "https://...r2.cloudflarestorage.com/...",
  "publicUrl": "https://images.sequenzy.com/product-files/comp_123/9f2.../guide.pdf",
  "fileName": "guide.pdf"
}