Web Search API for AI Agents
A real-time web search endpoint built for LLM tool calling. Predictable JSON output, country and date filters, and per-call credit billing — drop into OpenAI function calling, Claude tool use, or any agent framework.
Try Web Search Live
Enter your API key and run a real query against the live endpoint.
Don't have an API key?
Sign in to your account to create and manage your API keys.
Integration guide
Copy a snippet, replace your API key, run. Works in any HTTP client — examples below in cURL, JavaScript, and Python.
/api/search/webhttps://www.apipick.comSearch the public web in real time. Returns the top relevant pages with cleaned-up snippets ready for downstream LLMs.
querystringrequiredNatural-language search query
max_num_resultsintegeroptional1–5, default 5
relevance_thresholdnumberoptional0.0–1.0 quality filter
country_codestringoptionalISO country code (e.g. US, GB)
start_datestringoptionalISO date YYYY-MM-DD
end_datestringoptionalISO date YYYY-MM-DD
curl -X POST "https://www.apipick.com/api/search/web" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"query": "latest developments in quantum computing",
"max_num_results": 5,
"country_code": "US",
"start_date": "2026-01-01"
}'{
"query": "latest developments in quantum computing",
"results": [
{
"title": "Example result",
"url": "https://example.com/article",
"snippet": "Short excerpt of the page content…",
"source_type": "web",
"published_at": "2026-04-15",
"score": 0.92
}
],
"result_count": 1,
"credits_used": 15,
"remaining_credits": 99
}Rate limits
Throttling is per API key, sliding 60-second window. Hit the limit and you get a clean 429 with a Retry-After header.
60req/min
Per API key, per endpoint. Sliding 60-second window.
3concurrent
Max simultaneous in-flight requests per API key.
X-RateLimit-LimitMaximum requests allowed per minuteX-RateLimit-RemainingRequests remaining in the current windowX-RateLimit-ResetSeconds until the current window resetsRetry-AfterSeconds to wait before retrying (only on 429)HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 12
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded: 60 requests/minute per API key. Retry after 12s.",
"retry_after": 12
}Frequently Asked Questions
What's different from Google or Bing search APIs?
Responses are pre-shaped for LLM consumption: short snippets (no boilerplate), structured JSON, and a relevance score. There's no need for a separate scrape-and-clean step before feeding results to a model.
How are results ranked?
Results are ranked by semantic embeddings rather than keyword matching, so similar meanings rank close together even when wording differs. You can also pass relevance_threshold (0.0–1.0) to drop low-quality results.
Can I restrict to a specific country or date range?
Yes. Pass country_code (ISO 3166-1 alpha-2, e.g. US, JP) and/or start_date / end_date in YYYY-MM-DD format.
How do credits work for failed calls?
If the search fails (5xx or invalid query), no credits are deducted. You're only charged for successful 2xx responses.
Is there a tool schema for OpenAI function calling?
Yes. GET /api/search/web/tool-schema returns ready-to-paste OpenAI function and Claude tool use definitions.