# AI search API for LLMs: the results and the pages behind them

> AI search API for LLMs and agents: one call returns ranked web results plus the top pages as Markdown, from $1.20/1K searches. No KYC, pay in crypto.

- URL: https://llmwebsearch.com/ai-search-api/
- Last updated: 2026-10-22
- Publisher: LLMWebSearch (https://llmwebsearch.com)

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.

## The AI search API in short

| Attribute | Value |
| --- | --- |
| 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 |

## Why do models need more than a list of links?

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.

## What does a response look like?

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.

*Response (shortened)*

```json
{
  "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"
    }
  ]
}
```

## How do I call it from my code?

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](https://llmwebsearch.com/docs/) has the same call in Node.js and curl.

*Python*

```python
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"])
```

## Which filters can an agent use?

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](https://llmwebsearch.com/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.

## How many pages should an agent read per search?

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`](https://llmwebsearch.com/docs/extract/) on the URLs it chose.

## What happens with pages a site does not want read?

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](https://llmwebsearch.com/bot/).

## How much does the AI search API cost?

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](https://llmwebsearch.com/compare/web-search-api-pricing/) puts these prices next to 14 other APIs.

| Plan | Quantity | Price | Price per unit |
| --- | --- | --- | --- |
| Try | 5,000 searches | $9.25 | $1.85/1K searches |
| Builder | 25,000 searches | $41.25 | $1.65/1K searches |
| Production | 100,000 searches | $145 | $1.45/1K searches |
| Volume | 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

**Before you pay**

- Minimum top-up $25. Top up once in crypto, then buy any plan from your balance.
- Money on your balance does not expire and buys search credits whenever you want. When a pack is cheaper than the minimum top-up, the part you paid only to reach that minimum comes back to you on request within 30 days of payment, in USDT or USDC, provided it is still unspent. The rest of a balance is not returned unless the law requires it.
- Credited once your payment is checked on the blockchain. Typical network confirmation time: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min

## AI search API questions

### Is an AI search API the same as a SERP API?

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.

### Does LLMWebSearch have its own search index?

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.

### Can I store the results?

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.

### Which models does it work with?

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](https://llmwebsearch.com/docs/openai/) and the [MCP server](https://llmwebsearch.com/docs/mcp/).

---

LLMWebSearch: LLMWebSearch is a web search API for AI agents that returns ranked results with the content of the top pages in Markdown, paid in crypto with no ID upload. Prepaid credits from $1.20/1K searches never expire. No KYC — no ID, no selfie, no documents. Pay in crypto.
