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.
API Integration Guide
Learn how to integrate this API into your applications with code examples and detailed documentation.
/api/search/webBase URL
https://www.apipick.comFull Endpoint
https://www.apipick.com/api/search/webqueryNatural-language search query
max_num_results1–5, default 5
relevance_threshold0.0–1.0 quality filter
country_codeISO country code (e.g. US, GB)
start_dateISO date YYYY-MM-DD
end_dateISO date YYYY-MM-DD
cURL Request
curl -X POST "https://www.apipick.com/api/search/web" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"query": "Anthropic Claude API pricing 2026",
"max_num_results": 5,
"country_code": "US",
"start_date": "2026-01-01"
}'YOUR_API_KEY with your actual API keyJSON Response
{
"query": "Anthropic Claude API pricing 2026",
"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
}✓Best Practices
- • Always include x-api-key header
- • Always handle errors gracefully
- • Validate input data before sending
- • Use HTTPS for secure communication
- • Cache responses when appropriate
ℹResponse Headers
- • Content-Type: application/json
- • x-api-key: Required for authentication
- • Status codes: 200 (success), 400 (error), 401 (unauthorized)
- • No rate limiting applied
Rate Limits
Request Rate
60req / min
Per API key, per endpoint. Sliding 60-second window.
Concurrency
3concurrent
Max simultaneous in-flight requests per API key.
Response Headers
429 Too Many Requests
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?
Valyu's underlying search uses semantic embeddings rather than keyword matching, so results are ranked by meaning. 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 upstream 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.