Home / Tools / Google Maps Geo-Grid Rank Tracker

Rank tracking & site SEO

Google Maps Geo-Grid Rank Tracker

See where a business ranks on Google Maps across an N x N grid around it: rank per pin, average rank, share of local voice, top competitors per pin, a heatmap image and changes since the last run. $0.008 per grid point, a 7x7 scan costs $0.40.

Run it on Apify API & MCP

Sample output

KeywordPinDistance (km)RankIn top 3
gutter cleaning12.8320+no
gutter cleaning2219no
gutter cleaning32.8317no

Real rows from a test run (Oct 19, 2026), 5 of 18+ fields shown.

Full JSON of one real output row (4 rows in the example dataset)
{
  "row_type": "pin",
  "keyword": "gutter cleaning",
  "business_name": "Boise Roofing and Gutters",
  "pin": 1,
  "row": 1,
  "col": 1,
  "latitude": 43.6142412,
  "longitude": -116.2374765,
  "distance_km": 2.83,
  "rank": null,
  "found": false,
  "in_top3": false,
  "rank_label": "20+",
  "previous_rank": null,
  "rank_change": null,
  "top_results": [
    {
      "rank": 1,
      "name": "Sunshine Window Cleaning Inc.",
      "rating": 4.9,
      "reviews": 1041,
      "category": "Gutter cleaning service",
      "domain": "www.pleasecleanmywindows.com",
      "cid": "7460997869796466936"
    },
    {
      "rank": 2,
      "name": "Squeekers Clean",
      "rating": 5,
      "reviews": 40,
      "category": "Gutter cleaning service",
      "domain": "squeekersclean.com",
      "cid": "5581837008874454534"
    },
    {
      "rank": 3,
      "name": "Copper Cloud Rain Gutters",
      "rating": 5,
      "reviews": 1069,
      "category": "Gutter cleaning service",
      "domain": "coppercloudraingutters.com",
      "cid": "11005663889604779170"
    }
  ],
  "results_checked": 20,
  "scraped_at": "2026-10-19T02:35:51Z"
}

Output fields

From the Actor's dataset schema. Every row has the same flat shape, so it drops straight into a spreadsheet, a database or an agent's context.

FieldTypeDescription
row_typestringpin = rank at one grid point; summary = one row per keyword with averages, competitors and the heatmap
keywordstringKeyword checked
business_namestringTracked business
pinintegerpin rows: point number (row by row from the north-west corner)
rowintegerpin rows: grid row (1 = north)
colintegerpin rows: grid column (1 = west)
latitudenumberpin rows: latitude of the point
longitudenumberpin rows: longitude of the point
distance_kmnumberpin rows: distance from the grid centre
rankintegerpin rows: Google Maps rank of the business at this point (null = not in the results checked)
foundbooleanpin rows: the business appears in the results
in_top3booleanpin rows: rank 1-3 (the local pack)
rank_labelstringpin rows: rank as text, e.g. "4" or "20+"
previous_rankintegerpin rows: rank in the previous run
rank_changeintegerpin rows: positions gained since the previous run (positive = better)
top_resultsarraypin rows: top 3 businesses at this point
results_checkedintegerpin rows: results returned at this point
business_place_idstringsummary: place ID of the tracked business
business_cidstringsummary: CID of the tracked business
grid_sizeintegersummary: points per side
radius_kmnumbersummary: grid radius
zoomintegersummary: map zoom
center_latitudenumbersummary: grid centre latitude
center_longitudenumbersummary: grid centre longitude

Pricing

Pay per result, billed by Apify. No subscription and no minimum. Discount tiers apply automatically on paid Apify plans.

EventFree planBronzeSilverGold
Grid point main
Charged once per keyword per grid point checked.
$0.008$0.0075$0.007$0.006
Business lookup
Charged once per run when the Actor finds the business by name.
$0.005$0.005$0.005$0.005

Examples on the Free plan: 100 grid points = $0.80, 1,000 grid points = $8, 10,000 grid points = $80. Apify's Free plan includes $5 of monthly usage credit. Prices read from the Apify API at build time (2026-10-28).

Example input

This is the prefilled input on the Store page. Keep it and click Start to see real data in seconds.

{
  "keywords": [
    "roofer"
  ],
  "businessName": "Boise Roofing and Gutters",
  "businessLocation": "Boise, ID",
  "gridSize": 5,
  "radiusKm": 3
}

Use it from code, no-code or an AI agent

cURL (one request, returns rows)
curl -X POST \
  "https://api.apify.com/v2/acts/wrenfield-data~google-maps-grid-rank-tracker/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords": ["roofer"], "businessName": "Boise Roofing and Gutters", "businessLocation": "Boise, ID", "gridSize": 5, "radiusKm": 3}'
Python
# pip install apify-client
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("wrenfield-data/google-maps-grid-rank-tracker").call(
    run_input={
    "keywords": [
        "roofer"
    ],
    "businessName": "Boise Roofing and Gutters",
    "businessLocation": "Boise, ID",
    "gridSize": 5,
    "radiusKm": 3
},
    max_total_charge_usd=1.00,  # hard cap for this run
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row)
JavaScript / Node
// npm i apify-client
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('wrenfield-data/google-maps-grid-rank-tracker').call({
  "keywords": [
    "roofer"
  ],
  "businessName": "Boise Roofing and Gutters",
  "businessLocation": "Boise, ID",
  "gridSize": 5,
  "radiusKm": 3
}, { maxTotalChargeUsd: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
MCP (Claude, Cursor, VS Code, any MCP client)
{
  "mcpServers": {
    "wrenfield-google-maps-grid-rank-tracker": {
      "url": "https://mcp.apify.com?tools=wrenfield-data/google-maps-grid-rank-tracker"
    }
  }
}

Remote MCP server hosted by Apify. Sign in with OAuth on first use, or send Authorization: Bearer <APIFY_TOKEN>. The tool appears as wrenfield-data--google-maps-grid-rank-tracker. More client setups on the MCP page.

n8n, Make, Zapier

Use the official Apify node or app, pick Run Actor, enter wrenfield-data/google-maps-grid-rank-tracker and paste the input JSON above. Then read the run's dataset items. Ready-made n8n workflows are on the n8n templates page.

For AI agents and code generators: this page as Markdown · OpenAPI 3 spec (run, run-sync and dataset endpoints).

FAQ

How much does Google Maps Geo-Grid Rank Tracker cost?

$0.008 per grid point on the Apify Free plan ($8 per 1,000), billed per result by Apify with no subscription. Plus $0.005 per business lookup. Higher Apify plans get the discounted tiers shown in the pricing table. You can cap any run with a maximum cost.

Where does the data come from?

From a licensed Google Maps results provider (DataForSEO) that runs each search from the exact coordinates of the pin. No logins, no browser, no proxies on your side.

How does it find my business in the results?

By Google place ID or CID when known (most reliable), otherwise by website domain or exact business name.

Where is the history stored?

In a named key-value store maps-grid-rank-history in your own Apify account. Turn off Compare with the last run to skip it.

Related tools

Google Rank Tracker Launching soon

Positions, changes, featured snippets and AI Overview citations.

SEO Toolkit All-in-One

Domain overview, ranked keywords, backlinks and SERPs in one API.

Bulk PageSpeed Checker

Lighthouse scores and Core Web Vitals pass/fail for many URLs.

On-Page SEO Checker Launching soon

Bulk page audit: SEO score, ranked issues with fixes, title, meta, H1 and schema checks.

SEO Agency Report

White-label SEO and AI-visibility audit as HTML, PDF and JSON, per client.

Compare and plan

Try Google Maps Geo-Grid Rank Tracker now

Open it on Apify, keep the prefilled example and click Start. The Apify Free plan includes $5 of monthly credit, no card needed.

Open on Apify