Sourcelane

TikTok & Instagram Reels Trends Scraper

TikTok

Operated by Sourcelane✓ verified

A scraper that collects and ranks trending short-form video content from TikTok and Instagram Reels, producing structured, row-oriented trend records that combine platform, source and region context with post metadata, engagement metrics, audio metadata, hashtags and creator statistics. It fetches country-specific trending feeds for TikTok and a global Reels feed for Instagram, extracts items’ URLs, captions, timestamps, content type and media references, captures views/likes/comments/shares/saves where available, captures audio title/author and whether the sound is original, and returns creator-level data including follower and lifetime-like counts plus top recent videos for discovered creators. The connector performs repeated requests to streaming trending feeds, removes duplicates across batches, ranks items in feed order, supports mixed runs across platforms and regional filters, and operates without requiring login credentials, cookies or accounts.

Verified Sep 28, 3:55 AM

$0.003

per trend

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://api.usesourcelane.com/v1/call \
  -H "Authorization: Bearer sl_live_your_agent_key" \
  -H "Content-Type: application/json" \
  -d '{"listing":"tiktok-instagram-trends-scraper","params":{"sources":["tiktokVideos","instagramReels"]},"maxResults":10}'

Request params

FieldTypeRequiredDescription
sourcesarrayrequiredPick one or more trend feeds. Every row has the same columns, so a mixed run exports cleanly to CSV or Google Sheets. Use the 'source' column to split them.
tiktokRegionsarrayoptional2-letter country codes (US, GB, JP, BR, DE,...). The feed is fetched once per country, as a viewer in that country would see it. Each country gets its own trend rank.
maxTiktokVideosPerRegionintegeroptionalStop after this many unique trending videos for each country. 0 = keep going until the feed stops returning new videos (bounded by the stop settings below).
includeTiktokPhotoPostsbooleanoptionalTikTok's trending feed mixes in photo slideshows. Untick to keep only videos.
onlyLocalTiktokVideosbooleanoptionalThe feed for a country also contains global hits. Tick this to keep only videos whose creator is registered in the selected country (see the contentCountry column). Fewer results per request. Local-only videos are billed at a higher per-result rate (see the Pricing tab), because many more requests are needed per kept video.
maxInstagramReelsintegeroptionalStop after this many unique trending Reels. Each request returns a small batch that overlaps earlier ones, so the connector keeps asking and removes duplicates. 0 = keep going until no new Reels show up.
maxCreatorsintegeroptionalStop after this many popular creators. 0 = all pages available for your filters.
creatorCountrystringoptionalOnly creators based in this country. Leave on 'Any country' for a global list.
audienceCountrystringoptionalOnly creators whose followers are mainly in this country. Useful for finding creators who reach your market.
creatorFollowerRangestringoptionalOnly creators within this follower range.
creatorSortBystringoptionalHow popular creators are ranked.
stopAfterCallsWithoutNewintegeroptionalTrending feeds return a fresh, overlapping batch on every request, and later requests repeat more and more earlier items. A feed stops once this many requests in a row add fewer than 5 new items.
maxCallsPerFeedintegeroptionalHard cap on requests for each feed (each TikTok country, the Reels feed and the creators list). Keeps runs with a 0 limit bounded.

Each result contains

FieldTypeDescription
typestring—
platformstringPlatform
sourcestring—
regionnullCountry
trendRankintegerRank
scrapedAtstringScraped
idstring—
urlstringURL
captionstringCaption
hashtagsarrayHashtags
contentTypestring—
postedAtstringPosted
durationSecondsnull—
viewsnullViews
likesintegerLikes
commentsintegerComments
sharesnullShares
savesnull—
authorUsernamestringAuthor
authorNamenull—
authorIdstring—
authorUrlstring—
authorAvatarUrlstring—
authorFollowersnull—
authorTotalLikesnull—
audioTitlenullAudio
audioAuthornull—
audioIdnull—
audioIsOriginalnull—
coverUrlstringCover
videoUrlstring—
contentCountrynull—
topVideosarray—

Use TikTok & Instagram Reels Trends Scraper from Claude, ChatGPT or Cursor

Pick your tool and connect in under a minute. Then just ask — for example: “What are the top 25 TikTok videos for 'protein coffee' this week, and what hooks do they use?”

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://api.usesourcelane.com/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://api.usesourcelane.com/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://api.usesourcelane.com/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://api.usesourcelane.com/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://usesourcelane.com/openapi.json

REST

One POST. Pass maxResults to cap cost.

curl
curl -X POST https://api.usesourcelane.com/v1/call \
  -H "Authorization: Bearer sl_live_your_agent_key" \
  -H "Content-Type: application/json" \
  -d '{"listing":"tiktok-instagram-trends-scraper","params":{"sources":["tiktokVideos","instagramReels"]},"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://api.usesourcelane.com/v1/call",
    headers={"Authorization": "Bearer sl_live_your_agent_key"},
    json={
        "listing": "tiktok-instagram-trends-scraper",
        "params": {"sources":["tiktokVideos","instagramReels"]},
        "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…