Web search
Add one tool entry and any model searches the web during its answer, with citations in the shape your endpoint already speaks. Models with their own search use it on their maker's endpoint, and every other tool-calling model gets Opper's engine. Pin Jina or Searchbase and the query and every page it reads stay in the EU. Each search shows up in your traces with its cost.
Add web search on Opper
Set up with agents
Paste this into your coding agent (Claude Code, Cursor, Codex, and more) and it will set up and build with Opper for you.
In your code
curl https://api.opper.ai/v3/compat/chat/completions \-H "Authorization: Bearer $OPPER_API_KEY" \-H "Content-Type: application/json" \-d '{"model": "berget/kimi-k3","messages": [{"role": "user", "content": "What changed in the EU AI Act this week?"}],"tools": [{"type": "opper:web_search", "engine": "jina", "freshness": "w"}]}'
Where searches run
auto uses the model's own search when the route has one and you call it on its maker's endpoint (Messages for Claude, Responses for OpenAI, generateContent for Gemini), and falls back to Jina everywhere else. Pin an engine when your searches have to stay in one region. Prices per search are on the docs page.
| Engine | Region | Citations | Pin it with |
|---|---|---|---|
| EU | Per answer block | "engine": "jina" | |
| EU | Per answer block | "engine": "searchbase" | |
| US | Per answer block | "engine": "exa" | |
| Global | Per answer block | "engine": "linkup" | |
| Provider | Per sentence | "engine": "native" | |
| Provider | Per sentence | "engine": "native" | |
| Provider | Per sentence | "engine": "native" | |
| Provider | Per sentence | "engine": "native" | |
| Provider | Per sentence | "engine": "native" |
Add web search to these models
Step-by-step setup for adding web search to each of these models through Opper.
FAQ
Web search FAQ
Do I need a separate search API if my model already has web search?
+
Where does the search run, and does anything leave the EU?
+
How is a search billed, and where do I see it?
+
Can I limit results to certain domains or recent pages?
+
More tools on Opper
Web fetch
Turn any URL into clean markdown a model can read. Runs on Jina in the EU.
/v3/tools/web/fetchCode execution
Let the model run code in a sandbox and use the result. Built in on OpenAI, Gemini and Claude models.
provider toolRerank
Reorder search results by relevance before they reach the model. Cohere Rerank and BGE.
/v3/rerank