ClickUp Scrape

A project by Roman Slack — Lead AI Platform Engineer

ClickUp Scrape — a project by Roman Slack

Programming · June 2025 · 2 hours · built by Roman Slack

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

Tech Stack

Python ClickUp API MIT License

View on GitHub →

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.