There are times when you need a zip archive of files that live in Amazon S3 — a batch of invoices, a folder of generated reports, a set of images — and you need it now. Downloading those files first is slow and expensive. This guide shows the short path: create a zip job, wait for it to finish, and download the signed URL.
Step 1 — Create an S3zipper account
Sign up, confirm your email, and open API Credentials to generate a UserKey and UserSecret. You will send these once to obtain a short-lived token.
Step 2 — Get a token
curl -X POST https://api.s3zipper.com/gentoken \
-d "userKey=YOUR_USERKEY" \
-d "userSecret=YOUR_USERSECRET"
The response contains a token. Send it as a bearer token on every other call.
Step 3 — Start the zip
Provide your S3 credentials, a bucket, and the objects to compress. File paths are full S3 keys, i.e. my-bucket/photos/2026.
curl -X POST https://api.s3zipper.com/v1/zipstart \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"awsKey": "AKIA...",
"awsSecret": "...",
"awsBucket": "my-bucket",
"awsRegion": "us-east-1",
"filePaths": ["my-bucket/photos/2026"]
}'
The response says STARTED and gives you a taskUUID (and a modern jobID). The zip is built in the background.
Step 4 — Wait for the result
Send the start response back to /v1/zipstate to check the state, and to /v1/zipresult once it reaches SUCCESS to get the download URL. The URL points at S3 and is signed, so it expires — by default after seven days.
For a complete walkthrough of each endpoint, see the posts on starting a zip job and getting the results.
Why not just download and zip?
Because it doubles the bandwidth, needs local disk, and is far slower for large files. Zipping inside S3 avoids all of that. If you are comparing options, read Zipping files in AWS S3 without downloading them.