scrapy-zyte-api
Client library to process URLs through Zyte API
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-apiuv
uv add scrapy-zyte-apipoetry
poetry add scrapy-zyte-apiInstalling 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
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
zyte-apiPython client library and command-line tool for…
permissive · top 15,000 on PyPI
ScrapyScrapy is a web scraping framework that…
permissive · top 5,000 on PyPI
scrapfly-sdkPython SDK for the Scrapfly web scraping…
permissive · top 15,000 on PyPI
scrapingbeePython SDK wrapper for ScrapingBee's web…
permissive · top 15,000 on PyPI
scrapy-playwrightIntegrates Playwright browser automation into…
permissive · top 5,000 on PyPI
scraplingScrapling is a web scraping and crawling…
permissive · top 5,000 on PyPI
scrapegraph-pyClient SDK for the ScrapeGraphAI managed API,…
permissive · top 15,000 on PyPI
scrapy-impersonateA Scrapy download handler that replaces…
permissive · top 15,000 on PyPI
scrapinghubA Python client library for communicating with…
permissive · top 15,000 on PyPI
zenrowsPython client for the ZenRows web scraping API…
permissive · top 15,000 on PyPI