# Search · Search API — neuraldeep.tech API

> One section of the machine-readable reference. All sections: https://neuraldeep.tech/llms.txt · everything in one file: https://neuraldeep.tech/llms-full.txt

Base URL: `https://api.neuraldeep.tech/v1`
Auth: `Authorization: Bearer $YOUR_KEY`

With the same key — search over Telegram and our TG-channel database, web search, reading a page by URL, and site crawling. Endpoints under `/v1/search/*`. Available on **all plans, including free** (except the API-only Coder plan), with a limit separate from chat.

Two limit buckets: **search** (TG + channel database + web + page reading) and **crawling** (separate — it's heavier). Current balance: `GET /v1/search/quota` or the "Search API" card in the dashboard. Every search response also carries a `quota` field with the day and month remainder. When exhausted you get `429` with a `quota_exceeded` body and `Retry-After`.

**Request and errors.** `POST /v1/search/web` needs a `query` field, `POST /v1/search/read` and `POST /v1/search/crawl` need `url`; the body must be a JSON object. A missing required field gives `400`. The response has to fit into 60 seconds. If search or page reading is temporarily unavailable you get `503`, on a failure on our side `502`. A key in Wallet mode with an empty balance gets `402`.

```bash
# our Telegram-channel database (vector + full-text)
curl "https://api.neuraldeep.tech/v1/search/tg?q=AI-agents&limit=5" \
  -H "Authorization: Bearer $YOUR_KEY"

# web search
curl https://api.neuraldeep.tech/v1/search/web \
  -H "Authorization: Bearer $YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"query":"latest news about LLMs","limit":3}'
```

```bash
# clean markdown of one page ("return_format":"text" for plain text)
curl https://api.neuraldeep.tech/v1/search/read \
  -H "Authorization: Bearer $YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'
```

```bash
# crawl a site (several pages)
curl https://api.neuraldeep.tech/v1/search/crawl \
  -H "Authorization: Bearer $YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","limit":3}'

# how much is left in both buckets
curl https://api.neuraldeep.tech/v1/search/quota \
  -H "Authorization: Bearer $YOUR_KEY"
```

```python
import httpx

r = httpx.get(
    "https://api.neuraldeep.tech/v1/search/tg",
    params={"q": "RAG in production", "limit": 5},
    headers={"Authorization": "Bearer $YOUR_KEY"},
)
data = r.json()
for item in data.get("results", []):
    print(item.get("channel"), "—", item.get("text", "")[:120])
print("remaining:", data.get("quota", {}).get("day"))
```

> Web search and crawling cost real provider money, so they have a separate (more modest) bucket. TG search over our database is cheap — the limit is more generous.
