fetch-403

Recover web page content after the built-in fetcher returns 403 or a bot-check interstitial.

1|Updated Jul 22, 2026
One-click install
npx skills add https://github.com/thititongumpun/skills --skill fetch-403-thititongumpun
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: fetch-403
Source: https://github.com/thititongumpun/skills/tree/main/skills/fetch-403
Command: npx skills add https://github.com/thititongumpun/skills --skill fetch-403-thititongumpun

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires html2text, and includes scripts (resource) components.

What problem does it solve? When the built-in WebFetch tool is refused with a 403 Forbidden, an empty body, or a "Just a moment…" bot-check page, you lose access to content that is often still publicly available. This Skill provides a ladder of fallback retrieval methods so the content can still be reached without guessing or fabricating answers. ## Core Features & Use Cases - curl with browser User-Agent retry: A bundled script fetches the URL, retries with a browser UA when plain curl is refused, converts the result to markdown, and prints the page headings for targeted reading. - Machine-readable endpoints: Falls back to context7 MCP for library docs, llms.txt files, raw.githubusercontent.com, JSON APIs, and RSS feeds that are built for programmatic reads. - Honest failure reporting: When every rung fails, the Skill instructs reporting the blocked source instead of silently answering from training memory. - Use Case: A documentation page on debezium.io returns 403 to WebFetch; run the fetch403.sh script to retrieve it as markdown, then read only the relevant sections by line range. ## Quick Start Use the fetch-403 skill to retrieve the content of the URL that WebFetch just refused with a 403 error.

Frequently Asked Questions about fetch-403

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fetch a web page that returns 403 Forbidden?

Retry the request with curl using a browser User-Agent, since many sites only block the fetcher's default UA. The fetch403.sh script automates this, converts the result to markdown, and prints headings so you can read only the relevant sections.

What alternatives exist when a URL won't load through WebFetch?

Try machine-readable endpoints first: context7 MCP for library documentation, llms.txt at the doc root, raw.githubusercontent.com for repo files, or JSON APIs and RSS feeds. Search snippets or mirrors are a further fallback.

Can Playwright or Puppeteer bypass a Cloudflare bot check?

No. Vanilla Playwright returns an empty body against live Cloudflare challenges in both headless and headed modes, and exits 0 so the failure looks like an empty page. Passing real bot checks requires stealth fingerprint evasion, which is out of scope.

Why does curl get 200 when WebFetch gets 403 on the same page?

Many sites filter by User-Agent rather than blocking automation outright. WebFetch's UA is refused while a browser UA is accepted, so the 403 reflects the fetcher's identity, not a real access restriction.

What should I do when every retrieval method fails?

Report that the source was blocked and name what you tried. Never answer from training memory instead, because a fabricated answer that looks sourced defeats the purpose of retrieval and is invisible to the user.