Release notes


Release date: 2022-01-12


  • support for HTTP authentication in scrapyd server
  • Jobs website shortcut to cancel a job using the cancel.json webservice.
  • Make project argument to listjobs.json optional, so that we can easily query for all jobs.
  • Python 3.7, 3.8, 3.9, 3.10 support
  • Configuration option for job storage class
  • Configuration option for egg storage class
  • improved HTTP headers in webservice
  • improved test coverage


  • Python 2 support
  • Python 3.3 support (although never officially supported)
  • Python 3.4 support
  • Python 3.5 support
  • Pypy 2 support
  • Doc for ubuntu installs, Zyte no longer maintains ubuntu repo.


  • ScrapyD now respects Scrapy TWISTED_REACTOR setting
  • replaced deprecated SafeConfigParser with ConfigParser


Release date: 2019-06-17


  • http header types were breaking newer twisted versions
  • DeferredQueue was hiding a pending job when reaching max_proc
  • AddVersion’s arguments’ string types were breaking the environment in windows
  • Tests: Updated binary eggs to be scrapy-1.x compatible


Release date: 2017-04-12

The highlight of this release is the long-awaited Python 3 support.

The new scrapy requirement is version 1.0 or higher. Python 2.6 is no longer supported by scrapyd.

Some unused sqlite utilities are now deprecated and will be removed from a later scrapyd release. Instantiating them or subclassing from them will trigger a deprecation warning. These are located under scrapyd.sqlite:

  • SqliteDict
  • SqlitePickleDict
  • SqlitePriorityQueue
  • PickleSqlitePriorityQueue


  • Include run’s PID in listjobs webservice.
  • Include full tracebacks from scrapy when failing to get spider list. This will lead to more noisy webservice output but will make debugging deployment problems much easier.
  • Include start/finish time in daemon’s joblist page
  • Twisted 16 compatibility
  • Python 3 compatibility
  • Make console script executable
  • Project version argument in the schedule webservice
  • Configuration option for website root class
  • Optional jobid argument to schedule webservice
  • Contribution documentation
  • Daemon status webservice


  • scrapyd’s bind_address now defaults to instead of to listen only for connection from the local host
  • scrapy < 1.0 compatibility
  • python < 2.7 compatibility


  • Poller race condition for concurrently accessed queues


Release date: 2016-11-03


  • Disabled bdist_wheel command in setup to define dynamic requirements despite of pip-7 wheel caching bug.


  • Use correct type adapter for sqlite3 blobs. In some systems, a wrong type adapter leads to incorrect buffer reads/writes.
  • FEED_URI was always overridden by scrapyd
  • Specified maximum versions for requirements that became incompatible.
  • Marked package as zip-unsafe because twistd requires a plain
  • Don’t install zipped scrapy in py26 CI env because its setup doesn’t include the scrapy/VERSION file.


  • Enabled some missing tests for the sqlite queues.
  • Enabled CI tests for python2.6 because it was supported by the 1.1 release.
  • Document missing config options and include in default_scrapyd.conf
  • Note the spider queue’s priority argument in the scheduler’s doc.


Release date: 2015-06-29

Features & Enhancements

  • Outsource scrapyd-deploy command to scrapyd-client (c1358dc, c9d66ca..191353e) If you rely on this command, install the scrapyd-client package from pypi.
  • Look for a ~/.scrapyd.conf file in the users home (1fce99b)
  • Adding the nodename to identify the process that is working on the job (fac3a5c..4aebe1c)
  • Allow remote items store (e261591..35a21db)
  • Debian sysvinit script (a54193a, ff457a9)
  • Add ‘start_time’ field in webservice for running jobs (6712af9, acd460b)
  • Check if a spider exists before schedule it (with sqlite cache) (#8, 288afef..a185ff2)


  • F̶i̶x̶ ̶s̶c̶r̶a̶p̶y̶d̶-̶d̶e̶p̶l̶o̶y̶ ̶-̶-̶l̶i̶s̶t̶-̶p̶r̶o̶j̶e̶c̶t̶s̶ ̶(̶9̶4̶2̶a̶1̶b̶2̶)̶ → moved to scrapyd-client
  • Sanitize version names when creating egg paths (8023720)
  • Copy txweb/JsonResource from scrapy which no longer provides it (99ea920)
  • Use w3lib to generate correct feed uris (9a88ea5)
  • Fix GIT versioning for projects without annotated tags (e91dcf4 #34)
  • Correcting HTML tags in scrapyd website monitor (da5664f, 26089cd)
  • Fix FEED_URI path on windows (4f0060a)

Setup script and Tests/CI

  • Restore integration test script (66de25d)
  • Changed scripts to be installed using entry_points (b670f5e)
  • Renovate scrapy upstart job (d130770)
  • Travis.yml: remove deprecated --use-mirros pip option (b3cdc61)
  • Mark package as zip unsafe because twistd requires a plain (f27c054)
  • Removed python 2.6/lucid env from travis (5277755)
  • Made Scrapyd package name lowercase (1adfc31)


  • Spiders should allow for arbitrary keyword arguments (696154)
  • Various typos (51f1d69, 0a4a77a)
  • Fix release notes: 1.0 is already released (6c8dcfb)
  • Point website module’s links to readthedocs (215c700)
  • Remove reference to ‘scrapy server’ command (f599b60)


Release date: 2016-03-28

setup script

  • Specified maximum versions for requirements that became incompatible.
  • Marked package as zip-unsafe because twistd requires a plain


  • Updated broken links, references to wrong versions and scrapy
  • Warn that scrapyd 1.0 felling out of support


Release date: 2013-09-02 Trivial update


Release date: 2013-09-02

First standalone release (it was previously shipped with Scrapy until Scrapy 0.16).