SERP API | Search Engine Results Scraper | From $0.50/1K Pages
Pricing
from $0.50 / 1,000 successful search result pages
SERP API | Search Engine Results Scraper | From $0.50/1K Pages
SERP scraper with paid plans from $0.50 per 1,000 successful pages. Page events are charged only for pages that load and parse successfully. Get titles, URLs, snippets, sitelinks, related searches, and news with country, recency, and page-depth filters. Run via API or schedules.
Pricing
from $0.50 / 1,000 successful search result pages
Rating
0.0
(0)
Developer
Curly
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
Run one web query and turn up to five search result pages into structured JSON through Apify. Paid plans start at $0.50 per 1,000 successfully loaded pages; Free-plan users pay $0.70 per 1,000. Beyond the small Actor-start fee, page events are charged only when a page loads and parses successfully. Undelivered pages are not charged.
Get ranked titles, URLs, snippets, result types, domains, positions, favicons, sitelinks, related searches, and relevant news when available. Target a country or recency window, then use the dataset through the API, schedules, webhooks, and integrations. No search-engine account, cookies, browser extension, or proxy setup is required.
Why use this SERP scraper?
- Low pay-per-page pricing: paid plans start at $0.50 per 1,000 successfully loaded result pages; the Free-plan rate is $0.70 per 1,000.
- Pay only for delivered pages: beyond the Actor-start fee, unavailable or undelivered result pages do not create page charges.
- Core SERP data in one dataset: get titles, URLs, snippets, result types, domains, positions, favicons, sitelinks, related searches, and news when surfaced.
- Country, recency, and depth controls: target a supported country, choose a recent time window, and request one to five result pages.
- Automation ready: call the SERP API, schedule recurring searches, trigger webhooks, connect integrations, or export reusable datasets.
- No account or cookies: run searches without a search-engine account, connected browser session, cookies, extension, or proxy configuration.
Need only a quick one-off search? Use Curly's free LLM web search tool in your browser. Use this Actor for API access, scheduled searches, webhooks, integrations, and reusable datasets.
How to use it
- Enter one search query of up to 200 characters.
- Optionally select a country, recency window, and number of result pages.
- Click Start.
- Open Dataset to view or download the result as JSON, CSV, Excel, XML, or another supported format.
Only the query is required:
{"query": "site:openai.com API documentation","country": "de","time": "month","pages": 2}
| Field | Required | What it does |
|---|---|---|
query | Yes | One non-empty web search query, up to 200 characters. Search operators such as quotes and site: are supported. |
country | No | Targets one supported country. Leave empty to use the default search region. |
time | No | Limits results to the past day, week, month, or year. Leave empty for any time. |
pages | No | Requests 1 to 5 result pages. Default: 1. More pages can increase run time. |
Supported country codes:
ar, at, au, be, br, ca, ch, cn, de, dk, es, fi, fr, gb, gr, ie, il, in, it, jp, kr, mx, nl, no, nz, pl, pt, ru, se, sg, tr, us, za.
The Apify Console displays country names. API requests use the lowercase codes shown above. The Actor accepts exactly one query per run and only the documented input fields.
What search data can you extract?
The Actor returns:
- The submitted query, the requested region and recency, and the number of result pages returned
- Ordered result titles, absolute URLs, snippets, result types, domains, and positions
- Organic and advertisement result classification through
kind - Favicons derived from each result's domain
- Sitelinks with titles, URLs, and snippets when surfaced under a result
- Related search phrases when available
- Relevant news headlines, article URLs, sources, and relative publication times when available
Optional values remain null when they are not surfaced. The Actor does not invent missing snippets, sitelinks, related searches, favicons, or news.
Example output
Each successful query produces one dataset item:
Example result
{"query": "site:openai.com API documentation","country": "de","time": "month","pages": 1,"results": [{"title": "API Documentation - OpenAI API","url": "https://platform.openai.com/docs/","snippet": "Explore the OpenAI API documentation, guides, and examples.","kind": "organic","domain": "platform.openai.com","favicon": "https://platform.openai.com/favicon.ico","sublinks": [{"title": "API Reference","url": "https://platform.openai.com/docs/api-reference","snippet": "Complete reference for every endpoint and parameter."},{"title": "Guides","url": "https://platform.openai.com/docs/guides","snippet": "Step-by-step guides for building with the API."}],"position": 1},{"title": "OpenAI API","url": "https://openai.com/api/","snippet": null,"kind": "organic","domain": "openai.com","favicon": "https://openai.com/favicon.ico","sublinks": null,"position": 2}],"relatedSearches": ["OpenAI API","OpenAI documentation","ChatGPT API"],"news": [{"title": "OpenAI unveils a faster API platform","url": "https://openai.com/index/faster-api-platform/","source": "OpenAI","published": "2 hours ago"}]}
The results array preserves result order. A completed search with no listings still stores a dataset item with an empty results array. The returned pages value shows how many result pages were successfully loaded and parsed.
SERP API pricing
The Actor uses pay-per-event pricing with two parts:
| Charge | Free plan | Paying plans |
|---|---|---|
| Actor start | $0.001 per run | $0.0006 per run |
| Successfully loaded result page | $0.0007 per page | $0.0005 per page |
Paid plans start at $0.50 per 1,000 successfully loaded result pages; the Free-plan rate is $0.70 per 1,000. The small Actor-start charge applies once when a run starts. Page events are charged only for result pages that load and parse successfully. A successfully parsed page is billable even when it contains no listings; requested pages that cannot be delivered are not charged. Individual links inside the results array are never separate billing events.
An invalid, unavailable, or rate-limited run can still incur the Actor-start charge, but it emits no page events. If a later page becomes unavailable, the run completes with the earlier pages and charges only those successfully delivered pages. The Apify Store shows the applicable prices and maximum run cost before a run starts.
Free-plan users can submit one accepted run every 12 hours. Paying Apify users are not subject to this product limit.
Run through the API
Run the Actor synchronously and receive the stored dataset item:
curl -X POST \"https://api.apify.com/v2/acts/curly~simple-serp-api/run-sync-get-dataset-items?format=json" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \--data '{"query":"site:openai.com API documentation","country":"de","time":"month","pages":2}'
The same input works with the Apify API client, JavaScript and Python clients, schedules, webhooks, and integrations. Never place a real Apify token in public code or client-side applications.
For an interactive request builder and JavaScript and Python examples, see the Curly AI Web Search API documentation. For a one page browser test without an account, use the free LLM web search tool.
Common use cases
- Give AI agents and RAG pipelines current web sources with titles, snippets, and URLs
- Research topics, companies, products, competitors, or markets
- Monitor brand mentions and relevant news through scheduled searches
- Inspect ranked pages, domains, sitelinks, and related searches for SEO research
- Export search results to spreadsheets, databases, dashboards, or internal tools
- Trigger downstream workflows through the Apify API, schedules, webhooks, or integrations
Limitations
- Each run accepts one query of up to 200 characters and requests up to five result pages.
- The number and composition of results vary by query, region, recency filter, and availability.
- Country targeting influences regional results but does not guarantee that every returned page is hosted in that country.
- Snippets, favicons, sitelinks, related searches, and news are optional and can be
null. - News is returned only when surfaced for the query. It is not a complete news feed.
news[].publishedcontains relative text such as5 hours ago, not a normalized timestamp.- Search positions and page availability can change between runs.
Responsible use
You are responsible for using the Actor and its output in accordance with applicable laws, privacy requirements, copyright rules, contractual obligations, and website terms. Do not use the results for spam, harassment, surveillance, or other unlawful purposes.
FAQ
How much does this SERP API cost?
Paid plans cost $0.50 per 1,000 successfully loaded result pages, and the Free-plan rate is $0.70 per 1,000. Each run also has a small Actor-start charge: $0.0006 on paid plans or $0.001 on the Free plan.
What counts as a successful result page?
A page is successful when it loads and parses into the Actor's structured output. A successfully parsed page is billable even when its results array is empty. Unavailable or undelivered pages do not create page charges.
What data does the SERP scraper return?
The dataset includes ordered titles, URLs, snippets, result types, domains, positions, favicons, sitelinks, related searches, and relevant news when those fields are surfaced for the query.
Do I need a search-engine account or cookies?
No. The Actor does not require search-engine credentials, cookies, or a connected browser session.
How many queries and result pages can I request?
Each run accepts one query and one to five result pages. The number of listings returned can be lower because result availability varies.
Can I target a country or recent results?
Yes. Select one supported country and/or limit results to the past day, week, month, or year. Leave either filter empty to use the default region or any time.
Why did the Actor return fewer results than expected?
The pages input controls how many result pages the Actor requests, not a fixed listing count. Some queries or filters expose fewer pages or fewer listings.
Why are related searches, news, sitelinks, or snippets missing?
Those values are returned only when they are surfaced for the query. Missing optional values remain null rather than being inferred.
What happens when no results are found?
A valid search completes normally and stores a dataset item with an empty results array. An unavailable or rate-limited query does not create a dataset item.
How does billing work?
Each run has one small Actor-start charge. The Actor then charges one page event for every result page successfully loaded and parsed. Empty but successfully parsed result pages are billable; unavailable pages and individual links are not. If only part of the requested pagination succeeds, the Actor returns and charges only the completed pages.
Can I automate the SERP API?
Yes. Run it through the Apify API or JavaScript and Python clients, schedule recurring searches, trigger webhooks, connect integrations, and export datasets in supported formats.
Support
For questions, missing fields, or unexpected results, contact hello@trycurly.xyz.

