Try
5,000 searches
$9.25
$1.85/1K searches
- Wire it into one agent
- Same API as the largest pack
- Credits never expire
LLM search API · from $1.20/1K searches
A search API built for models, not for people. One call runs a live web search, reads the top pages and returns their text as Markdown, ready to drop into a prompt. No KYC — no ID, no selfie, no documents. Pay in crypto.
Quick answer
What is the best way to give an LLM live web search?
Give it a search API that returns sources it can read. LLMWebSearch is an AI search API for LLMs: one call runs a live web search and returns up to 20 ranked results, with the top 3 pages as Markdown. As of October 2026 it costs $9.25 for 5,000 searches and $1.20/1K searches at 1 million. No KYC; pay in crypto.
| Endpoint | POST https://llmwebsearch.com/api/v1/search (GET also works, with the same names) |
|---|---|
| Input | q, plus optional max_results, read, format, max_chars, topic, time_range, country, language, include_domains, exclude_domains |
| Output | Each result carries its position, title, URL, host, snippet and, when it was read, the page's main content as Markdown or plain text with its word count and publication date when known |
| Results | Results come from a live web search run at the moment of your call, in the order the search engine ranks them; nothing is served from an old index |
| Price | One credit pays for one search: up to 20 ranked results, with the pages of the first 3 read and returned as Markdown. Reading 4 to 10 pages makes it 2 credits. A call that ends in an error costs nothing |
| Answer | The API returns sources, not a written answer: your own model reads the pages, writes the reply and cites the URLs |
| Page access | Our reader respects robots.txt: it introduces itself as LLMWebSearch, follows the rules a site writes for it or for all robots, and leaves out the content of any page it is not allowed to read |
A list of links tells a model where to look, not what is there. A snippet of 150 characters rarely holds the date, the number or the step the user asked about. So most agents follow a search with a second tool that fetches each page, cleans it and trims it.
LLMWebSearch folds those steps into one call. The top pages come back as Markdown, with navigation, ads and cookie banners removed, and each one carries a word_count. Your agent spends its tokens on content, and you pay for one call instead of four.
Each result has its position, title, URL, host and snippet. The first read results also carry content and word_count, plus published_at when the page or the search engine gives a date. A content_status field says what happened to each page: ok, not_requested, blocked_by_robots, blocked_by_site_policy, target_refused, fetch_failed or fetch_timeout. The values below are illustrative.
{
"query": "rotate api key without downtime",
"created_at": "2026-10-22T09:14:03Z",
"credits_used": 1,
"results": [
{
"position": 1,
"title": "Rotating API keys",
"url": "https://docs.example.com/keys/rotation",
"host": "docs.example.com",
"snippet": "Create a second key, deploy it, then revoke the first one.",
"published_at": "2026-09-12",
"content_status": "ok",
"content": "# Rotating API keys\n\n## Zero-downtime rotation\n\n1. Create a second key\n2. Deploy it to every service\n3. Revoke the old key",
"word_count": 812
},
{
"position": 2,
"title": "A key rotation checklist for production",
"url": "https://blog.example.org/key-rotation",
"host": "blog.example.org",
"snippet": "Keep two keys active while services switch over.",
"content_status": "blocked_by_robots"
}
]
}Send the query as JSON with your key as a Bearer token. The Python example below asks for 5 results and reads the top 3, capped at 4,000 characters each. The quick start has the same call in Node.js and curl.
import os
import requests
resp = requests.post(
"https://llmwebsearch.com/api/v1/search",
headers={"Authorization": f"Bearer {os.environ['LLMWEBSEARCH_API_KEY']}"},
json={"q": "rotate api key without downtime", "max_results": 5, "read": 3, "max_chars": 4000},
timeout=60,
)
resp.raise_for_status()
for r in resp.json()["results"]:
print(r["position"], r["title"], r["url"], r["content_status"])Choose the country and language of the results, a time range (past day, week, month or year), web or news results, and domains to include or exclude.
time_range: day, week, month or year, for questions about recent events.topic: news returns articles with their dates; see the news search API.include_domains and exclude_domains: up to 20 each, to stay on official documentation or to drop a noisy site.country and language: the market whose results you want, such as de and de.max_chars: the most text you want per page, from 500 to 50,000 characters.Three is a good default, and it is what one credit covers. Most factual questions are settled by the first pages, and three sources let the model cross-check a figure. Raise read to 5 or 10 for research questions where sources disagree; that search costs 2 credits.
Set read to 0 when the agent only needs links, for example to pick which URL to open next. Then call /extract on the URLs it chose.
They come back as results without content. Our reader respects robots.txt: it introduces itself as LLMWebSearch, follows the rules a site writes for it or for all robots, and leaves out the content of any page it is not allowed to read. A site that sets Content-Signal: ai-input=no in its robots.txt keeps its pages out of your results' content.
When a site turns our reader away, the result comes back without content and with the site's status: we never solve CAPTCHAs, sign in to accounts or work around a block or a paywall. The content_status field tells your agent why a page is missing, so it can use the snippet or move to the next result. Site owners can read about our reader on the bot page.
5,000 searches cost $9.25, 25,000 searches cost $41.25 and 1,000,000 searches cost $1,200, as of October 2026. The dated comparison puts these prices next to 14 other APIs.
5,000 searches
$9.25
$1.85/1K searches
25,000 searches
$41.25
$1.65/1K searches
100,000 searches
$145
$1.45/1K searches
Best rate
1,000,000 searches
$1,200
$1.20/1K searches
In every plan: Top 3 pages read as Markdown · Country, language, time and domain filters · Failed calls not charged · Credits never expire
No. A SERP API returns the search page as data: links, snippets, ads and boxes. An AI search API also reads the pages and returns their text, so a model can use it directly. LLMWebSearch returns ranked results plus the content of the top pages.
No. Results come from a live web search run at the moment of your call, in the order the search engine ranks them; nothing is served from an old index. Our own work is reading and cleaning the pages and returning them in a form a model can use.
We do not train any model on your queries or on what the API returns, and we add no rule of our own against storing results; the rights of the sites whose pages you read still apply. Check each site's terms before you republish its text.
Any of them. The API returns JSON and Markdown, so it fits OpenAI, Claude, Gemini, DeepSeek, Llama or Qwen models. See the OpenAI function-calling tool and the MCP server.
From $1.20/1K searches · no KYC
Get an API key