# Levirge Search vs DeepSeek Search & Fetch

DeepSeek launched a Search API and a Fetch API in October 2026
(`api.deepseek.com/v1/tools/search` and `/v1/tools/fetch`, $0.75 per 1,000
successful requests, 5 QPS per account, per
[its docs](https://api-docs.deepseek.com/guides/search/)). On 18 Oct 2026 we sent the same 5
queries and 6 URLs to both services. The table below is what came back.

## Fetch

| URL | DeepSeek fetch | Levirge fetch | Levirge route |
| --- | --- | --- | --- |
| `api-docs.deepseek.com/guides/search/` | 200 in 0.3 s, 10.3 KB markdown | 11.3 KB of markdown | direct |
| `api.github.com/repos/denoland/deno` | 200 in 10.9 s, but the body is markdown-escaped (`\{ \"id\"\: …`) and does not parse as JSON | Raw JSON; `select` returned just `full_name` and `stargazers_count` | direct |
| `reddit.com/r/rust/top/` | 404 "failed to fetch URL" | The live feed as markdown, 7 KB | direct |
| `realestate.com.au/rent/in-sydney,+nsw+2000/list-1` | 404 "failed to fetch URL" | Listings page: "Showing 1 – 25 of 1420 properties", prices and addresses | stealth |
| `medium.com/tag/programming` | 504 "Request timeout" after 30.3 s | Topic page as markdown, 8.4 KB | direct |
| `feeds.bbci.co.uk/news/rss.xml` | 404 "failed to fetch URL" | Feed parsed; `select` returned the channel title and item titles as JSON | direct |

DeepSeek's fetch backslash-escapes every body, prose included ("in\-house",
"search\."). An agent reading it gets noisy text; code expecting JSON or XML
gets a parse error.

## Search

All 5 queries returned 10 results on both sides. Top result for each:

| Query | DeepSeek #1 | Levirge #1 |
| --- | --- | --- |
| DeepSeek V4 release | `api-docs.deepseek.com/news/news260424/?trk=public_post_comment-text#1` | `api-docs.deepseek.com/updates/` |
| deno compile cross-platform static binary | `deno.com/blog/deno-compile-executable-programs` | `docs.deno.com/runtime/reference/cli/compile/` |
| NATS JetStream KV watch example | `pkg.go.dev/github.com/zoobzio/flux/nats#1` | `docs.nats.io/tutorials/key-value` |
| Sydney apartment rent prices 2026 | `abc.net.au/news/2026-08-24/…?utm_source=abc_news_web&…#1` | `realestate.com.au/news/sydney-median-rent-hits-record-800-a-week-…` |
| tokio vs smol async runtime | `yisu.com/ask/32185624.html#1`, then the same page over `http://` at #2 | `rustify.rs/articles/rust-async-runtimes-tokio-vs-async-std-2026` (async-std, not smol: off-target) |

DeepSeek search answered in about 0.55 s per query and returns useful extra
fields: a 0–3 `rerank_score`, an `authority` tier, a publish `date`, a ~700
character `summary`, and query operators (`site:`, `lang:`, `after:`,
`before:`). Its URLs keep tracking parameters and `#n` fragments, and it does
not remove duplicates.

## Where each fits

- **DeepSeek Search** is a fast, cheap ranked index with good metadata. If you
  already hold a DeepSeek key and mostly need search, it is a reasonable
  choice.
- **DeepSeek Fetch** returned clean content for 1 of 6 URLs. The GitHub API
  came back escaped and would not parse, and every protected site and feed
  failed.
- **Levirge Search** got 6 of 6 URLs. It escalates to a full browser when a
  site refuses plain requests, returns JSON and XML unchanged, and lets the
  agent `select` only the fields it needs. It runs as an MCP server, so it
  works in any agent client without extra code.

## Method

- Run on 18 Oct 2026. DeepSeek through its HTTP API with
  `count: 10`; Levirge through its MCP `search` (`limit: 10`) and `fetch`
  tools.
- One request per item on DeepSeek. DeepSeek errors are quoted from the
  response `error.message`.
- Results move day to day. Run the same queries and URLs yourself; the
  request bodies are in DeepSeek's docs and our install guides.
