---
title: "Download Bulk"
method: POST
path: "/download/bulk"
tags: ["downloading"]
---

# Download Bulk

`POST /download/bulk`

Bulk download multiple files with checkpointing to S3

Requires permission: download:write

## Request body

- BulkDownloadRequest — Request model for bulk file downloads
  - `urls` string[], required — List of URLs to download
  - `crawl_id` string, required — Unique identifier for this crawl
  - `s3_bucket` string, required — S3 bucket for storage and checkpoints
  - `downloader_type` 'async_fleet' — Available downloader types
  - `max_workers` integer — Maximum concurrent workers
  - `batch_size` integer — URLs per batch
  - `wait_until` 'commit' | 'domcontentloaded' | 'load' | 'networkidle' — When to consider download complete
  - `debug` boolean — Enable debug information

## Response `200`

Successful Response

- BulkDownloadResponse — Response model for bulk file downloads
  - `crawl_id` string, required
  - `total_urls` integer, required
  - `total_downloads_attempted` integer, required
  - `success_count` integer, required
  - `failed_count` integer, required
  - `cached_count` integer, required
  - `save_failed_count` integer, required
  - `timestamp` string, required
  - `results` BulkDownloadResultsByStatus, required — Grouped results by status
    - `success` BulkDownloadResult[]
      - `url` string, required
      - `status` 'success' | 'cached' | 'failed' | 'save_failed', required — Status of bulk download result
      - `job_id` string, nullable
      - `s3_bucket` string, nullable
      - `s3_key` string, nullable
      - `error` string, nullable
    - `cached` BulkDownloadResult[]
      - `url` string, required
      - `status` 'success' | 'cached' | 'failed' | 'save_failed', required — Status of bulk download result
      - `job_id` string, nullable
      - `s3_bucket` string, nullable
      - `s3_key` string, nullable
      - `error` string, nullable
    - `failed` BulkDownloadResult[]
      - `url` string, required
      - `status` 'success' | 'cached' | 'failed' | 'save_failed', required — Status of bulk download result
      - `job_id` string, nullable
      - `s3_bucket` string, nullable
      - `s3_key` string, nullable
      - `error` string, nullable
    - `save_failed` BulkDownloadResult[]
      - `url` string, required
      - `status` 'success' | 'cached' | 'failed' | 'save_failed', required — Status of bulk download result
      - `job_id` string, nullable
      - `s3_bucket` string, nullable
      - `s3_key` string, nullable
      - `error` string, nullable
  - `debug_frame` object[], nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/evrimai/apis/cartography-server.md) · [All operations](https://skmtc.dev/evrimai/apis/cartography-server/llms.txt) · [OpenAPI document](https://skmtc.dev/evrimai/apis/cartography-server/revisions/4eb68ae85080?raw)
