skillfed

scrapy-zyte-api

Client library to process URLs through Zyte API

scrapy-zyte-api v0.35.0 112.0K downloads/30d#12,388 on PyPI43
Permissive license BSD-3-Clause Active released

What it is and what it does

scrapy-zyte-api is a Scrapy middleware plugin that bridges Scrapy spiders to Zyte's managed web scraping API. It handles the integration layer, allowing you to configure Zyte API features (like JavaScript rendering, proxy rotation, and anti-bot handling) directly within your Scrapy project without building custom HTTP logic.

The plugin depends on scrapy, zyte-api, packaging, and typing-extensions. It targets modern Python (3.10–3.13) and is actively maintained. You configure it as a download handler in your Scrapy settings, then requests flow through Zyte's infrastructure instead of making direct connections. This is useful when you need robust handling of JavaScript-heavy sites, IP rotation, or sites with aggressive bot detection, but it introduces a dependency on Zyte's service and pricing model.

Use it for:

  • Scraping JavaScript-rendered content by routing requests through Zyte's rendering service without writing custom browser automation.
  • Rotating through residential proxies and managing anti-bot evasion as part of your Scrapy pipeline without external proxy configuration.
  • Processing large-scale scraping jobs where you want Zyte to handle infrastructure, rate limiting, and IP management.
  • Testing Scrapy spiders against sites with aggressive bot detection by leveraging Zyte's managed evasion capabilities.
  • Simplifying multi-region scraping by using Zyte's geolocation features integrated directly into your spider configuration.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Scrapy plugin that integrates Zyte API for web scraping, allowing you to route requests through Zyte's managed infrastructure for handling JavaScript rendering, proxies, and anti-bot evasion.

Yes, if you are already using Scrapy and need to scrape JavaScript-heavy or bot-protected sites without building custom infrastructure. The low install friction and active maintenance make it straightforward to integrate. However, you must have a Zyte API account and be comfortable with the service's pricing model, as all requests route through their infrastructure. Not necessary if you're scraping simple HTML-only sites or already have your own proxy and rendering setup.

Install

scrapy-zyte-api on PyPI

pip

pip install scrapy-zyte-api

uv

uv add scrapy-zyte-api

poetry

poetry add scrapy-zyte-api

Installing scrapy-zyte-api

Before you install

Low install friction with four straightforward runtime dependencies. Active maintenance with a recent release 49 days ago and ongoing repository activity; currently in Beta status.

License in practice

BSD-3-Clause is permissive and places minimal restrictions on use, modification, or redistribution for both open-source and commercial projects.

Quickstart

pip install scrapy-zyte-api

from scrapy_zyte_api import ScrapyZyteAPIDownloadHandler
# Configure in settings.py or pass to spider
DOWNLOAD_HANDLERS = {'https': 'scrapy_zyte_api.ScrapyZyteAPIDownloadHandler'}

Requires Python 3.10 or later; Zyte API account and credentials needed to make actual requests.

Verify before relying

  • Whether Zyte API credentials or account setup is required before the plugin can be used
  • Performance characteristics and cost implications of routing requests through Zyte's infrastructure
  • Specific Scrapy versions supported beyond the Python version requirements

Package facts

License BSD-3-Clause (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 4 — packaging, scrapy, typing-extensions, zyte-api
Maintenance actively maintained — 49 days since the last release
Last repo commit
First released
Downloads 111,960/month — #12,388 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: scrapy_zyte_api-0.35.0-py3-none-any.whl

Development Status :: 4 - BetaIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13

Tags

scrapy zyte api integrationweb scraping with zytescrapy javascript renderingmanaged proxy scrapingzyte api pluginanti-bot web scrapingscrapy middleware zyte
web-scrapingjavascript-renderingproxy-management

More WWW/HTTP packages