Provided by DataForSEO
Get the Organic Google Results and Their Positions for One Keyword (DataForSEO)
Get the organic Google results for one keyword in one location, each listing with its position number, ranked URL and description, plus the SERP feature blocks that occupy the page. Built for tracking where pages rank. Pay per query, with no plan.
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/organic/live/advanced on Glasser.glasser run -p dataforseo -e '/v3/serp/google/organic/live/advanced' -i '{"keyword":"coffee roasters seattle","language_code":"en","location_code":2840}' --endpoint-version 7Uses endpoint version 7. 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/organic/live/advanced","input":{"keyword":"coffee roasters seattle","language_code":"en","location_code":2840},"endpoint_version":7}'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 7; inspect the current price before running.
Step 2Try a specific example task
When you need to research the search landscape for running shoes in the US, you might look at the pages appearing in Google’s organic results to identify competitors worth reviewing.
Copy this prompt into your agent to review the ranking pages for this search.
Use dataforseo:/v3/serp/google/organic/live/advanced on Glasser.
For "running shoes" in the US, show the returned Google organic positions and ranking URLs.Endpoint structure
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"keyword"
],
"properties": {
"os": {
"type": "string"
},
"tag": {
"type": "string"
},
"url": {
"type": "string",
"description": "Direct search URL, parsed into the request by DataForSEO. Paging inside it is billed per page."
},
"depth": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Results to collect (1-200, default 10). DataForSEO bills each page of up to 10 results."
},
"device": {
"type": "string"
},
"target": {
"type": "string"
},
"keyword": {
"type": "string",
"pattern": "^(?:(?!(?:site|inurl|intitle|allintitle|allinurl|filetype|related|cache):).)*$",
"maxLength": 700,
"minLength": 1
},
"se_domain": {
"type": "string"
},
"search_param": {
"type": "string",
"description": "Extra search engine URL parameters. Paging inside them is billed per page by DataForSEO."
},
"language_code": {
"type": "string",
"pattern": "^[a-z]{2}$"
},
"language_name": {
"type": "string"
},
"location_code": {
"type": "integer",
"maximum": 99999999,
"minimum": 1
},
"location_name": {
"type": "string"
},
"find_targets_in": {
"type": "array"
},
"max_crawl_pages": {
"type": "integer",
"description": "Search result pages to crawl (max 100). DataForSEO bills each page crawled."
},
"remove_from_url": {
"type": "array"
},
"ignore_targets_in": {
"type": "array"
},
"target_search_mode": {
"type": "string",
"description": "With stop_crawl_on_match: stop when all targets (all) or any target (any) is found."
},
"location_coordinate": {
"type": "string"
},
"stop_crawl_on_match": {
"type": "array",
"description": "Keep crawling result pages until these targets appear. DataForSEO bills each page crawled."
},
"browser_screen_width": {
"type": "integer"
},
"calculate_rectangles": {
"type": "boolean",
"description": "Pixel position of each result on the page. DataForSEO charges extra for it ($0.002 on most engines)."
},
"browser_screen_height": {
"type": "integer"
},
"group_organic_results": {
"type": "boolean"
},
"load_async_ai_overview": {
"type": "boolean",
"description": "Also load AI overviews that load asynchronously. Adds $0.002, refunded by DataForSEO when there is none."
},
"people_also_ask_click_depth": {
"type": "integer",
"description": "Expand People Also Ask 1-4 levels. Each click adds $0.00015, refunded when the element is absent."
},
"browser_screen_resolution_ratio": {
"type": "integer"
}
},
"additionalProperties": false
}{
"keyword": "coffee roasters seattle",
"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
| Default-size input | Larger inputs and paid options vary with Provider usage. The same price with or without matching data. | $0.004 |
|---|---|---|
| Maximum per Run | The total charge will not exceed this amount. | $4.032 |
| 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 |