Jina AI - Web Reader, Search and Deep Search

Web reading and searching via Jina AI APIs. Fetch clean markdown from URLs (r.jina.ai), web search (s.jina.ai), or deep multi-step research (DeepSearch).

MIT-0 · Free to use, modify, and redistribute. No attribution required.
6 · 1.3k · 5 current installs · 5 all-time installs
byAdhish Thite@adhishthite
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the actual behavior: scripts call r.jina.ai, s.jina.ai, and deepsearch.jina.ai and require a JINA_API_KEY. Small documentation mismatch: the skill does not declare required binaries, but the shell scripts rely on curl and call python3 for URL encoding/JSON escaping; those runtime dependencies should be declared.
Instruction Scope
SKILL.md and the included scripts only instruct contacting the three Jina endpoints and sending the user-provided URL/query and the JINA_API_KEY. The scripts do not read arbitrary local files or access other environment variables; they parse and print responses to stdout.
Install Mechanism
No install spec (instruction-only) and included scripts are run directly. There are no downloads or archive extraction steps; nothing writes code to disk beyond the skill files themselves.
Credentials
Only JINA_API_KEY is required and is appropriate for a 3rd-party API integration. The SKILL.md explicitly states the API key is transmitted to Jina. No other credentials or unrelated env vars are requested.
Persistence & Privilege
always is false and the skill does not request elevated or persistent system privileges, nor does it modify other skills or system configuration. Model-autonomous invocation is enabled by default (platform default).
Assessment
This skill appears to do what it says: it sends the URLs/queries and your JINA_API_KEY to Jina's endpoints and returns results. Before installing: (1) only enable it if you trust Jina with the data you will send (URLs and queries and the API key are transmitted); (2) ensure your environment has curl and python3 available (the scripts use both but the skill metadata doesn't declare them); (3) store JINA_API_KEY safely (use a scoped/limited key if Jina supports it); (4) if you want to avoid autonomous invocations, disable model invocation for this skill in your OpenClaw settings; (5) review the included scripts yourself (they are short and readable) or install from the upstream GitHub repo to verify provenance.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.6
Download zip
deep-searchvk9767ggw0adpkeqjgv1n2fst0980ykr2latestvk9767ggw0adpkeqjgv1n2fst0980ykr2researchvk9767ggw0adpkeqjgv1n2fst0980ykr2scrapevk9767ggw0adpkeqjgv1n2fst0980ykr2searchvk9767ggw0adpkeqjgv1n2fst0980ykr2webvk9767ggw0adpkeqjgv1n2fst0980ykr2

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

🔍 Clawdis
EnvJINA_API_KEY
Primary envJINA_API_KEY

SKILL.md

Jina AI — Reader, Search & DeepSearch

Web reading and search powered by Jina AI. Requires JINA_API_KEY environment variable.

Trust & Privacy: By using this skill, URLs and queries are transmitted to Jina AI (jina.ai). Only install if you trust Jina with your data.

Model Invocation: This skill may be invoked autonomously by the model without explicit user trigger (standard for integration skills). If you prefer manual-only invocation, disable model invocation in your OpenClaw skill settings.

Get your API key: https://jina.ai/ → Dashboard → API Keys

External Endpoints

This skill makes HTTP requests to the following external endpoints only:

EndpointURL PatternPurpose
Reader APIhttps://r.jina.ai/{url}Sends URL content request to Jina for conversion to markdown
Search APIhttps://s.jina.ai/{query}Sends search query to Jina for web search results
DeepSearch APIhttps://deepsearch.jina.ai/v1/chat/completionsSends research question to Jina for multi-step research

No other external network calls are made by this skill.

Security & Privacy

  • Authentication: Only your JINA_API_KEY is transmitted to Jina's servers (via Authorization header)
  • Data sent: URLs and search queries you provide are sent to Jina's servers for processing
  • Local files: No local files are read or transmitted by this skill
  • Local storage: No data is stored locally beyond stdout output
  • Environment access: Scripts only access the JINA_API_KEY environment variable; no other env vars are read
  • Cookies: Cookies are not forwarded by default; the X-Set-Cookie header is available for authenticated content but is opt-in only

Endpoints

EndpointBase URLPurpose
Readerhttps://r.jina.ai/{url}Convert any URL → clean markdown
Searchhttps://s.jina.ai/{query}Web search with LLM-friendly results
DeepSearchhttps://deepsearch.jina.ai/v1/chat/completionsMulti-step research agent

All endpoints accept Authorization: Bearer $JINA_API_KEY.


Reader API (r.jina.ai)

Fetches any URL and returns clean, LLM-friendly content. Works with web pages, PDFs, and JS-heavy sites.

Basic Usage

# Plain text output
curl -s "https://r.jina.ai/https://example.com" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "Accept: text/plain"

# JSON output (includes url, title, content, timestamp)
curl -s "https://r.jina.ai/https://example.com" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "Accept: application/json"

Or use the helper script: scripts/jina-reader.sh <url> [--json]

Parameters (via headers or query params)

Content Control

HeaderQuery ParamValuesDefaultDescription
X-Respond-WithrespondWithcontent, markdown, html, text, screenshot, pageshot, vlm, readerlm-v2contentOutput format
X-Retain-ImagesretainImagesnone, all, alt, all_p, alt_pallImage handling
X-Retain-LinksretainLinksnone, all, text, gpt-ossallLink handling
X-With-Generated-AltwithGeneratedAlttrue/falsefalseAuto-caption images
X-With-Links-SummarywithLinksSummarytrue-Append links section
X-With-Images-SummarywithImagesSummarytrue/falsefalseAppend images section
X-Token-BudgettokenBudgetnumber-Max tokens for response

CSS Selectors

HeaderQuery ParamDescription
X-Target-SelectortargetSelectorOnly extract matching elements
X-Wait-For-SelectorwaitForSelectorWait for elements before extracting
X-Remove-SelectorremoveSelectorRemove elements before extraction

Browser & Network

HeaderQuery ParamDescription
X-TimeouttimeoutPage load timeout (1-180s)
X-Respond-TimingrespondTimingWhen page is "ready" (html, network-idle, etc.)
X-No-CachenoCacheBypass cached content
X-ProxyproxyCountry code or auto for proxy
X-Set-CookiesetCookiesForward cookies for authenticated content

Common Patterns

# Extract main content, remove navigation elements
curl -s "https://r.jina.ai/https://example.com/article" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "X-Retain-Images: none" \
  -H "X-Remove-Selector: nav, footer, .sidebar, .ads" \
  -H "Accept: text/plain"

# Extract specific section
curl -s "https://r.jina.ai/https://example.com" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "X-Target-Selector: article.main-content"

# Parse a PDF
curl -s "https://r.jina.ai/https://example.com/paper.pdf" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "Accept: text/plain"

# Wait for dynamic content
curl -s "https://r.jina.ai/https://spa-app.com" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "X-Wait-For-Selector: .loaded-content" \
  -H "X-Respond-Timing: network-idle"

Search API (s.jina.ai)

Web search returning LLM-friendly results with full page content.

Basic Usage

# Plain text
curl -s "https://s.jina.ai/your+search+query" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "Accept: text/plain"

# JSON
curl -s "https://s.jina.ai/your+search+query" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "Accept: application/json"

Or use the helper script: scripts/jina-search.sh "<query>" [--json]

Search Parameters

ParamValuesDescription
sitedomainLimit to specific site
typeweb, images, newsSearch type
num / count0-20Number of results
glcountry codeGeo-location (e.g. us, in)
filetypeextensionFilter by file type
intitlestringMust appear in title

All Reader parameters also work on search results.

Common Patterns

# Site-scoped search
curl -s "https://s.jina.ai/OpenAI+GPT-5?site=reddit.com" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "Accept: text/plain"

# News search
curl -s "https://s.jina.ai/latest+AI+news?type=news&num=5" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "Accept: application/json"

# Search for PDFs
curl -s "https://s.jina.ai/machine+learning+survey?filetype=pdf&num=5" \
  -H "Authorization: Bearer $JINA_API_KEY"

DeepSearch

Multi-step research agent that combines search + reading + reasoning. OpenAI-compatible chat completions API.

curl -s "https://deepsearch.jina.ai/v1/chat/completions" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jina-deepsearch-v1",
    "messages": [{"role": "user", "content": "Your research question here"}],
    "stream": false
  }'

Or use the helper script: scripts/jina-deepsearch.sh "<question>"

Use for complex research requiring multiple sources and reasoning chains.


Helper Scripts

ScriptPurpose
scripts/jina-reader.shRead any URL as markdown
scripts/jina-search.shWeb search
scripts/jina-deepsearch.shDeep multi-step research
scripts/jina-reader.pyPython reader (no deps beyond stdlib)

Rate Limits

  • Free (no key): 20 RPM
  • With API key: Higher limits, token-based pricing

API Docs

When to Use

NeedUse
Fetch a URL as markdownReader — better than web_fetch for JS-heavy sites
Web searchSearch — LLM-friendly results
Complex multi-source researchDeepSearch
Parse a PDF from URLReader — pass PDF URL directly
Screenshot a pageReader with X-Respond-With: screenshot
Extract structured dataReader with jsonSchema param

Files

6 total
Select a file
Select a file to preview.

Comments

Loading comments…