Jina Reader

Tools & Infrastructure 💻 TypeScript ⚖️ Apache-2.0 🟡 Quiet lately
12.0k stars

Reader is a free API and open-source tool that converts any URL into LLM-friendly markdown and performs web searches, returning the top results as markdown. It solves the problem of feeding raw, cluttered web content to LLMs and is intended for developers building agent or RAG systems.

✨ Key features

  • Converts any URL to clean markdown via r.jina.ai
  • Web search with s.jina.ai returns top 5 results as markdown
  • Supports PDFs, MS Office documents, and images with captions
  • Handles JavaScript-heavy SPAs via headless Chrome
  • Configurable via request headers for output format, caching, and more
  • Offers JSON mode and semantic chunking options

🎯 Use cases

  • Feeding web pages into LLM prompts for summarization or Q&A
  • Building RAG pipelines that need clean text from URLs
  • Enabling AI agents to search and read current web content
  • Extracting content from PDFs and Office documents for processing
  • Creating semantic indexes from web pages with chunking

📦 Installation

🧰 Requirements: No API key required; free and stable production API. For self-hosting, Docker and optional MinIO/S3 for caching.

git clone https://github.com/jina-ai/reader.git
cd reader
For local development with Docker
docker compose up

(Note: The README does not provide explicit install steps beyond referencing local development with Docker Compose.)

🚀 Usage

Read a URL as markdown
curl https://r.jina.ai/https://en.wikipedia.org/wiki/Artificial_intelligence
Search the web
curl 'https://s.jina.ai/Who%20will%20win%202024%20US%20presidential%20election%3F'
Use headers to control output
curl -H 'X-Respond-With: frontmatter' 'https://r.jina.ai/https://example.com'

⚠️ Good to know

The open-source branch runs in stateless mode without the MongoDB-backed storage layer; the SaaS version is actively maintained and free.

❓ FAQ

Do I need an API key to use Reader?

No, the README states it is free and stable for production use without mentioning any API key requirement.

Can Reader handle JavaScript-heavy websites?

Yes, it uses headless Chrome via Puppeteer to render SPAs, and you can use headers like x-timeout or x-wait-for-selector to handle dynamic content.

What output formats are supported?

You can get markdown, HTML, text, screenshot, pageshot, or markdown with frontmatter by setting the x-respond-with header.

How does search work?

s.jina.ai searches the web, fetches the top 5 results, and converts each to markdown using the same technology as r.jina.ai.

📊 Repository

Stars★ 11,955
Forks🍴 879
Open issues🐛 28
Last commit🕒 May 22, 2026
Created📅 Apr 2024
Language💻 TypeScript
License⚖️ Apache-2.0
Topics llmproxy

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.