Reader celebration ReaderLM-v2 release!
Convert a URL to LLM-friendly input, by simply adding
r.jina.ai
in front.Reader API
Convert a URL to LLM-friendly input, by simply adding
r.jina.ai
in front. chevron_leftchevron_right
search
Use
s.jina.ai
to search a queryThis will search the web and returns URLs and contents, each in clean, LLM-friendly text.
keyboard_arrow_down
fact_check
Use
g.jina.ai
for groundingThis will call our grounding engine do fact-checking.
science
Experimental
keyboard_arrow_down
Add API Key for Higher Rate Limit
Enter your Jina API key to access a higher rate limit. For latest rate limit information, please refer to the table below.
Use POST Method
Use POST instead of GET method with a URL passed in the body. Useful for building SPAs with hash-based routing.
Read Engine
Choose the engine to use for parsing the content for the given URL. Affect the quality, speed, compatibility of the result.
Default
arrow_drop_down
Content Format
You can control the level of detail in the response to prevent over-filtering. The default pipeline is optimized for most websites and LLM input.
Default
arrow_drop_down
Use ReaderLM-v2
Experimental
Uses ReaderLM-v2 for HTML to Markdown conversion, to deliver high-quality results for websites with complex structures and contents. Costs 3x tokens!
Timeout
Maximum time to wait for the webpage to load. Note that this is NOT the total time for the whole end-to-end request.
Token Budget
Limits the maximum number of tokens used for this request. Exceeding this limit will cause the request to fail.
Target Selector
Provide a list of CSS selector to focus on more specific parts of the page. Useful when your desired content doesn't show under the default settings.
Wait For Selector
Provide a list of CSS selector to wait for specific elements to appear before returning. Useful when your desired content doesn't show under the default settings.
Excluded Selector
Provide a list of CSS selector to remove the specified elements of the page. Useful when you want to exclude specific parts of the page like headers, footers, etc.
Remove All Images
Remove all images from the response.
Gather All Links At the End
A "Buttons & Links" section will be created at the end. This helps the downstream LLMs or web agents navigating the page or take further actions.
No Summary (Default)
arrow_drop_down
Gather All Images At the End
An "Images" section will be created at the end. This gives the downstream LLMs an overview of all visuals on the page, which may improve reasoning.
No Summary (Default)
arrow_drop_down
JSON Response
The response will be in JSON format, containing the URL, title, content, and timestamp (if available). In Search mode, it returns a list of five entries, each following the described JSON structure.
Viewport Configuration
POST
Configure browser viewport dimensions for responsive rendering
Forward Cookie
Our API server can forward your custom cookie settings when accessing the URL, which is useful for pages requiring extra authentication. Note that requests with cookies will not be cached.
Image Caption
Captions all images at the specified URL, adding 'Image [idx]: [caption]' as an alt tag for those without one. This allows downstream LLMs to interact with the images in activities such as reasoning and summarizing.
Use a Proxy Server
Our API server can utilize your proxy to access URLs, which is helpful for pages accessible only through specific proxies.
Bypass the Cache
Our API server caches both Read and Search mode contents for a certain amount of time. To bypass this cache, set this header to true.
Github Flavored Markdown
Opt in/out features from GFM (Github Flavored Markdown).
Enabled
arrow_drop_down
Stream Mode
Stream mode is beneficial for large target pages, allowing more time for the page to fully render. If standard mode results in incomplete content, consider using Stream mode.
Browser Locale
Control the browser locale to render the page. Lots of websites serve different content based on the locale.
Enable iframe Extraction
Extracts and processes content from all embedded iframes within the DOM tree
Enable Shadow DOM Extraction
Traverses and extracts content from all Shadow DOM roots in the document
Redirect Resolution
Choose whether to resolve to the final destination URL after following all redirects. Enable to follow the full redirect chain.
Local PDF/HTML file
POST
Use Reader on your local PDF and HTML file by uploading them. Only support pdf and html files. For HTML, please also specify a reference URL for better parsing related CSS/JS scripts.
upload
Pre-Execute Custom JavaScript
POST
Executes pre-processing JavaScript code, accepting either inline code string or remote script URL endpoint
upload
Request
Bash
Language
arrow_drop_down
curl https://r.jina.ai/https://example.com
key
API key
visibility_off
Available tokens
0
ReaderLM v2: Small Language Model for HTML to Markdown and JSON
ReaderLM-v2 is a 1.5B parameter language model specialized in HTML-to-Markdown conversion and HTML-to-JSON extraction. It supports documents up to 512K tokens across 29 languages and offers 20% higher accuracy compared to its predecessor.
Feeding web information into LLMs is an important step of grounding, yet it can be challenging. The simplest method is to scrape the webpage and feed the raw HTML. However, scraping can be complex and often blocked, and raw HTML is cluttered with extraneous elements like markups and scripts. The Reader API addresses these issues by extracting the core content from a URL and converting it into clean, LLM-friendly text, ensuring high-quality input for your agent and RAG systems.
Enter your URL
Reader URL
Raw HTML
Reader Output
Pose a Question
Reader allows you to feed your LLM with the latest information from the web. Simply prepend https://s.jina.ai/ to your query, and Reader will search the web and return the top five results with their URLs and contents, each in clean, LLM-friendly text. This way, you can always keep your LLM up-to-date, improve its factuality, and reduce hallucinations.
Enter your query
Reader URL
info Please note that unlike the demo shown above, in practice you do not search the original question on the web for grounding. What people often do is rewrite the original question or use multi-hop questions. They read the retrieved results and then generate additional queries to gather more information as needed before arriving at a final answer.
The new grounding endpoint offers an end-to-end, near real-time fact-checking experience. It takes a given statement, grounds it using real-time web search results, and returns a factuality score and the exact references used. You can easily ground statements to reduce LLM hallucinations or improve the integrity of human-written content.
Images on the webpage are automatically captioned using a vision language model in the reader and formatted as image alt tags in the output. This gives your downstream LLM just enough hints to incorporate those images into its reasoning and summarizing processes. This means you can ask questions about the images, select specific ones, or even forward their URLs to a more powerful VLM for deeper analysis!
Yes, Reader natively supports PDF reading. It's compatible with most PDFs, including those with many images, and it's lightning fast! Combined with an LLM, you can easily build a ChatPDF or document analysis AI in no time.
The best part? It's free!
Reader API is available for free and offers flexible rate limit and pricing. Built on a scalable infrastructure, it offers high accessibility, concurrency, and reliability. We strive to be your preferred grounding solution for your LLMs.
Rate Limit
Rate limits are tracked in two ways: RPM (requests per minute) and TPM (tokens per minute). Limits are enforced per IP/API key and can be reached based on whichever threshold—RPM or TPM—is hit first. Note, when API key is provided in the request, rate limits are tracked per key, not per IP address.
Columns
arrow_drop_down
Product | API Endpoint | Descriptionarrow_upward | w/o API Key | w/ API Key | w/ Premium API Key | Average Latency | Token Usage Counting | Allowed Request | |
---|---|---|---|---|---|---|---|---|---|
Embedding API | https://api.jina.ai/v1/embeddings | Convert text/images to fixed-length vectors | block | 500 RPM & 1,000,000 TPM | 2,000 RPM & 5,000,000 TPM | bolt depends on the input size help | Count the number of tokens in the input request. | POST | |
Reranker API | https://api.jina.ai/v1/rerank | Tokenize and segment long text | block | 500 RPM & 1,000,000 TPM | 2,000 RPM & 5,000,000 TPM | bolt depends on the input size help | Count the number of tokens in the input request. | POST | |
Reader API | https://r.jina.ai | Convert URL to LLM-friendly text | 20 RPM | 200 RPM | 1000 RPM | 4.6s | Count the number of tokens in the output response. | GET/POST | |
Reader API | https://s.jina.ai | Search the web and convert results to LLM-friendly text | block | 40 RPM | 100 RPM | 8.7s | Count the number of tokens in the output response. | GET/POST | |
Reader API | https://g.jina.ai | Grounding a statement with web knowledge | block | 10 RPM | 30 RPM | 22.7s | Count the total number of tokens in the whole process. | GET/POST | |
Classifier API (Zero-shot) | https://api.jina.ai/v1/classify | Classify inputs using zero-shot classification | block | 200 RPM & 500,000 TPM | 1,000 RPM & 3,000,000 TPM | bolt depends on the input size | Tokens counted as: input_tokens + label_tokens | POST | |
Classifier API (Few-shot) | https://api.jina.ai/v1/classify | Classify inputs using a trained few-shot classifier | block | 20 RPM & 200,000 TPM | 60 RPM & 1,000,000 TPM | bolt depends on the input size | Tokens counted as: input_tokens | POST | |
Classifier API | https://api.jina.ai/v1/train | Train a classifier using labeled examples | block | 20 RPM & 200,000 TPM | 60 RPM & 1,000,000 TPM | bolt depends on the input size | Tokens counted as: input_tokens × num_iters | POST | |
Segmenter API | https://segment.jina.ai | Tokenize and segment long text | 20 RPM | 200 RPM | 1,000 RPM | 0.3s | Token is not counted as usage. | GET/POST |
Don't panic! Every new API key contains one million free tokens!
API Pricing
API pricing is based on token usage - input tokens for standard APIs and output tokens for Reader API. One API key gives you access to all search foundation products.
Rate Limit
Rate limits are tracked in two ways: RPM (requests per minute) and TPM (tokens per minute). Limits are enforced per IP/API key and can be reached based on whichever threshold—RPM or TPM—is hit first. Note, when API key is provided in the request, rate limits are tracked per key, not per IP address.
Columns
arrow_drop_down
Product | API Endpoint | Descriptionarrow_upward | w/o API Key | w/ API Key | w/ Premium API Key | Average Latency | Token Usage Counting | Allowed Request | |
---|---|---|---|---|---|---|---|---|---|
Embedding API | https://api.jina.ai/v1/embeddings | Convert text/images to fixed-length vectors | block | 500 RPM & 1,000,000 TPM | 2,000 RPM & 5,000,000 TPM | bolt depends on the input size help | Count the number of tokens in the input request. | POST | |
Reranker API | https://api.jina.ai/v1/rerank | Tokenize and segment long text | block | 500 RPM & 1,000,000 TPM | 2,000 RPM & 5,000,000 TPM | bolt depends on the input size help | Count the number of tokens in the input request. | POST | |
Reader API | https://r.jina.ai | Convert URL to LLM-friendly text | 20 RPM | 200 RPM | 1000 RPM | 4.6s | Count the number of tokens in the output response. | GET/POST | |
Reader API | https://s.jina.ai | Search the web and convert results to LLM-friendly text | block | 40 RPM | 100 RPM | 8.7s | Count the number of tokens in the output response. | GET/POST | |
Reader API | https://g.jina.ai | Grounding a statement with web knowledge | block | 10 RPM | 30 RPM | 22.7s | Count the total number of tokens in the whole process. | GET/POST | |
Classifier API (Zero-shot) | https://api.jina.ai/v1/classify | Classify inputs using zero-shot classification | block | 200 RPM & 500,000 TPM | 1,000 RPM & 3,000,000 TPM | bolt depends on the input size | Tokens counted as: input_tokens + label_tokens | POST | |
Classifier API (Few-shot) | https://api.jina.ai/v1/classify | Classify inputs using a trained few-shot classifier | block | 20 RPM & 200,000 TPM | 60 RPM & 1,000,000 TPM | bolt depends on the input size | Tokens counted as: input_tokens | POST | |
Classifier API | https://api.jina.ai/v1/train | Train a classifier using labeled examples | block | 20 RPM & 200,000 TPM | 60 RPM & 1,000,000 TPM | bolt depends on the input size | Tokens counted as: input_tokens × num_iters | POST | |
Segmenter API | https://segment.jina.ai | Tokenize and segment long text | 20 RPM | 200 RPM | 1,000 RPM | 0.3s | Token is not counted as usage. | GET/POST |
CC BY-NC License Self-Check
play_arrow
Are you using our official API or official images on Azure or AWS?
play_arrow
done
Yes
play_arrow
Are you using a paid API key or free trial key?
play_arrow
Are you using our official model images on AWS and Azure?
play_arrow
close
No
Reader-related common questions
What are the costs associated with using the Reader API?
keyboard_arrow_down
How does the Reader API function?
keyboard_arrow_down
Is the Reader API open source?
keyboard_arrow_down
What is the typical latency for the Reader API?
keyboard_arrow_down
Why should I use the Reader API instead of scraping the page myself?
keyboard_arrow_down
Does the Reader API support multiple languages?
keyboard_arrow_down
What should I do if a website blocks the Reader API?
keyboard_arrow_down
Can the Reader API extract content from PDF files?
keyboard_arrow_down
Can the Reader API process media content from web pages?
keyboard_arrow_down
Is it possible to use the Reader API on local HTML files?
keyboard_arrow_down
Does Reader API cache the content?
keyboard_arrow_down
Can I use the Reader API to access content behind a login?
keyboard_arrow_down
Can I use the Reader API to access PDF on arXiv?
keyboard_arrow_down
How does image caption work in Reader?
keyboard_arrow_down
What is the scalability of the Reader? Can I use it in production?
keyboard_arrow_down
What is the rate limit of the Reader API?
keyboard_arrow_down
What is Reader-LM? How can I use it?
keyboard_arrow_down
API-related common questions
code
Can I use the same API key for reader, embedding, reranking, classifying and fine-tuning APIs?
keyboard_arrow_down
code
Can I monitor the token usage of my API key?
keyboard_arrow_down
code
What should I do if I forget my API key?
keyboard_arrow_down
code
Do API keys expire?
keyboard_arrow_down
code
Can I transfer tokens between API keys?
keyboard_arrow_down
code
Can I revoke my API key?
keyboard_arrow_down
code
Why is the first request for some models slow?
keyboard_arrow_down
code
Is user input data used for training your models?
keyboard_arrow_down
Billing-related common questions
attach_money
Is billing based on the number of sentences or requests?
keyboard_arrow_down
attach_money
Is there a free trial available for new users?
keyboard_arrow_down
attach_money
Are tokens charged for failed requests?
keyboard_arrow_down
attach_money
What payment methods are accepted?
keyboard_arrow_down
attach_money
Is invoicing available for token purchases?
keyboard_arrow_down