Skip to main content

scrapyio-sdk

Official Python SDK for Scrapy.io.

Server-side only. Keep API keys off client devices.

Install

pip install scrapyio-sdk

Authentication

import os
from scrapyio_sdk import ScrapyIO

client = ScrapyIO(api_key=os.environ["x-api-key"])

Always sends x-api-key: <api_key>.

First request

tools = client.tools.list(q="instagram", limit=20)
# {"items", "total", "offset", "limit"}

tool = client.tools.get("datadoping", "instagram-profile-scraper")
# or:
same = client.tool("datadoping/instagram-profile-scraper").get()

Run a scraper

Sync (/v1/api)

result = client.tool("datadoping/instagram-profile-scraper").call({
    "username": "nasa",
})

Async (/v1/scraper) + poll

run = client.tool("datadoping/instagram-profile-scraper").start({
    "usernames": ["nasa"],
})

finished = client.run(run["id"]).wait(
    poll_interval_ms=3000,
    timeout_ms=15 * 60_000,
)

page = client.run(run["id"]).list_items(offset=0, limit=100)

Schedules

schedule = client.schedules.create(
    {
        "publisher": "datadoping",
        "slug": "instagram-profile-scraper",
        "runName": "nightly-ig",
        "timezone": "UTC",
        "frequency": "one-time",
        "date": "2026-09-20",
        "time": "23:50",
        "inputs": ["nasa"],
    },
    idempotency_key="nightly-ig-v1",
)

client.schedules.update(schedule["id"], {"isActive": False})
client.schedules.delete(schedule["id"])

Errors

from scrapyio_sdk import ScrapyIO, ScrapyIOError

try:
    client.tools.get("nope", "missing")
except ScrapyIOError as err:
    # err.type, err.status, err.message, err.doc_url
    ...

Mental model

client
├── tools.list / tools.get / tools.get_readme / tools.list_reviews
├── account.get / account.usage
├── tool("publisher/slug").get / .call / .start
├── runs.list / runs.get / runs.abort / runs.resume
├── run(id).get / .wait / .list_items / .abort / .resume
└── schedules.list / get / create / update / delete

Development

cd sdk/python
python -m pip install -e ".[dev]"
pytest

Notes

  • GET requests may retry on transient 5xx/429; execution POSTs are not auto-retried.
  • list_items() is JSON-only in v0.1.
  • Companion JS package: @scrapyio/sdk.

Metadata

Release files for scrapyio-sdk 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scrapyio-sdk 0.1.3
File Size Uploaded Provenance Actions
scrapyio_sdk-0.1.3.tar.gz 15.6 kB Without provenance Details for scrapyio_sdk-0.1.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for scrapyio-sdk 0.1.3
File Interpreter ABI Platform Actions
scrapyio_sdk-0.1.3-py3-none-any.whl Python 3 none any Details for scrapyio_sdk-0.1.3-py3-none-any.whl

Total release size: 29.0 kB

Release files / scrapyio_sdk-0.1.3.tar.gz

Download URL scrapyio_sdk-0.1.3.tar.gz
Size 15.6 kB
Tags Source
SHA-256 checksum
How to use checksums
61cf87094dc105470d860227221abeb20b482a837a1ff0677f80e85b938e18fe
BLAKE2b-256 checksum
How to use checksums
c9d40a0fd5162b8e6fe29341b7d42d277cb6e3be548a2b0777bf4bd67f954d81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.2

Release files / scrapyio_sdk-0.1.3-py3-none-any.whl

Download URL scrapyio_sdk-0.1.3-py3-none-any.whl
Size 13.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
819ad78132735d32a46b502bb7e7535c4cd9829f8a1ccef23ff5d1ead937e5fb
BLAKE2b-256 checksum
How to use checksums
d452bdc2c5e547dfd4e5e0a4119aa3fcb14cf877b6ecebfa6ed5f6935e1f4708
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.2

Security for scrapyio-sdk 0.1.3

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page