Provided by DataForSEO
Find businesses in Google Local Finder results with DataForSEO
Read the businesses Google's Local Finder lists for one keyword in one location, optionally filtered by a minimum rating or opening time. The Local Finder is the expanded local list behind the map pack; the rows are businesses. One request per call, priced by the vendor's own rate card; an empty result set is reported as no result.
How to run it
Step 1Set up
Once: paste this into your agent's chat. The Skill installs the CLI and logs in by itself. For an agent that cannot use a shell, connect it over MCP instead.
set up https://glasser.ai/SKILL.md
Show me how to use the DataForSEO endpoint /v3/serp/google/local_finder/live/advanced on Glasser.glasser run -p dataforseo -e '/v3/serp/google/local_finder/live/advanced' -i '{"keyword":"local nail services","language_code":"en","location_code":2840}' --endpoint-version 5Uses endpoint version 5. Inspect the current price before running. Install and log in first on Get Started.
Once per Run:
IDEMPOTENCY_KEY=$(uuidgen)Run it, and copy this same block to send it again:
curl -X POST https://api.glasser.ai/v1/runs \
-H "Authorization: Bearer gl_..." \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{"provider":"dataforseo","endpoint":"/v3/serp/google/local_finder/live/advanced","input":{"keyword":"local nail services","language_code":"en","location_code":2840},"endpoint_version":5}'Reuse the same Idempotency-Key to send it again: the second send is a read of the first Run. A new key is a new Run and a new Charge. Uses endpoint version 5; inspect the current price before running.
Step 2Try a specific example task
When you need to plan new content, you might organize keyword ideas into related topics to build a workable content plan.
Copy this prompt into your agent to group keyword ideas for your content plan.
Use dataforseo:/v3/serp/google/local_finder/live/advanced on Glasser.
Group the returned keywords into topics I can use to plan content.Endpoint structure
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"keyword",
"location_code",
"language_code"
],
"properties": {
"os": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"tag": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"depth": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"device": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"keyword": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"priority": {
"type": "integer"
},
"min_rating": {
"type": "integer"
},
"time_filter": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"language_code": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"location_code": {
"type": "integer"
},
"location_coordinate": {
"type": "string",
"maxLength": 2048,
"minLength": 1
}
},
"additionalProperties": false
}{
"keyword": "local nail services",
"language_code": "en",
"location_code": 2840
}This Endpoint publishes no output schema. You get the Provider's own response body, unchanged — we do not warrant a shape we cannot guarantee.
How pricing works
| Data returned or no match | The same price with or without matching data. | $0.002 |
|---|---|---|
| Provider error | The Provider failed to answer. | $0.00 |
| Timed out | The Run exceeded its time limit. | $0.00 |
| Internal failure | An internal error prevented completion. | $0.00 |