ScrapeUnblocker Cloud - Python client & CLI
Deploy, run, schedule and pull data from Scrapy spiders hosted on ScrapeUnblocker Cloud, from Python or the command line.
ScrapeUnblocker Cloud is managed Scrapy hosting: you push an unmodified Scrapy project, buy
concurrency slots and run it. The difference from other Scrapy clouds is that traffic goes
through ScrapeUnblocker by default, so a spider that gets blocked elsewhere runs here without
you writing any proxy or fingerprint code (--unblock).
pip install scrapeunblocker-cloud
No runtime dependencies: this package is pure standard library, so installing it next to your Scrapy project never pulls in a conflicting dependency tree.
Get a token
Create an API token in the ScrapeUnblocker portal under
Spider Cloud. Then either run su-cloud login, or set the environment:
export SU_CLOUD_TOKEN="sk_..."
export SU_CLOUD_ORG="acme"
export SU_CLOUD_PROJECT="shop" # defaults to the current directory name
CLI
su-cloud login # store url/token/org/project in ~/.su-cloud.json
su-cloud deploy # package the current Scrapy project and build it
su-cloud run products -a category=shoes --unblock --wait
su-cloud jobs --state running
su-cloud logs j1699999999abc --lines 200
su-cloud logs j1699999999abc --level WARNING # why did it fail? searches the whole log
su-cloud logs j1699999999abc --contains "403"
su-cloud log-download j1699999999abc # the whole log as j1699999999abc.log.gz
su-cloud items j1699999999abc > out.jsonl # page scraped items to stdout as JSON lines
su-cloud download j1699999999abc -o out.jsonl.gz # download the whole dataset
su-cloud stats j1699999999abc # crawl statistics
su-cloud schedules
su-cloud schedule-add nightly "0 2 * * *" products --unblock
su-cloud destinations
su-cloud destination-add mymongo mongodb -s uri=mongodb+srv://... -s database=shop -s collection=products
Library
from scrapeunblocker_cloud import SpiderCloudClient
client = SpiderCloudClient(token="sk_...", org="acme", project="shop")
# deploy the current directory, then run a spider through ScrapeUnblocker
client.deploy(".", notes="add price field")
job = client.run("products", args={"category": "shoes"}, unblock=True)
job.wait() # block until it finishes
print(job.state, job.items_total)
for item in job.items(): # stream the scraped data straight back
print(item)
for line in job.logs(lines=100):
print(line)
Org and project set on the client are the defaults for every call, so single-project users
never repeat themselves. Every method also accepts org= / project= to override per call.
What you can reach
| Namespace | Methods |
|---|---|
client.orgs |
list, create |
client.projects |
list, create, settings, update_settings |
client.deploys |
list, upload, from_git |
client.jobs |
run, list, get |
Job |
wait, refresh, logs, logs_page, download_log, items, items_page, download, stats, cancel, .state, .done |
client.schedules |
list, create, toggle, delete |
client.destinations |
list, create, delete |
Errors
Everything raises a subclass of SpiderCloudError: AuthError (bad token), NotFoundError
(unknown org/project/job), APIError (other non-2xx, with .status and .detail),
ConnectionFailed (control plane unreachable) and ConfigError (missing token/org/project).
License
MIT
Metadata
Release files for scrapeunblocker-cloud 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| scrapeunblocker_cloud-0.2.0.tar.gz | 17.6 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scrapeunblocker_cloud-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.8 kB
Release files / scrapeunblocker_cloud-0.2.0.tar.gz
| Download URL | scrapeunblocker_cloud-0.2.0.tar.gz |
|---|---|
| Size | 17.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7d9bb69d045c320d248c310b542f86ddb8ea61a845df0eba55fdfd26e20220a9
|
|
BLAKE2b-256 checksum How to use checksums |
9287376b5d096e28721e377700cba0a5f4cb39f59e5fd7530fb5cc7e81e620b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logRelease files / scrapeunblocker_cloud-0.2.0-py3-none-any.whl
| Download URL | scrapeunblocker_cloud-0.2.0-py3-none-any.whl |
|---|---|
| Size | 17.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
40a356bef2d2817f9bcc2fedd6badf41b0a136630bf87fa71519bede8b9edcc0
|
|
BLAKE2b-256 checksum How to use checksums |
03040e58239d171e7866619b29d7d84a4a4893c131a9fa9843d8d0657c948de5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logSecurity for scrapeunblocker-cloud 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for scrapeunblocker_cloud-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.