Operated by Sourcelane✓ verified
Track your website's Google ranking for any keyword by country, city and device, with position changes, competitor positions and SERP features.
A Google rank tracking connector that performs live, location- and device-specific Google searches for given keywords to record keyword positions and SERP features. For each keyword it returns whether the site appears and its organic rank plus an absolute rank counting all page elements, the ranking page URL/title/description, any additional pages from the same site that appear, competitor domains and their positions and URLs, the top organic results (top-N), detected SERP features (people-also-ask, video, local pack, shopping, featured snippets, related searches, etc.), whether Google displayed an AI Overview and whether the site is cited in that overview (with source references), and metadata such as total results, search depth, location, device and timestamp. The connector also compares each run to the previous run for the same keyword/domain/location/device and reports position changes and movement labels (e.g., up, down, entered, dropped, unchanged, first-check).
Verified Oct 25, 10:11 PM
$0.01
per result
Up to 100 per call. Only pay for results returned; failed calls are refunded.
Daily rank tracking to monitor position changes over time
Local SEO monitoring for rankings in specific cities or regions
Competitor monitoring to see who outranks a site for target keywords
Tracking when and where a site is cited in Google’s AI Overview
Client reporting of rankings, changes, SERP features and competitor positions
Search queries to check, one per line.
The website whose Google position you want to track, e.g.
Optional: up to 10 competitor domains to report positions for on the same results pages.
Track local rankings for a specific city or region instead of the whole country, in the format City,Region,Co…
Optional settings
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"google-rank-tracker","params":{"keywords":["web scraping api"],"domain":"stripe.com"},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
keywords | array | required | Search queries to check, one per line (up to 1000). |
domain | string | required | The website whose Google position you want to track, e.g. example.com. Subdomains count as a match. |
competitors | array | optional | Optional: up to 10 competitor domains to report positions for on the same results pages. Adding competitors means every keyword is checked to the full depth. |
market | string | optional | Google country and interface language to search in. |
locationName | string | optional | Track local rankings for a specific city or region instead of the whole country, in the format City,Region,Country, e.g. Austin,Texas,United States. The language still comes from Country & language. |
device | string | optional | Check desktop or mobile results. |
depth | string | optional | How deep to look for your domain. Each block of 10 results is billed as one results page, but the search stops as soon as your domain is found (unless competitors are set), so you only pay for the pages actually checked. |
includeAiOverview | boolean | optional | Also load the AI Overview box shown above the results and report whether your domain is cited as a source. Billed as an extra event per keyword. |
Each result contains
| Field | Type | Description |
|---|---|---|
keyword | string | Keyword |
domain | string | Domain |
found | boolean | Ranking |
position | integer | Position |
absolutePosition | integer | — |
url | string | Ranking URL |
title | string | — |
description | string | — |
otherPositions | array | — |
previousPosition | null | Previous |
positionChange | null | Change |
movement | string | Movement |
previousCheckedAt | null | — |
inFeaturedSnippet | boolean | Featured Snippet |
featuredSnippetDomain | null | — |
aiOverviewShown | boolean | — |
inAiOverview | null | Cited in AI Overview |
aiOverviewSources | null | — |
competitors | array | — |
topResults | array | — |
serpFeatures | array | — |
totalResults | integer | — |
depthChecked | integer | — |
location | string | Location |
languageCode | string | — |
device | string | Device |
googleUrl | string | — |
checkedAt | string | — |
Pick your tool and connect in under a minute. Then just ask — for example: “For these 50 domains, find contact emails and what e-commerce platform they run on.”
Connect Claude
Web, desktop and mobile. One click, then confirm.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.usesourcelane.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://usesourcelane.com/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"google-rank-tracker","params":{"keywords":["web scraping api"],"domain":"stripe.com"},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://api.usesourcelane.com/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "google-rank-tracker",
"params": {"keywords":["web scraping api"],"domain":"stripe.com"},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…