[ search · endpoint ]Search API · Web

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.

15 credits / call60 req / minPOST /api/search/web
[ 01 · live ]

Try Web Search Live

Enter your API key and run a real query against the live endpoint.

auth · x-api-key

Don't have an API key?

Sign in to your account to create and manage your API keys.

5 sample queries — click to load
[ 02 · integrate ]

Integration guide

Copy a snippet, replace your API key, run. Works in any HTTP client — examples below in cURL, JavaScript, and Python.

spec
POST/api/search/web
base
https://www.apipick.com

Search the public web in real time. Returns the top relevant pages with cleaned-up snippets ready for downstream LLMs.

parameters
querystringrequired

Natural-language search query

max_num_resultsintegeroptional

1–5, default 5

relevance_thresholdnumberoptional

0.0–1.0 quality filter

country_codestringoptional

ISO country code (e.g. US, GB)

start_datestringoptional

ISO date YYYY-MM-DD

end_datestringoptional

ISO 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"
}'
● 200 · response
{
  "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
}
[ 03 · limits ]

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.

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
X-RateLimit-LimitMaximum requests allowed per minute
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetSeconds until the current window resets
Retry-AfterSeconds to wait before retrying (only on 429)
● 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
}
[ faq ]

Frequently Asked Questions

01

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.

02

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.

03

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.

04

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.

05

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.