Skip to content

Quick Start

This guide walks through the smallest end-to-end flow: create a job with remote file entries, check its status, and download the ZIP.

Two integrations, two kinds of key. Start on the right one:

You call Eazip fromKeyStart here
Your server — a backend, a script, a cron jobSecret zk_… API keyThis page
The browser — a React or JavaScript frontendPublishable pk_ez_… keyBrowser SDK

The rest of this page is the server-side flow. A secret key must never ship in client-side code, so if your export is triggered by a user in a browser, use the SDK instead of calling this API from the frontend.

  1. Log in to your Eazip dashboard
  2. Navigate to API Keys
  3. Click Create API Key
  4. Copy your new API key

Make a POST request to create a ZIP job:

Terminal window
curl -X POST https://api.eazip.io/jobs \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"files": [
{
"url": "https://example.com/file1.pdf",
"filename": "invoice-001.pdf"
},
{
"url": "https://example.com/file2.pdf"
}
],
"expires_in": 86400
}'

Response (HTTP 201):

{
"success": true,
"job_id": "550e8400-e29b-41d4-a716-446655440000"
}

Poll the job status until it’s complete:

Terminal window
curl https://api.eazip.io/jobs/550e8400-e29b-41d4-a716-446655440000 \
-H "X-API-Key: YOUR_API_KEY"

Response when complete:

{
"success": true,
"job": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"files": [
{
"url": "https://example.com/file1.pdf",
"filename": "invoice-001.pdf"
},
{
"url": "https://example.com/file2.pdf",
"filename": null
}
],
"url_count": 2,
"file_count": 2,
"fail_on_url_error": true,
"zip_filename": "archive-550e8400.zip",
"download_url": "https://api.eazip.io/download/eyJ...",
"multi_zip": false,
"zip_count": 1,
"total_size": 1048576,
"zips": [
{
"id": "zip_a1b2c3d4e5f6",
"sequence": 1,
"status": "completed",
"filename": "archive-550e8400.zip",
"file_count": 2,
"size": 1048576,
"download_url": "https://api.eazip.io/download/eyJ..."
}
],
"expires_at": "2025-01-22T10:00:00.000Z"
}
}

zips[] is the canonical list of output ZIPs for a job. Even for a single-ZIP job, you’ll get a length-1 array — and the same code keeps working if you later opt into auto-split (max_zip_size_bytes) and Eazip starts returning multiple ZIPs.

Iterate zips[] and download each entry’s download_url. For this single-ZIP job there’s only one:

Terminal window
curl -O "https://api.eazip.io/download/eyJ..."

The download endpoint does not require your API key — the signed URL is self-authenticating.