Open in the interactive docs · markdown for agents: https://neuraldeep.tech/docs/search.md
Search · Search API
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.
# 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}'
# 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"}'
# 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"
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.
Reference sections (markdown for agents)
- Start · key, errors, quotas
- Text · chat
- Vectorization
- Reranking
- Transcription
- Image recognition
- Structured output
- Clients · agents
- Remaining limits · Limits API
- Search · Search API
- OCR · documents
- Images · Image API
- Music · Music API
- PII anonymization · PII Guard
- SpeechCore · STT
- Speech synthesis · TTS API
- Who spoke when · diarization
- Text decisions · FRIDA-Decisions, clef-flash
- Drift · overview
- Files + sandbox preview
- Your own tools, skills, MCP
- Tasks · proactive
- Memory · memory
- Isolation and security
- Agent settings
- Limits · errors
- Book · search and MCP
- Streaming
- SDK · Python / JS
- Privacy