Uploads

Request Multipart Upload Part

Request a presigned URL for a specific part of a multipart upload

This endpoint is only needed for multipart uploads, including any files larger than 5GB. Requires builds:create scope.

Each request requires the pending_upload_id returned from the initial upload request, the part_number, and the content_length of the chunk in bytes.

POST/upload/request/multipart

Authorization

bearerAuth
AuthorizationBearer <token>

API key. Bearer authentication header of the form Bearer <token>, where <token> is your Workspace or Application API key.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.comupload/request/multipart" \  -H "Authorization: Bearer YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d @- <<'EOF'{  "pending_upload_id": "550e8400-e29b-41d4-a716-446655440000",  "part_number": 1,  "content_length": 8388608}EOF
{  "message": "Generated pre-signed URL for part 1.",  "part_presigned_url": "https://buildstash.s3.amazonaws.com/aBc1234/xYz9876/example.exe?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE%2F20250615%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250615T143000Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=abc123",  "part_number": 1}
Empty
{  "message": "Unauthorized"}

Notes

  • Part numbers must be sequential starting from 1
  • Each part must be uploaded exactly once
  • The content_length field is required and must match the size of the chunk you intend to upload
  • The ETag from each upload must be saved for the final verification step
  • Parts can be uploaded in parallel for better performance
  • If a part upload fails, you can retry uploading to the same presigned URL