Skip to main content

Fetch challenges from a CTFd competition

Project description

CTFd Fetch

Often it would be nice to download all the challenges (descriptions/files/etc) from a CTF so that you have them for future reference, or to have offline, or to share with a team.

That's all this script does.

Since many CTFs have standardized around CTFd as a platform, we use that as a starting point.


  • Use this tool considerately. It makes every attempt to respond sanely, and only download things not already downloaded, but make sure you are not abusing the good will of a CTF Host/Organizer.
  • This tool primarily uses the JSON response from a CTFd endpoint (/challs). Any changes to CTFd have the potential to break this tool.

Quick Start


pip3 install ctfdfetch

Download all the challenges from a CTF into the current folder.

ctfdfetch --server --user hacker

For more options such as out directory, nested categories, verbosity, etc).

ctfdfetch -h


Development occurs on master. The release branch has the version currently pushed to pypi.

# get code
git clone
cd ctfdfetch

# setup virtualenv
python3 -m venv venv3
. venv3/bin/activate

# install in dev mode
pip install -e .

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ctfdfetch, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size ctfdfetch-0.2.0-py3-none-any.whl (7.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size ctfdfetch-0.2.0.tar.gz (5.8 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page