langchain-scrapeunblocker
LangChain tools for ScrapeUnblocker: give your agent live web data. Read any public page in a real browser as clean Markdown or structured JSON, search Google, and run 100+ ready-made site scrapers (Amazon, Walmart, eBay, Google Maps, YouTube, Zillow, Indeed and more), including pages behind Cloudflare, DataDome, PerimeterX and Akamai.
Install
pip install -U langchain-scrapeunblocker
export SCRAPEUNBLOCKER_API_KEY="your-api-key"
Get a key at app.scrapeunblocker.com - a free account comes with 500 requests to start.
Use with an agent
from langchain.agents import create_agent
from langchain_scrapeunblocker import ScrapeUnblockerToolkit
agent = create_agent(
"anthropic:claude-sonnet-5-5",
tools=ScrapeUnblockerToolkit().get_tools(),
)
result = agent.invoke(
{"messages": [{"role": "user", "content": "What does the Echo Dot cost on amazon.com today?"}]}
)
print(result["messages"][-1].content)
Tools
| Tool | Name the model sees | What it does | Billed |
|---|---|---|---|
ScrapeUnblockerMarkdown |
scrapeunblocker_markdown |
A page as clean Markdown (main content, absolute links) | 1 request |
ScrapeUnblockerSearchAndRead |
scrapeunblocker_search_and_read |
Google search plus the top 1-5 results read as Markdown, in one call | 1 + 1 per page |
ScrapeUnblockerGoogleSearch |
scrapeunblocker_google_search |
Organic results, AI Overview, People also ask, related searches | 1 per result page |
ScrapeUnblockerParsedData |
scrapeunblocker_parsed_data |
Structured JSON from a product, article or listing page | 1 request |
ScrapeUnblockerListPlugins |
scrapeunblocker_list_plugins |
Search the catalog of 100+ site scrapers | free |
ScrapeUnblockerRunPlugin |
scrapeunblocker_run_plugin |
Run a site scraper and get its JSON | per plugin |
Use them one by one:
from langchain_scrapeunblocker import ScrapeUnblockerMarkdown, ScrapeUnblockerRunPlugin
ScrapeUnblockerMarkdown().invoke({"url": "https://example.com"})
ScrapeUnblockerRunPlugin().invoke(
{"plugin": "youtube_transcript", "params": {"video": "dQw4w9WgXcQ"}}
)
ScrapeUnblockerGoogleSearch, ScrapeUnblockerParsedData and ScrapeUnblockerRunPlugin return content_and_artifact: the model gets a compact text or JSON, and the full API response is on the ToolMessage's artifact for your code. Called with a tool call, they return that message:
from langchain_scrapeunblocker import ScrapeUnblockerGoogleSearch
msg = ScrapeUnblockerGoogleSearch().invoke(
{"name": "scrapeunblocker_google_search", "args": {"query": "langchain"}, "id": "1", "type": "tool_call"}
)
msg.content # what the model reads
msg.artifact # the whole results page: ads, knowledge panel, local, shopping, videos...
Every tool takes an optional proxy_country (ISO code such as "US" or "DE") to make the request from that country, and works with ainvoke too.
The plugin catalog comes from the installed scrapeunblocker SDK: pip install -U scrapeunblocker picks up new plugins without a new release of this package.
Configuration
| Argument | Default | |
|---|---|---|
api_key |
SCRAPEUNBLOCKER_API_KEY (or SCRAPEUNBLOCKER_KEY) |
Your API key |
timeout |
180 |
Seconds per API call; protected pages can take a while |
max_retries |
2 |
Retries for 429 and 502-504 |
max_chars |
100000 (Markdown), 60000 (JSON) |
Longer results are cut, with a note saying so |
ScrapeUnblockerToolkit(include_plugins=False) leaves out the two plugin tools.
Failed calls come back to the model as text it can act on (for example "the page itself answered 404, do not retry"), not as exceptions. Set handle_tool_error=False on a tool to raise instead.
Links
Development
pip install -e ".[test]"
pytest # unit tests, no network
SCRAPEUNBLOCKER_API_KEY=... pytest tests/integration_tests # real API calls
License
MIT
Metadata
Release files for langchain-scrapeunblocker 0.1.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 | Actions |
|---|---|---|---|---|
| langchain_scrapeunblocker-0.1.0.tar.gz | 16.5 kB | With provenance | Details for langchain_scrapeunblocker-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| langchain_scrapeunblocker-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for langchain_scrapeunblocker-0.1.0-py3-none-any.whl |
Total release size: 31.5 kB
Release files / langchain_scrapeunblocker-0.1.0.tar.gz
| Download URL | langchain_scrapeunblocker-0.1.0.tar.gz |
|---|---|
| Size | 16.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
30fa43a061c7e9f5a5b2565ace79f69e10d25a0bd1de7339785bca2483c43fcb
|
|
BLAKE2b-256 checksum How to use checksums |
a3a39b278e02a6c15434b5238b063654e20926ec255297bfa720d0a20a30ba19
|
| 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 Nov 10, 2026.
Transparency logRelease files / langchain_scrapeunblocker-0.1.0-py3-none-any.whl
| Download URL | langchain_scrapeunblocker-0.1.0-py3-none-any.whl |
|---|---|
| Size | 15.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6898d5c76a82a154f46b9835dc7c441f21d82a077376d789a8237ddc770d0b68
|
|
BLAKE2b-256 checksum How to use checksums |
d3ad68c78e5d5c50fdbed2e69816fc49bab6b76eac5adba621a1d14f78edb6c1
|
| 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 Nov 10, 2026.
Transparency logSecurity for langchain-scrapeunblocker 0.1.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
Both files in this release have been uploaded with provenance metadata.
Attestation for langchain_scrapeunblocker-0.1.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 Nov 10, 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.