Skip to content
cccskills
FreePublished on GitHub

9router-web-search

Search web articles, news, and public X posts through 9Router. Use a shared request format across search providers, set result counts, and apply filters such as language, country, or domain where supported.

OriginalShow the original description

Web and X search via 9Router /v1/search using Tavily / Exa / Brave / Serper / SearXNG / Google PSE / Linkup / SearchAPI / You.com / Perplexity / Xquik. Use when the user wants to search the web, find articles, or search public X posts.

See how to install

Good for

  • Find web articles about a topic
  • Search news about a specific subject
  • Find public X posts with search operators
  • Filter searches by language or domain

Files included (1)

  • SKILL.md4.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

9Router — Web Search

Requires NINEROUTER_URL (and NINEROUTER_KEY if auth enabled). See https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router/SKILL.md for setup.

Discover

curl $NINEROUTER_URL/v1/models/web | jq '.data[] | select(.kind=="webSearch") | .id'
# Per-provider params (searchTypes, maxResults, required options like cx for google-pse)
curl "$NINEROUTER_URL/v1/models/info?id=tavily/search"

IDs end in /search (e.g. tavily/search). Combos (owned_by:"combo") chain providers with auto-fallback.

Endpoint

POST $NINEROUTER_URL/v1/search

FieldRequiredNotes
model (or provider)yesfrom /v1/models/web (e.g. tavily or brave)
queryyessearch query
max_resultsnodefault 5
search_typenoweb (default) / news / x for Xquik
country, language, time_range, domain_filternoprovider-dependent

Examples

curl -X POST $NINEROUTER_URL/v1/search \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"tavily","query":"9Router open source","max_results":5}'

JS:

const r = await fetch(`${process.env.NINEROUTER_URL}/v1/search`, {
  method: "POST",
  headers: { "Authorization": `Bearer ${process.env.NINEROUTER_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ model: "search-combo", query: "latest LLM benchmarks", max_results: 10 }),
});
console.log(await r.json());

X search with Xquik:

curl -X POST $NINEROUTER_URL/v1/search \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"xquik","query":"from:github release","max_results":10,"provider_options":{"queryType":"Latest"}}'

Add the Xquik API key in 9Router's provider settings. Xquik charges 1 credit per returned post. Continue a search by passing pagination.next_cursor as provider_options.cursor.

Xquik responses include provider pagination and credit usage:

{
  "pagination": { "has_more": true, "next_cursor": "cursor-2" },
  "usage": { "queries_used": 1, "search_cost_usd": null, "provider_credits_used": 10 }
}

Response shape

{
  "provider": "tavily",
  "query": "9Router open source",
  "results": [
    {
      "title": "...", "url": "https://...", "display_url": "github.com/...",
      "snippet": "...", "position": 1, "score": 0.92,
      "published_at": null, "favicon_url": null, "content": null,
      "metadata": { "author": null, "language": null, "source_type": null, "image_url": null },
      "citation": { "provider": "tavily", "retrieved_at": "2026-...", "rank": 1 }
    }
  ],
  "answer": null,
  "usage": { "queries_used": 1, "search_cost_usd": 0.008 },
  "metrics": { "response_time_ms": 850, "upstream_latency_ms": 700, "total_results_available": 12 },
  "errors": []
}

Provider quirks

All accept query + max_results. Optional fields vary:

ProviderSupportsRequired extras
tavilycountry, domain_filter, news topic—
exadomain_filter (incl/excl), news category—
brave-searchcountry, language—
serpercountry, language, news endpoint—
perplexitycountry, language, domain_filter—
linkupdomain_filter, time_rangedepth: fast/standard/deep (option)
google-psecountry, language, time_range, offsetcx required (providerOptions)
searchapicountry, language, pagination—
youcomcountry, language, time_range, domain_filter, full_page—
searxnglanguage, time_rangeSelf-hosted, noAuth
xquikX/Twitter search operators, language, cursor paginationqueryType: Latest/Top, cursor (options)

Provider IS the model — "provider":"tavily" ≡ "model":"tavily".

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

9router

FreeSummary

Set up access to 9Router, a shared gateway for multiple AI providers, and discover available models. Find the relevant capability skills for chat, images, speech, embeddings, web search, and webpage retrieval.

  • Configure a local or remote 9Router connection
  • Check available models by capability
  • Find instructions for image or speech tasks
decolua/9router31.1KUpdated Oct 15, 2026

9router-chat

FreeSummary

Ask AI questions, generate code, and summarize text through 9Router using OpenAI or Anthropic request formats. Receive responses incrementally with streaming, and use provider combinations that automatically try another provider when needed.

  • Ask an AI model questions through 9Router
  • Generate code from written instructions
  • Summarize text with a selected model
decolua/9router31.1KUpdated Oct 15, 2026

Turn text into embeddings, numeric representations of meaning, through 9Router. Choose a model and process individual texts or batches to prepare data for meaning-based search, similarity comparisons, or RAG systems that retrieve reference material.

  • Preparing text vectors for meaning-based search
  • Generating embeddings for text similarity comparisons
  • Batch-processing reference passages for RAG
decolua/9router31.1KUpdated Oct 15, 2026

9router-image

FreeSummary

Generate images from written descriptions through 9Router using a choice of image models. Check each model’s supported settings, request an image, and receive a URL, encoded image data, or image bytes for saving to a file.

  • Creating a landscape image from a written description
  • Checking supported image sizes and quality settings
  • Saving generated images as files
decolua/9router31.1KUpdated Oct 15, 2026

9router-stt

FreeSummary

Transcribe audio files through 9Router using models from providers such as OpenAI, Groq, and Deepgram. Receive plain text, structured results with timestamps, or SRT and VTT subtitles, depending on the selected model’s support.

  • Transcribing recorded meetings or interviews
  • Creating SRT or VTT subtitles from audio
  • Getting transcriptions with timestamps
decolua/9router31.1KUpdated Oct 15, 2026

9router-tts

FreeSummary

Convert written text into speech through 9Router, choosing from multiple voice providers. Check available models and voices, then generate MP3 audio for narration, voiceovers, or reading text aloud.

  • Creating narration from a script
  • Turning written text into spoken audio
  • Checking available voices before generating speech
decolua/9router31.1KUpdated Oct 15, 2026

See all skills by decolua

Report a problem with this skill