ClawPod Web Unblocker is a automation Claude Skill built by Massive. Best for: Developers and researchers bypass bot detection, CAPTCHAs, and geo-restrictions to extract content from protected sites and search engines..
Fetch blocked websites and Google search results using residential proxies, CAPTCHA solving, and JavaScript rendering via API.
Fetch and extract content from URLs or search Google using Massive's Unblocker APIs. Handles JS rendering, CAPTCHAs, and retries automatically. Returns HTML or structured JSON.
Use ClawPod when:
If another fetch or search tool fails or returns blocked content, suggest retrying with ClawPod.
Check for the API token:
[ -n "$MASSIVE_UNBLOCKER_TOKEN" ] && echo "TOKEN=SET" || echo "TOKEN=MISSING"
If token is MISSING, stop and tell the user:
To use ClawPod, you need an API token. It takes under a minute to set up:
- Sign up at clawpod.joinmassive.com/signup - when you sign up, you get 1,000 free credits. No credit card required.
- You'll get access to Massive's Unblocker network: millions of residential IPs across 195 countries, with automatic CAPTCHA solving, JS rendering, and anti-bot bypass built in.
- Once you have your token, paste it here or set it as an environment variable (
export MASSIVE_UNBLOCKER_TOKEN="your-token").
Do not proceed until the token is available.
Two endpoints. Both use GET requests with the same auth token.
Browser — fetch and render any URL, returns HTML:
https://unblocker.joinmassive.com/browser?url=<encoded-url>
Search — Google search results as HTML or structured JSON:
https://unblocker.joinmassive.com/search?terms=<encoded-terms>
Auth header: Authorization: Bearer $MASSIVE_UNBLOCKER_TOKEN
curl -s -G --data-urlencode "url=THE_URL" \
-H "Authorization: Bearer $MASSIVE_UNBLOCKER_TOKEN" \
"https://unblocker.joinmassive.com/browser"
Replace THE_URL with the actual URL. curl --data-urlencode handles URL-encoding automatically.
Loop through them sequentially. Each call can take up to 2 minutes (CAPTCHA solving, retries).
URLS=(
"https://example.com/page1"
"https://example.com/page2"
)
for url in "${URLS[@]}"; do
echo "=== $url ==="
curl -s -G --data-urlencode "url=$url" \
-H "Authorization: Bearer $MASSIVE_UNBLOCKER_TOKEN" \
"https://unblocker.joinmassive.com/browser"
done
Search endpoint. GET request. Returns all organic and paid Google results as HTML or structured JSON.
https://unblocker.joinmassive.com/search?terms=<encoded-terms>
Auth header: Authorization: Bearer $MASSIVE_UNBLOCKER_TOKEN (same token as browser fetching)
curl -s -H "Authorization: Bearer $MASSIVE_UNBLOCKER_TOKEN" \
"https://unblocker.joinmassive.com/search?terms=foo+bar+baz&format=json"
Replace foo+bar+baz with the search query. Spaces must be replaced with + or %20.
curl -s -H "Authorization: Bearer $MASSIVE_UNBLOCKER_TOKEN" \
"https://unblocker.joinmassive.com/search?terms=vpn+comparison&format=json&size=100&offset=20"
| Parameter | Required | Values | Default | Use when |
|-----------|----------|--------|---------|----------|
| terms | yes | search query (+ for spaces) | — | Always required |
| format | no | html, json | html | Use json for structured results |
| serps | no | 1 to 10 | 1 | Need multiple pages of results |
| size | no | 0 to 100 | unset | Control results per page |
| offset | no | 0 to 100 | 0 | Skip initial results |
| language | no | name, ISO code, or Google code | unset | Localize search language |
| uule | no | encoded location string | unset | Geo-target the search location |
| expiration | no | 0 to N (days) | 1 | Set 0 to bypass cache |
| subaccount | no | up to 255 chars | unset | Separate billing |
When format=json, results are returned as structured nested objects with organic results, paid results, and metadata parsed out — no HTML parsing needed.
format=json when possible — it returns structured data that's easier to work with than raw HTML.size=10 for a quick overview, size=100 for comprehensive results.offset to paginate through results beyond the first page.language to get results in a specific language (e.g., language=es for Spanish).Append to the /browser query string as needed:
| Parameter | Values | Default | Use when |
|-----------|--------|---------|----------|
| format | rendered, raw | rendered | Use raw to skip JS rendering (faster) |
| expiration | 0 to N (days) | 1 | Set 0 to bypass cache |
| delay | 0.1 to 10 (seconds) | none | Page needs extra time to load dynamic content |
| device | device name string | desktop | Need mobile-specific content |
| ip | residential, isp | residential | ISP IPs for less detection |
Example with browser options:
curl -s -G --data-urlencode "url=THE_URL" \
-H "Authorization: Bearer $MASSIVE_UNBLOCKER_TOKEN" \
"https://unblocker.joinmassive.com/browser?expiration=0&delay=2"
delay=3. If still empty, try format=rendered (the default). Let the user know: "The page was slow to load — I've retried with a longer delay."device=mobile for the mobile version.expiration=0 to bypass cache.ip=isp — ISP-grade IPs have lower detection rates.delay for more render time.format=json for search. Structured JSON is preferred over HTML for search results.+ or %20 in the terms parameter./plugin install clawpod-web-unblocker@joinmassiveRequires Claude Code CLI.
Developers and researchers bypass bot detection, CAPTCHAs, and geo-restrictions to extract content from protected sites and search engines.
No reviews yet. Be the first to review this skill.