Sourcelane

YouTube Rank Tracker

YouTube

Operated by Sourcelane✓ verified

A YouTube rank-tracking connector that finds where specified videos and channels rank in YouTube search for given keywords, by country and language, and reports position, presence, position history and competitor context. It scans YouTube search results (counting organic video results in the order shown), supports optional inclusion of Shorts, treats a channel target by identifying its best-ranked video and enumerating all its positions, and compares each run against the previous check to compute movement and numeric position change. The connector also extracts competing results for each keyword with metadata such as title, channel, views and upload age, and provides search-context information including estimated total results, how many results were scanned, and the timestamp and locale for each check. It operates without requiring YouTube API credentials and returns one record per keyword × tracked video/channel containing ranking, presence, multi-position listings, matched-video metadata, competitor listings, movement since last check, and search-context metadata.

Verified Sep 28, 12:10 AM

$0.005

per keyword rank

Up to 100 per call. Only pay for results returned; failed calls are refunded.

What people use it for

Trust & reliability

7d uptime trend
WindowUptimeSuccess ratep50p95Calls
24h————0
7d————0
30d————0

Calling contract

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://cool-puffin-608.convex.site/v1/call \
  -H "Authorization: Bearer sl_live_your_agent_key" \
  -H "Content-Type: application/json" \
  -d '{"listing":"youtube-rank-tracker","params":{"keywords":["espresso machine review","best espresso machine"],"targets":["@jameshoffmann"]},"maxResults":10}'

Request params

FieldTypeRequiredDescription
keywordsarrayrequiredSearch terms to check rankings for, one per line (e.g. 'espresso machine review'). Each keyword is searched once and every target is matched against the same results.
targetsarrayrequiredYour videos and/or channels, one per line. Accepts video URLs or IDs (youtube.com/watch?v=..., youtu.be/..., /shorts/...) and channel URLs, @handles or channel IDs (UC...). A channel matches any of its videos in the results; its best position is reported.
countrystringoptionalCountry whose YouTube search results you want to see. Searches are made as a viewer located in this country, because YouTube ranks results differently by location.
languagestringoptionalYouTube interface language code, e.g. en, de, es or pt-BR. This changes rankings noticeably, so keep it the same between runs you want to compare.
searchDepthintegeroptionalHow many search results to scan per keyword when looking for your targets. Targets ranking beyond this are reported as not found. Max 200.
includeShortsbooleanoptionalCount Shorts (including the Shorts shelves shown inside search results) as ranked positions. When off, positions count regular video results only, which is how most people read YouTube rankings.
topCompetitorsintegeroptionalHow many of the top-ranking videos to include with each row so you can see who outranks you. Set 0 to leave them out.

Each result contains

FieldTypeDescription
keywordstringKeyword
targetstringTarget
targetTypestringType
targetIdstring—
foundbooleanFound
positionintegerPosition
allPositionsarray—
matchedVideoIdstring—
matchedTitlestringMatched video
matchedUrlstringURL
matchedIsShortboolean—
viewsintegerViews
channelNamestringChannel
channelIdstring—
previousPositionnullPrevious
positionChangenullChange
previousCheckedAtnull—
movementstringMovement
countrystring—
languagestring—
includeShortsboolean—
searchDepthinteger—
scannedResultsintegerScanned
estimatedResultsinteger—
topCompetitorsarray—
checkedAtstringChecked at

Use YouTube Rank Tracker from Claude, ChatGPT or Cursor

Pick your tool and connect in under a minute. Then just ask — for example: “Get the transcript of this video and turn it into a blog outline: <url>”

Connect Claude

Web, desktop and mobile. Paste one URL.

  1. 1Copy your personal connector URL
  2. 2In Claude open Settings → Connectors → Add custom connector
  3. 3Paste the URL and click Add — done
Manual setup (config files, REST, Python) +

Claude Code

Adds the Sourcelane MCP server with your key as a header.

terminal
claude mcp add --transport http sourcelane https://cool-puffin-608.convex.site/mcp \
  --header "Authorization: Bearer sl_live_your_agent_key"

Claude Desktop (config file)

Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.

claude_desktop_config.json
{
  "mcpServers": {
    "sourcelane": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://cool-puffin-608.convex.site/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer sl_live_your_agent_key"
      }
    }
  }
}

Cursor & Windsurf

Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).

mcp.json
{
  "mcpServers": {
    "sourcelane": {
      "url": "https://cool-puffin-608.convex.site/mcp",
      "headers": {
        "Authorization": "Bearer sl_live_your_agent_key"
      }
    }
  }
}

VS Code

Save as .vscode/mcp.json. VS Code prompts for your key once.

.vscode/mcp.json
{
  "servers": {
    "sourcelane": {
      "type": "http",
      "url": "https://cool-puffin-608.convex.site/mcp",
      "headers": {
        "Authorization": "Bearer ${input:sourcelane-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "sourcelane-key",
      "description": "Sourcelane agent key",
      "password": true
    }
  ]
}

ChatGPT Custom GPT (Actions)

Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.

OpenAPI schema URL
https://sourcelane-amber.vercel.app/openapi.json

REST

One POST. Pass maxResults to cap cost.

curl
curl -X POST https://cool-puffin-608.convex.site/v1/call \
  -H "Authorization: Bearer sl_live_your_agent_key" \
  -H "Content-Type: application/json" \
  -d '{"listing":"youtube-rank-tracker","params":{"keywords":["espresso machine review","best espresso machine"],"targets":["@jameshoffmann"]},"maxResults":10}'

Python, LangChain, CrewAI, OpenAI Agents SDK…

Wrap the REST call as a tool, or point an MCP client at the endpoint.

python
import requests

res = requests.post(
    "https://cool-puffin-608.convex.site/v1/call",
    headers={"Authorization": "Bearer sl_live_your_agent_key"},
    json={
        "listing": "youtube-rank-tracker",
        "params": {"keywords":["espresso machine review","best espresso machine"],"targets":["@jameshoffmann"]},
        "maxResults": 10,
    },
    timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])

Reviews

—

0 reviews

5
0
4
0
3
0
2
0
1
0

Leave a review

Loading reviews…