Operated by Sourcelane✓ verified
Find YouTube channels by keyword-based niche queries and return a vetted, de-duplicated list of channels enriched with identity data, audience size and reach metrics, recent activity and engagement analytics, upload cadence, geographic tags, business contact emails and social/external links, and provenance information about which keyword and rank surfaced each channel. The connector searches channel listings for given topic phrases, analyzes recent uploads to compute current average views/likes/comments, engagement rate, shorts share and posting frequency, classifies channels into size tiers (nano, micro, mid, macro, mega), extracts creator-provided tags and topic categories, and harvests About-page links and labeled external contacts for outreach. Results can be filtered by audience size, country, recent activity window, and per-keyword limits; channels matched across multiple keywords are deduplicated and each match includes which search keyword found it and its search rank.
Verified Sep 28, 3:56 AM
$0.01
per channel
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://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"youtube-channel-finder","params":{"keywords":["vegan cooking"],"maxChannelsPerKeyword":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
keywords | array | required | Niche or topic keywords to search channels for, one per line (e.g. "home espresso", "vegan cooking", "personal finance for students"). |
maxChannelsPerKeyword | integer | optional | Maximum number of matching channels to return for each keyword after filters are applied. Set 0 for as many as possible (up to 1,000 per keyword). Capped at 100 per call. |
minSubscribers | integer | optional | Only return channels with at least this many subscribers. 0 = no minimum. |
maxSubscribers | integer | optional | Only return channels with at most this many subscribers. 0 = no maximum. Useful for targeting micro-influencers (e.g. 10,000-100,000). |
countries | array | optional | Optional two-letter country codes (US, GB, AU, DE,...). Only channels that publicly declare one of these countries are returned. Leave empty for all countries. |
lastUploadWithinDays | integer | optional | Only return channels that uploaded a video within this many days. 0 = no activity filter. |
includeRecentActivity | boolean | optional | Analyze each channel's 10 latest uploads to compute last upload date, uploads per month, average views, likes, comments, engagement rate, and Shorts share. Adds a little runtime per channel. |
includeLinks | boolean | optional | Read each channel's About panel to collect external links (website, Instagram, TikTok, X, Facebook, LinkedIn, Discord, Patreon) and extract business emails from the description. |
Each result contains
| Field | Type | Description |
|---|---|---|
channelId | string | Channel Id |
channelUrl | string | Channel Url |
handle | string | Handle |
title | string | Title |
description | string | Description |
thumbnailUrl | string | Thumbnail Url |
subscriberCount | integer | Subscriber Count |
totalViews | integer | Total Views |
videoCount | integer | Video Count |
avgViewsPerVideo | integer | Avg Views Per Video |
sizeTier | string | Size Tier |
country | string | Country |
joinedAt | string | — |
channelKeywords | array | — |
topicCategories | array | — |
externalLinks | array | — |
lastUploadAt | string | — |
recentVideosAnalyzed | integer | — |
uploadsPerMonth | number | — |
avgViewsRecent | integer | — |
avgLikesRecent | integer | — |
avgCommentsRecent | integer | — |
engagementRate | number | — |
shortsShareRecent | integer | — |
latestVideoTitle | string | — |
latestVideoUrl | string | — |
email | string | — |
allEmails | array | — |
website | null | — |
instagram | null | — |
tiktok | null | — |
twitter | null | — |
facebook | null | — |
linkedin | null | — |
discord | null | — |
patreon | null | — |
otherLinks | array | — |
searchKeyword | string | — |
searchRank | 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://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":"youtube-channel-finder","params":{"keywords":["vegan cooking"],"maxChannelsPerKeyword":5},"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": "youtube-channel-finder",
"params": {"keywords":["vegan cooking"],"maxChannelsPerKeyword":5},
"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…