Search Google
Run a Google search with type serp and get organic results, the local pack, people also ask and related searches as JSON, Markdown or HTML.
type: serp runs one Google search and returns the parsed results page. Use POST /task for one query and wait for the answer, or POST /job for a batch.
Minimal request
curl https://scraping-api.datafuel.ai/api/v1/task \
--request POST \
--header "Content-Type: application/json" \
--header "X-API-Key: df_key_your_key_here" \
--header "Idempotency-Key: serp-crm-us-2026-09-28" \
--data '{
"type": "serp",
"attributes": {
"query": "best crm for startups",
"country": "us",
"language": "en"
}
}'
The call blocks until the search is done. Set your client timeout to at least 120 seconds.
Target the results
| Attribute | Google parameter | Example |
|---|---|---|
query | q | best crm for startups, operators like site: work |
country | gl | us, gb, fr |
language | hl | en, en-gb, es-419 |
page | start | 2 for results 11 to 20 |
google_domain | host | google.co.uk |
location, uule, lat + lon | uule | Pick one. radius (meters, max 1000) needs one of them. |
Filters pass through as Google names them: tbs (dates, news), safe (active or off), cr and lr (limit to countries or languages), nfpr, filter, and uds (take it from filters[].uds of an earlier result).
proxy_type, proxy_country and the other proxy fields are ignored. Searches exit through DataFuel’s own pool, so country and language are how you pick the market.
Choose the output
result_format | result.data is |
|---|---|
json (default) | An object: organic, places (local pack), local_map, knowledge_graph (business panel: address, phone, hours, rating, review sources), inline_videos, inline_images (image pack: title, source, page link, image URL), questions (people also ask), related_searches, filters, plus total_results and showing_results_for when Google shows them. Sections missing from the page are left out. |
markdown | The same results as Markdown, ready for an LLM. |
html | The page Google served. |
{
"status": "completed",
"credits_used": 50,
"result": {
"data": {
"query": "best crm for startups",
"page": 1,
"organic": [
{
"position": 1,
"title": "The 10 best CRM tools for startups",
"url": "https://example.com/best-crm",
"snippet": "We tested 25 CRMs…"
}
],
"related_searches": [{ "query": "free crm for startups" }]
}
}
}
Many queries
A job takes queries instead of query, at least two. Every other attribute applies to each query, and each query is its own task.
{
"type": "serp",
"multithreaded": true,
"attributes": {
"queries": ["best crm for startups", "project management software"],
"country": "us",
"language": "en"
}
}
Poll and fetch it like any job: see Scrape a list of URLs.
Cost
50 credits per query, whatever the format. A search that fails is refunded. See Pricing and credits.