Operated by Sourcelane✓ verified
A YouTube keyword research connector that expands one or more seed keywords into large sets of real YouTube search queries using YouTube's autocomplete service and multiple expansion methods (direct suggestions, alphabetic expansion, question/modifier expansion). For each suggested query the connector optionally measures competition by scraping the current top results and computing demand and competition metrics: estimated number of competing videos, aggregated top-10 view statistics (average, median, min, max), count of recent top results (freshness), count of distinct channels in top positions, proportion of Shorts in the top results, and metadata for the top video and the top-results list. These signals are combined into a single 0–100 opportunity score that balances demand, competition and freshness. The connector supports market targeting by country and language and can run as suggestions-only or include full competition measurement.
Verified Sep 28, 12:10 AM
$0.005
per keyword
Up to 100 per call. Only pay for results returned; failed calls are refunded.
| 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://cool-puffin-608.convex.site/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"youtube-keyword-research","params":{"seedKeywords":["sourdough bread"]},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
seedKeywords | array | required | Topics to research, one per line. Each seed is expanded through YouTube's own search suggestions. |
expansion | string | optional | How to expand each seed. Alphabet soup queries the seed followed by every letter a-z; Questions adds how/what/why prefixes and best/vs/tutorial suffixes; Both combines them for the widest list. |
maxKeywordsPerSeed | integer | optional | Keywords to keep for each seed, in the order YouTube suggests them. 0 = everything found, up to 2,000 per seed. |
includeCompetition | boolean | optional | Run a YouTube search for every keyword to capture the estimated result count, top-10 view statistics, freshness, unique channels and an opportunity score. Turn off for a suggestions-only run that is much faster. |
country | string | optional | Two-letter country code that controls which suggestions and rankings YouTube returns, e.g. US, GB, AU, DE. |
language | string | optional | Language code for suggestions and search, e.g. en, de, pt-BR. |
Each result contains
| Field | Type | Description |
|---|---|---|
keyword | string | Keyword |
seedKeyword | string | Seed Keyword |
source | string | Source |
suggestionRank | integer | Suggestion Rank |
wordCount | integer | Word Count |
isQuestion | boolean | Is Question |
estimatedResults | integer | Estimated Results |
top10AvgViews | integer | Top10 Avg Views |
top10MedianViews | integer | Top10 Median Views |
top10MinViews | integer | Top10 Min Views |
top10MaxViews | integer | Top10 Max Views |
top10VideosUnderOneYear | integer | Top10 Videos Under One Year |
top10UniqueChannels | integer | — |
top10ShortVideos | integer | — |
topVideoTitle | string | — |
topVideoChannel | string | — |
topVideoViews | integer | — |
topVideoUrl | string | — |
topVideos | array | — |
opportunityScore | integer | — |
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.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://cool-puffin-608.convex.site/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://cool-puffin-608.convex.site/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://cool-puffin-608.convex.site/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://cool-puffin-608.convex.site/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://sourcelane-amber.vercel.app/openapi.jsonOne POST. Pass maxResults to cap cost.
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-keyword-research","params":{"seedKeywords":["sourdough bread"]},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://cool-puffin-608.convex.site/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "youtube-keyword-research",
"params": {"seedKeywords":["sourdough bread"]},
"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…