mcpbeat

Web Unblocker

oxylabs/web-unblocker

Bypasses anti-bot protections using Oxylabs Web Unblocker, an AI-powered proxy that handles fingerprinting, JavaScript rendering, and retries automatically. Use when the user needs to scrape protected websites, bypass CAPTCHAs, access blocked content, or when regular proxies fail due to anti-bot measures.

2k tokens
context cost
the whole folder, loaded on every use
2
files
instructions only
0
copies elsewhere
how many repositories repackaged it
374
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/oxylabs/agent-skills --skill web-unblocker

The instruction itself

9 sections, as written by the author

Oxylabs Web Unblocker

AI-powered proxy solution that automatically manages fingerprinting, headers, retries, and JavaScript rendering.

Endpoint

https://unblock.oxylabs.io:60000

Authentication

HTTP Basic Auth via proxy credentials:

curl -k -x "https://unblock.oxylabs.io:60000" \
  -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \
  "https://example.com"

Quick Start

Basic request:

curl -k -x "https://unblock.oxylabs.io:60000" \
  -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \
  "https://ip.oxylabs.io/headers"

With JavaScript rendering:

curl -k -x "https://unblock.oxylabs.io:60000" \
  -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \
  -H "x-oxylabs-render: html" \
  "https://example.com/spa-page"

Headers

| Header | Description |

|--------|-------------|

| x-oxylabs-render | html for rendered HTML, png for raw PNG bytes; empty value disables automatic forced rendering |

| X-Oxylabs-Session-Id | Reuse same IP across requests (any random string) |

| X-Oxylabs-Geo-Location | Target country, city/state, ZIP/postcode, or coordinates |

| x-oxylabs-force-headers: 1 | Enable custom header passthrough |

| x-oxylabs-force-cookies: 1 | Enable custom cookie passthrough |

| X-Oxylabs-Successful-Status-Codes | Define custom success codes to prevent retries |

| x-oxylabs-browser-instructions | JSON-escaped browser actions; requires x-oxylabs-render: html |

Session Persistence

Reuse the same IP across multiple requests:

curl -k -x "https://unblock.oxylabs.io:60000" \
  -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \
  -H "X-Oxylabs-Session-Id: my-session-123" \
  "https://example.com/page1"

Geo-Location Targeting

curl -k -x "https://unblock.oxylabs.io:60000" \
  -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \
  -H "X-Oxylabs-Geo-Location: Germany" \
  "https://example.com"

Use values such as Germany, 90210, California,United States, New York,New York,United States, or lat: 40.7128, lng: -74.0060, rad: 50.

Use normal HTTP methods and request bodies through the proxy; Web Unblocker supports both GET and POST.

When to Use Web Unblocker vs Regular Proxies

| Scenario | Use |

|----------|-----|

| Sites with anti-bot protection | Web Unblocker |

| CAPTCHAs, fingerprint detection | Web Unblocker |

| JavaScript-heavy SPAs | Web Unblocker with x-oxylabs-render: html |

| Simple requests, no protection | Regular Proxies |

| High volume, price sensitive | Regular Proxies |

Key Guidelines

  • Always use -k flag (or disable SSL verification) - the proxy uses its own certificates
  • Add x-oxylabs-render: html if experiencing empty content or low success rates; set client timeouts near 180 seconds for rendered requests
  • Check X-Oxylabs-Final-Url in response headers when redirects matter
  • Avoid adding custom unblocking headers that may interfere with the AI
  • Browser instruction header values must be JSON-escaped and compact; pair them with x-oxylabs-render: html

For code examples in Python, Node.js, PHP, Go, Java, and C#, see examples.md.

How to use it

Copy the folder

Take oxylabs/web-unblocker from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.