Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Jina AI Search API
description: 'Jina AI APIs on three hosts: Reader (`r.jina.ai`), Search (`s.jina.ai`) and the Search Foundation models (`api.jina.ai`). | I want to | Endpoint |
|---|---|
| Read a web page or PDF as LLM-friendly Markdown | GET r.jina.ai/{url} · POST r.jina.ai |
| Search the web and get the result pages as text | GET s.jina.ai/{q} · POST s.jina.ai/search |
| Embed text, images, audio, video or PDFs | POST /v1/embeddings |
| Rerank candidates against a query | POST /v1/rerank |
| Transcribe a document image (OCR) | POST /v1/chat/completions |
| Embed a large dataset asynchronously | POST /v1/batch/embeddings |
| See which models exist and what they cost | GET /v1/models |
**Authentication.** Send `Authorization: Bearer `. Get a key at https://jina.ai/?sui=apikey. Reader also answers without a key, at a lower rate limit; Search needs one. **EU.** `eu.r.jina.ai` and `eu.s.jina.ai` keep all processing inside the EU. **For LLMs.** `curl docs.jina.ai` returns the meta-prompt, a plain-text guide to these APIs written for coding agents. This reference as Markdown: `curl docs.jina.ai/api.md`. **Rate limits.** r.jina.ai 500 RPM (5k premium), s.jina.ai 100 RPM (1k premium). _Merged from https://api.jina.ai/openapi.json, https://r.jina.ai/openapi.json, https://s.jina.ai/openapi.json. Plain text: https://docs.jina.ai/api.md. Spec: https://docs.jina.ai/openapi.json._
Best-in-class embeddings, rerankers and document models for multilingual and multimodal search. ## Capabilities
- **Text embeddings** — dense vectors for semantic search, similarity, clustering and classification, in 100+ languages. - **Multimodal embeddings** — images, video, audio and PDFs embedded into the same space as text, so a query in one modality retrieves another. - **Reranking** — score a query against a candidate set and reorder it; more accurate than embedding similarity, and the usual second stage after it. - **Document OCR** — read a page image and return its content as text or markdown, with tables and layout preserved, over the OpenAI chat completions schema. - **Batch embeddings** — the same embedding models over JSONL, asynchronously, for workloads too large to send inline. ## Authentication
Every endpoint except `GET /v1/models` requires a key:
```
Authorization: Bearer jina_YOUR_API_KEY
```
Get one at jina.ai/api-dashboard/key-manager. ## Rate limits
Requests per minute and tokens per minute. Anything over a limit answers `429`. | Endpoint | Free | Paid | Premium |
|---|---|---|---|
| `/v1/embeddings` | 500 RPM · 1M TPM | 500 RPM · 10M TPM | 5,000 RPM · 100M TPM |
| `/v1/rerank` | 500 RPM · 1M TPM | 500 RPM · 10M TPM | 5,000 RPM · 100M TPM |
| `/v1/chat/completions` | 100 RPM · 500K TPM | 100 RPM · 5M TPM | 1,000 RPM · 50M TPM |
## Errors
Failures carry a `detail`, a `code` from the table below and the `request_id` to quote in a support request. `/v1/chat/completions` is the exception: it answers in OpenAI''s error envelope, with the same code inside it.'
version: 2026.10.13.1624
servers:
- url: https://api.jina.ai
tags:
# --- truncated at 32 KB (233 KB total) ---
# Full source: https://artifacts.apis.io/jina-ai/openapi/jina-ai-search-api-openapi.yml