An AI web search API with a predictable JSON contract.
Submit one query, optionally select a country or recency window, and request one to five result pages. The synchronous endpoint returns the stored dataset item as JSON.
Results preserve their displayed order and one based position. Missing optional values remain null rather than being generated or inferred.
Know which structured search fields can be returned.
Each successful query produces one dataset item. Optional fields reflect what was surfaced for that search and can be null.
| Fields | Purpose | Availability |
|---|---|---|
query, pages | Normalized query and successfully loaded page count | Every successful dataset item |
results[].title, results[].url | Displayed source title and absolute destination URL | Every returned listing |
results[].snippet, results[].kind | Available excerpt and organic or advertisement classification | Snippet can be null |
results[].domain, results[].position | Source hostname and one based rank in the returned set | Every returned listing |
results[].favicon, results[].sublinks | Domain favicon and displayed sitelinks with optional snippets | When surfaced |
relatedSearches | Related query suggestions for follow up retrieval | Array or null |
news[].title, news[].url, news[].source | Relevant surfaced news and publisher attribution | When surfaced |
news[].published | Relative publication text shown with a news item | When news is returned |
Plan the integration with a complete search response.
This representative response shows the complete top level contract and the optional nested structures. Real values and available fields vary by query.
[
{
"query": "recent advances in retrieval augmented generation",
"pages": 1,
"results": [
{
"title": "Retrieval augmented generation research",
"url": "https://example.org/research/retrieval-augmented-generation",
"snippet": "A summary of recent retrieval augmented generation research.",
"kind": "organic",
"domain": "example.org",
"favicon": "https://example.org/favicon.ico",
"sublinks": [
{
"title": "Research archive",
"url": "https://example.org/research",
"snippet": null
}
],
"position": 1
}
],
"relatedSearches": [
"retrieval augmented generation benchmarks"
],
"news": [
{
"title": "New retrieval research is published",
"url": "https://example.org/news/retrieval-research",
"source": "Example Research",
"published": "5 hours ago"
}
]
}
]Web search API versus generated answers and page extraction.
Curly returns ordered search listings rather than generated conclusions or full destination page content. This keeps retrieval separate from model reasoning and downstream extraction.
| Option | Starting input | Access | Best for |
|---|---|---|---|
| Curly free web search tool | One browser query | No account required | Testing one result page and inspecting JSON |
| Curly AI Web Search API | One query and up to five pages | Apify API token | Agents, applications, schedules, and webhooks |
| Generated answer API | Question or research task | Provider specific | Synthesized answers rather than ordered search listings |
| Full page extraction API | Known destination URLs | Provider specific | Article content after sources have been selected |
Move from one free test to an automated search workflow.
Test the response in the browser, then use Apify for authenticated requests, schedules, webhooks, integrations, and reusable datasets.
- Try one web search in the free browser tool
Inspect one result page as readable sources or raw JSON before creating an API integration.
- Review the SERP API Actor on Apify
Create a token, request up to five pages, schedule runs, or connect the resulting dataset.