When you're building n8n workflows that give an AI model access to the internet — particularly one routed through OpenRouter — Jina AI quietly does most of the heavy lifting. This article walks through getting a key (with and without an account), where it goes in n8n, and why the Jina + OpenRouter pairing solves a problem neither tool fully handles on its own.
Why Jina matters when you're using OpenRouter
OpenRouter is good at one thing: routing your prompts to dozens of different LLMs (Claude, GPT, Gemini, Llama, DeepSeek and so on) through a single API. What it doesn't do is give those models a way to actually browse the internet. A few "online" model variants exist, but they cost more per request, lock you into specific models, and hand control of the fetching to OpenRouter — you can't see which URLs were read, can't pre-process or filter the content, and can't reuse it elsewhere in your workflow.
Jina fills that gap. It offers two endpoints that pair naturally with an LLM:
- Reader (
https://r.jina.ai/{url}) — fetch any URL and return clean, LLM-friendly markdown. Strips out navigation, ads, scripts and comment threads. - Search (
https://s.jina.ai/?q={query}) — run a web search and return the top results in the same clean markdown format.
Together those two cover the full browsing loop: Search to find URLs, Reader to read them. Because the output is already trimmed-down markdown, your OpenRouter token bill is meaningfully smaller than it would be if you fed in raw HTML.
A few practical reasons the pairing works well:
- Decoupled from your model choice. Switch from Claude to Gemini to a cheap Llama variant and your search and fetch tooling doesn't change. Online-mode models would force a rebuild.
- Full visibility into what the AI reads. You can log every URL, cache results, post-process, or filter content before it hits the model.
- Both are plain HTTP. No SDKs, no OAuth dances. n8n's HTTP Request node handles either one with a couple of fields filled in.
- The free tier is generous enough to actually build with — more on that below.
When you're wiring an AI Agent node to OpenRouter and want it to research things on the open web, two HTTP Request nodes — one pointing at r.jina.ai, one at s.jina.ai — attached as tools is the cleanest, most portable pattern there is.
Two ways to get a key
Jina has an unusual onboarding flow: you can grab a working key without ever creating an account. Both routes are valid; the right one depends on whether you plan to keep using it.
The quick, no-account method
Useful when you want to test something today and decide later whether it's worth committing to.
- Open jina.ai in your browser.
- Click API in the top navigation. The API widget loads with live token counts and example calls.
- Look for the API KEY & BILLING tab inside that widget.
- A key is already auto-generated for you. It starts with
jina_…. The widget labels it: "This is your unique key. Store it securely!" - Copy it somewhere safe before you close the tab.
That key works immediately — no signup, no email confirmation. It comes pre-loaded with 10 million free tokens for non-commercial use, shared across Reader, Search, Embeddings, Reranker and the rest of Jina's APIs.
The catch: if you lose the key, you lose the tokens. There's no "log back in and find it" path. Jina's support can sometimes recover topped-up keys via a registered email address, but a free anonymous key isn't tied to anything.
The full signup method
Worth doing if you've decided you're going to use Jina for more than a one-off test, or if you ever want to top up.
- Same starting point — jina.ai, then the API widget.
- Click the login or signup option (Google or email both work).
- Once logged in, the Manage API Key tab shows all your keys, current token balances, recent usage, and the option to top up or set up auto-recharge.
The tokens themselves are identical to the anonymous flow. What you gain by signing up is recoverability, usage analytics, and the ability to add commercial credit when the free tokens run out.
Where the key goes in n8n
There are two places you'll typically use it.
Native Jina AI node
n8n has a built-in Jina AI node. Drop it into your workflow, click the credential field, choose Create new credential, and paste the key into the API key field. n8n stores it encrypted and reuses it across any Jina AI node in your instance.
HTTP Request node (more common for AI Agent setups)
If you're attaching Jina as a tool to an AI Agent, you'll use the HTTP Request node:
- URL:
https://r.jina.ai/{{ $fromAI("url") }}for Reader, orhttps://s.jina.ai/?q={{ $fromAI("query") }}for Search. - Authentication: Generic Credential Type → Header Auth.
- Header credential: name =
Authorization, value =Bearer jina_yourkeyhere.
Sending the key as a header (rather than calling the endpoint with no auth) gets you the higher rate limit tied to your key — 100 RPM and 100K TPM on the free tier — instead of the lower IP-based limit anonymous calls fall back to.
What 10 million tokens actually covers
To put that allowance in perspective: a typical web page, once Reader has stripped it to clean markdown, runs roughly 1,000–5,000 tokens. So 10 million tokens works out to somewhere in the order of 2,000–10,000 page reads, depending on what you're scraping. For most n8n side projects and small-scale AI agents, that's months of usage before topping up becomes a question.
If you do hit the limit, top-ups start small and scale up. The current pricing (introduced May 2025) is per-token; the API KEY & BILLING widget shows the current package options.
Summary
That's the whole setup. One key, pasted once, and your OpenRouter-driven agents can read and search the web without being tied to any single model's online mode.