Dev & Engineering web-scrapingurl-to-markdowncontent-extractionjina-readerfirecrawltavilyexaollama-cloud

9Router Web Fetch

Turn any URL into markdown, text, or HTML via 9Router's /v1/web/fetch, routing across Jina Reader, Firecrawl, Tavily, Exa, and Ollama Cloud with automatic provider fallback.

FollowSkills review · FSRS-2.0
Use with care
51/ 100 5-point scale 2.6 / 5
1 2 3 4 5 6
1Trust15 / 25 · 3.0/5

The skill is a read-only URL-fetch API wrapper with least privilege, no destructive defaults, and keys passed via environment variables rather than hardcoded; however, data-flow disclosure (URL content sent to upstream cloud providers), user confirmation, and rollback mechanisms are absent — deducted to 15.

2Reliability8 / 20 · 2.0/5

Docs are internally consistent with matching request/response examples and a provider-quirk table; but static review shows no tests, no error-code documentation, and undefined failure feedback — static cap 10, deducted to 8.

3Adaptability9 / 15 · 3.0/5

Trigger scenarios are clear (scrape webpage, URL to markdown) with inputs/outputs and provider boundaries described; but the skill depends entirely on a local 9Router instance plus overseas upstreams (Jina/Firecrawl/Exa etc.) with no mainland-China reachability disclosure — deducted to 9.

4Convention9 / 15 · 3.0/5

Well-structured with a discovery endpoint and provider-quirk table; repo carries MIT license — but the skill has no version/changelog, defers setup to another SKILL.md via external link, and does not state maintenance/update responsibility — deducted to 9.

5Effectiveness6 / 15 · 2.0/5

Core task (URL→markdown/text/html) has complete copy-paste curl/JS examples; but no execution evidence, and the response shape is shown once with conditional fields — static cap 7, deducted to 6.

6Verifiability4 / 10 · 2.0/5

Only author-authored docs and example requests; no test suites, no third-party execution evidence, no cross-source corroboration; repo CI covers only Docker publishing and docs deployment, not this skill's key paths — static cap 5, deducted to 4.

Evidence confidence:Low Reviewed Sep 09, 2026 Reviewed revision eb712ca821f0
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
Before you use it
  • This is a static source-only review; no requests were executed. Scores reflect documentation self-consistency, not tested behavior.
  • Using this skill sends the target URL and its content to the selected upstream cloud provider (Firecrawl/Jina/Tavily/Exa/Ollama Cloud); avoid it for sensitive or internal pages.
  • Core function depends on a local 9Router instance and overseas upstream APIs; mainland-China reachability is undisclosed and may fail.
  • jina-reader has a ~1M chars/month free tier and exa uses x-api-key instead of Bearer; verify provider requirements before configuring.
  • The skill has no version or changelog; upstream endpoint behavior may change with 9Router updates.
Review evidence [1][2][3][4][5][6][7][8][9]
See the full review method →

What does this skill do, and when should you use it?

9router-web-fetch is one of nine skills bundled in the decolua/9router repository (MIT licensed), located at skills/9router-web-fetch/. It wraps the /v1/web/fetch endpoint of a running 9Router instance so AI coding assistants can scrape webpages and return markdown, text, or HTML. Requests can be routed to Jina Reader, Firecrawl, Tavily Extract, Exa Contents, or Ollama Cloud, or chained via fetch-combo with auto-fallback. The prerequisite is an installed, running 9Router (npm install -g 9router) with NINEROUTER_URL set (plus NINEROUTER_KEY if auth is enabled). It suits users who want their assistant to read articles, extract page content, or convert URLs to markdown.

The skill is an operational guide: it POSTs to $NINEROUTER_URL/v1/web/fetch with a model (e.g. firecrawl, jina-reader, tavily, exa, ollama, or fetch-combo), a url, an optional format (markdown default / text / html), and an optional max_characters to truncate output. Discovery is done via GET /v1/models/web (IDs ending in /fetch) and per-provider parameters via /v1/models/info. The response includes title, content (format, text, length), links (currently from Ollama Cloud), metadata, fetch cost (0 in examples), and latency metrics.

  1. A developer using Claude Code or Codex who needs the assistant to read a technical article or docs page before writing code
  2. Users who want webpages converted into markdown for notes or as LLM context
  3. Researchers needing bulk page extraction (Tavily returns raw_content)
  4. Users scraping JavaScript-rendered pages where plain readers fail (choose Firecrawl)
  5. Users with an existing Ollama Cloud account who want to reuse that API key and also get discovered page links
  6. Users worried about a single scraping provider's rate limits who want fetch-combo automatic fallback

What are this skill's strengths and limitations?

Pros
  • One endpoint aggregates five scraping backends (Jina Reader, Firecrawl, Tavily, Exa, Ollama Cloud) with a clear selection guide per scenario
  • fetch-combo provides automatic fallback between backends so a single provider's limits don't break the task
  • Controllable output (markdown/text/html) with max_characters truncation; responses include cost and latency metrics
  • The Ollama backend reuses an existing ollama connection key; example responses show fetch_cost_usd of 0
  • SKILL.md is a plain Markdown guide with no platform-only mechanisms, making it portable across Agent Skills clients
Limitations
  • Hard dependency on a running 9Router instance and NINEROUTER_URL/KEY; not a standalone scraping tool
  • The source provides no test suite or independent release info for this skill
  • The links field is currently returned only by Ollama Cloud, so backends are not feature-equivalent; jina-reader's free tier is about 1M chars/month
  • Requires network access to external scraping services; page content goes to third-party providers
  • Auth schemes differ per provider (exa uses x-api-key, others Bearer), so misconfiguration debugging falls on the user

How do you install this skill?

The skill ships inside the decolua/9router repo's skills/ collection. Install the main app globally: npm install -g 9router, then run 9router; the dashboard opens at http://localhost:20128. Place the skills/9router-web-fetch/ folder into your Agent Skills client's skills directory (e.g. Claude Code's), and set NINEROUTER_URL; add NINEROUTER_KEY if auth is enabled. To run from source: cp .env.example .env && npm install, then start in dev or build+start mode per the README. Exact steps for copying the skill folder into a specific client are not documented in the source.

How do you use this skill?

Trigger it with a prompt like "Fetch https://example.com and convert it to markdown" or "Read the content of this article". The skill directs the assistant to first run curl $NINEROUTER_URL/v1/models/web to list web-fetch providers, then POST to /v1/web/fetch, e.g.: curl -X POST $NINEROUTER_URL/v1/web/fetch -H "Authorization: Bearer $NINEROUTER_KEY" -H "Content-Type: application/" -d '{"model":"jina-reader","url":"https://9router.com","format":"markdown"}'. Use fetch-combo as the model for auto-fallback across providers, and pass max_characters to limit output length.

How does this skill compare with similar options?

Compared with calling individual scraping APIs directly (e.g. wiring up Firecrawl or Jina Reader yourself), this skill gives a unified entry point through 9Router with auto-fallback. Compared with the repo's other skills (such as the main 9router LLM-routing skill), this one only handles web fetching and format conversion — it does not cover chat model routing or token saving.

FAQ

Does using this skill cost money?
9Router itself is free open source (MIT). Fetching costs depend on the backend: jina-reader has a roughly 1M chars/month free tier; Firecrawl/Tavily/Exa bill under their own plans; Ollama reuses your Ollama Cloud key. Example responses in the skill show fetch_cost_usd of 0.
Do I need the 9Router app installed first?
Yes. The skill is only a guide for calling the /v1/web/fetch endpoint at $NINEROUTER_URL, so you must first run 9Router (via `npm install -g 9router` or Docker) and configure scraping provider keys in the dashboard.
What happens when a fetch fails?
With fetch-combo, requests fall back automatically across providers; a single backend failure returns that provider's error. The README documents no dedicated retry mechanism for this skill — failure handling depends on your provider choice and fallback chain.
What about privacy?
Fetched URLs and page content are forwarded by 9Router to third-party scraping services (Jina, Firecrawl, etc.). Avoid sensitive or internal pages; enable auth by setting NINEROUTER_KEY if your instance is exposed.

More skills from this repository

All from decolua/9router

Dev & Engineering

9Router Web Search Skill

Aggregate web and X search from 11 providers (Tavily, Exa, Brave and more) through one 9Router /v1/search endpoint, so AI coding agents can search the web on demand.

Dev & Engineering

9Router Image Generation Skill

Call text-to-image models from OpenAI, Gemini, FLUX, Stability and 40+ providers through one 9Router endpoint, letting AI coding agents generate images on demand.

Design & Frontend

9Router Video Generation (xAI Grok Imagine)

Generate, edit, and extend videos via 9Router's unified API using xAI Grok Imagine, with an async submit-poll-download job flow for text-to-video and image-to-video.

Dev & Engineering

9Router Speech-to-Text Skill

Transcribe audio through one OpenAI-compatible endpoint that routes to Whisper, Groq, Gemini, Deepgram and more via 9Router.

Dev & Engineering

9Router Text-to-Speech

Turn text into MP3 audio through 9Router's unified /v1/audio/speech endpoint, drawing voices from OpenAI, ElevenLabs, Edge TTS, Deepgram, and more.

Dev & Engineering

9Router Embeddings Skill

Generate vector embeddings via a running 9Router's /v1/embeddings endpoint, drawing on OpenAI, Gemini, Mistral, Voyage, Nvidia, and GitHub embedding models for RAG, semantic search, and similarity.

Dev & Engineering

9Router Chat Skill

Call any LLM through the 9Router gateway using OpenAI or Anthropic API formats, with streaming and combo auto-fallback, so chat and code generation never stall on a single provider's quota.

Dev & Engineering

9Router Gateway Skill

Point AI coding tools at a local gateway that unifies 40+ free and low-cost model providers, with auto-fallback and RTK saving 20-40% tokens per request.

Related skills