Appearance
Google Local Finder SERP Fresh
Google Local Finder is the expanded view of local business results that appears when a user clicks "More places" from the local 3-pack in Google Search. Unlike Google Maps (which shows a map-based search), Local Finder is embedded within the main Google search interface and delivers a paginated list of local businesses ranked for the keyword.
How Local Finder Differs from Google Maps
| Feature | Google Local Finder | Google Maps |
|---|---|---|
| Entry point | "More places" from local 3-pack | google.com/maps or Maps app |
| Search basis | Organic Google Search context | "Search this area" on the map |
| Device support | Desktop + Mobile | Desktop + Mobile |
| Result depth | Paginated (fewer per page) | Up to 100 per call |
| Best use case | Rank tracking in local organic search | Local business discovery / competitive analysis |
Use Local Finder when you want to track rankings as they appear to users browsing the local pack within Google Search. Use Maps for map-based local search rankings.
Endpoint Summary
| Method | Endpoint |
|---|---|
| Live Advanced | POST /v3/serp/google/local_finder/live/advanced |
| Live HTML | POST /v3/serp/google/local_finder/live/html |
| Standard Task POST | POST /v3/serp/google/local_finder/task_post |
| Standard Task GET Advanced | GET /v3/serp/google/local_finder/task_get/advanced/{id} |
| Standard Task GET HTML | GET /v3/serp/google/local_finder/task_get/html/{id} |
| Tasks Ready | GET /v3/serp/google/local_finder/tasks_ready |
Device Support
| Device | Available OS |
|---|---|
| Desktop | Windows, macOS |
| Mobile | Android, iOS |
Parameters
Required
| Field | Type | Description |
|---|---|---|
keyword | string | Search query. Max 700 characters. |
location_code | integer | Location code. Required if location_name not set. Example: 2840 |
language_code | string | Language code. Required if language_name not set. Example: en |
Optional
| Field | Type | Default | Description |
|---|---|---|---|
depth | integer | — | Number of results per page. Billing varies by depth. |
device | string | desktop | desktop or mobile |
os | string | windows / android | OS for the device |
priority | integer | 1 | 1 = normal, 2 = high |
tag | string | — | Custom task identifier (max 255 chars) |
postback_url | string | — | Receive results via POST when complete |
pingback_url | string | — | Notify this URL on task completion |
location_name | string | — | Full location name (alternative to location_code) |
language_name | string | — | Full language name (alternative to language_code) |
Example Request
curl
bash
login="your_login"
password="your_password"
cred="$(printf ${login}:${password} | base64)"
curl --location --request POST \
"https://api.dataforseo.com/v3/serp/google/local_finder/live/advanced" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data '[{
"keyword": "emergency plumber",
"location_code": 1023191,
"language_code": "en",
"device": "desktop"
}]'Python
python
import requests
from requests.auth import HTTPBasicAuth
login = "your_login"
password = "your_password"
url = "https://api.dataforseo.com/v3/serp/google/local_finder/live/advanced"
payload = [{
"keyword": "emergency plumber",
"location_code": 1023191,
"language_code": "en",
"device": "desktop"
}]
response = requests.post(
url,
auth=HTTPBasicAuth(login, password),
json=payload
)
result = response.json()
for task in result.get("tasks", []):
for res in task.get("result", []):
for item in res.get("items", []):
print(
item.get("rank_absolute"),
item.get("title"),
item.get("address"),
item.get("rating", {}).get("value")
)Key Response Fields
| Field | Type | Description |
|---|---|---|
type | string | Item type (local_finder_element) |
rank_group | integer | Position within the Local Finder listing |
rank_absolute | integer | Absolute position across all results |
title | string | Business name |
address | string | Full formatted address |
phone | string | Phone number |
url | string | Business website |
rating.value | float | Average star rating |
rating.votes_count | integer | Number of ratings |
reviews_count | integer | Total review count |
category | string | Business category |
is_claimed | boolean | Whether listing is owner-verified |
check_url | string | URL to verify results in browser |
Cost Structure
Standard method pricing:
- Normal priority — base price
- High priority — additional charge
Depth above the default value increases cost proportionally. Check the DataForSEO pricing page for current rates.