ClickUp Scrape is a Python tool created by Roman Slack for downloading every image attachment from a ClickUp workspace. It uses the official ClickUp API to scan an entire workspace and pull down all image attachments, automatically organizing them into folders that mirror the workspace's Space and List structure, making it well-suited for backups, migrations, and bulk image exports.
The tool is built for reliability at scale. It includes resume capability that saves progress to metadata files (.download_metadata.json, .processed_tasks.json, and .failed_downloads.json) so interrupted downloads can continue from where they left off, along with smart duplicate detection and file-integrity checks that skip already downloaded images. Robust error handling gracefully manages 403 Forbidden responses, 30-second timeouts, and duplicate filenames, while real-time progress bars and download statistics keep the user informed. It respects ClickUp's API rate limits of roughly 85 requests per minute for stable operation.
Beyond downloading, ClickUp Scrape ships with a built-in binary image sorter that provides a fast, keyboard-driven interface for categorizing images using shortcuts like 1, 2, S, and Q, plus a companion script to copy sorted images into organized category folders. It supports all common image formats including JPG/JPEG, PNG, GIF, BMP, WEBP, and JFIF, and is configured simply through an API token and Team ID stored in a .env file. The project is open source under the MIT License.
Key Features
- Bulk download of all image attachments from an entire ClickUp workspace
- Automatic resume capability for interrupted downloads via saved metadata
- Smart duplicate detection with file integrity checks
- Auto organization of images by ClickUp spaces and lists
- Built-in keyboard-driven binary image sorter for fast categorization
- Robust error handling for 403 errors, timeouts, and duplicate filenames
- Real-time progress tracking with statistics and API rate-limit awareness
Tech Stack
Designed and built by Roman Slack, Lead AI Platform Engineer. See more of Roman Slack's work on the projects page or get in touch via the contact page.