Skip to main content
Everything the dashboard does, a script can do too. The scrapeunblocker-cloud package gives you both a Python client and a su-cloud command line: deploy a project, start and watch jobs, schedule them, and stream the scraped items straight back.
It is pure standard library - installing it next to your Scrapy project pulls in no other dependencies.

Get a token

The SDK authenticates with a per-account API token. Create one in the dashboard under Spider Cloud → API tokens: press Create token, copy it once (it is shown only that time), and keep it somewhere safe. One token acts as your whole account and reaches every project you own; revoke it from the same place if it ever leaks.
A token is a bearer credential. Keep it out of source control - pass it through the environment or su-cloud login, never a committed file.

Configure

Point the tools at your token and org. Either run su-cloud login once, which writes ~/.su-cloud.json, or set the environment:
The endpoint defaults to https://cloud.scrapeunblocker.com; set SU_CLOUD_API only if you are told to.

Command line

deploy must be run from the root of your Scrapy project (the folder with scrapy.cfg); the project name defaults to that folder’s name unless you set one. Pass --unblock to route the spider’s requests through ScrapeUnblocker - the same switch as the dashboard’s routing control.

Python

Org and project set on the client are the defaults for every call, so a single-project user never repeats them; every method also accepts org= / project= to override per call.

What you can reach

Pulling data

job.items() pages through the whole dataset by cursor and yields one item at a time - it works while the job is still running, returning what has been flushed so far. For a full export as a file, use job.download("out.jsonl.gz") (a byte-for-byte .jsonl.gz, or fmt="jsonl" for plain lines). job.stats() returns the crawl statistics - responses by outcome, retries, items and elapsed time.

Errors

Everything raises a subclass of SpiderCloudError: AuthError (bad or revoked token), NotFoundError (unknown org, project or job), APIError (other non-2xx, with .status and .detail), ConnectionFailed (endpoint unreachable) and ConfigError (missing token, org or project).