Artwork Export API

Pull artwork files for fulfilment integrations — ZIP or JSON, by order or date range.

The Artwork Export API lets you pull rendered print-ready files programmatically. Use it for fulfilment system integrations, scheduled backups, or any workflow that needs files in bulk rather than one order at a time.

Endpoint

GET /api/artwork-export

Authentication

Every request needs an API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Generating an API key

  1. Open Pixel Wrangler in your Shopify admin
  2. Go to Settings
  3. Find the Artwork Export API Key section
  4. Click Generate API Key
  5. Copy the key and store it somewhere safe — you won't see it again

Treat the key like a password. Don't paste it into client-side code or commit it to a public repository.

Query parameters

ParameterTypeRequiredDescription
shopstringYesYour Shopify domain (e.g. mystore.myshopify.com)
orderIdsstringNo*Comma-separated list of Shopify order GIDs
orderNumbersstringNo*Comma-separated list of order numbers (e.g. #1001,#1002)
startDatestringNo*Filter orders from this date (YYYY-MM-DD)
endDatestringNo*Filter orders up to this date (YYYY-MM-DD)
formatstringNozip (default) or json

* At least one of orderIds, orderNumbers, startDate, or endDate is required. Only orders with completed artwork are returned.

Response formats

ZIP (default)

Returns a ZIP archive organised by order number. Duplicate files are deduplicated automatically.

artwork-export-2026-01-15.zip
├── #1001/
│   ├── CUSTOM-BK-File-1-a1b2c3d4.png
│   └── CUSTOM-BK-File-2-a1b2c3d4.png
├── #1002/
│   ├── CUSTOM-WH-File-1-e5f6g7h8.png
│   └── CUSTOM-WH-File-2-e5f6g7h8.png

JSON

Returns metadata and signed URLs only — no file payload. Use this when you want to stream individual files directly from S3 rather than download a bundled archive.

{
  "count": 4,
  "files": [
    {
      "orderId": "gid://shopify/Order/1234567890",
      "orderNumber": "#1001",
      "fileName": "CUSTOM-BK-File-1-a1b2c3d4.png",
      "fileType": "png",
      "url": "https://cdn.example.com/path/to/file.png"
    }
  ]
}

Examples

Download all artwork from a date range

curl --oauth2-bearer "$ARTWORK_EXPORT_API_KEY" \
  "https://your-app-url.com/api/artwork-export?shop=mystore.myshopify.com&startDate=2026-01-01&endDate=2026-01-31" \
  -o artwork.zip

Download artwork for specific orders

curl --oauth2-bearer "$ARTWORK_EXPORT_API_KEY" \
  "https://your-app-url.com/api/artwork-export?shop=mystore.myshopify.com&orderNumbers=%231001,%231002" \
  -o orders.zip

The # in an order number must be URL-encoded as %23.

Get a JSON list of file URLs

curl --oauth2-bearer "$ARTWORK_EXPORT_API_KEY" \
  "https://your-app-url.com/api/artwork-export?shop=mystore.myshopify.com&startDate=2026-01-15&format=json"

Rate limits

LimitValue
Maximum files per request1,000
Maximum archive size500 MB
Maximum orders per query100

Hit a limit and the request returns 400 with an error message. Narrow your date range or split the query in two.

Error responses

StatusMeaning
400Missing or invalid parameters
401Missing, invalid, or expired API key
404No orders or files match the criteria
500Server error — retry, then contact support if it persists

Error body:

{ "error": "Description of the error" }

Support

If the API misbehaves, send us your shop domain, the full request URL with the API key redacted, the error response, and the timestamp. Contact: hey@pixelwrangler.io