Operated by Sourcelane✓ verified
Scrape TikTok videos tagged at any place: search by name or paste place URLs. Get views, likes, captions, authors, music plus address, category and GPS.
A scraper that finds TikTok videos tagged at a specified place (landmarks, restaurants, hotels, shops, parks, whole cities) by searching place names or using TikTok place URLs, and returns structured records for each video containing video metadata (caption, hashtags, created timestamp, duration, cover image, language, slideshow flag), engagement metrics (views, likes, comments, shares, saves), creator profile data (username, display name, verification, follower count, total likes), music information (sound ID/title/artist/original sound flag), and place metadata (place name, address, city, country, category/subcategory, GPS coordinates and total video count). Supports a mode to return matching places without videos, configurable limits for how many places to consider per query and how many videos to collect per place, and operates without requiring a TikTok login. Video ordering follows TikTok’s place page ordering (mostly by popularity).
Verified Oct 25, 10:11 PM
$0.00025
per video
Up to 100 per call. Only pay for results returned; failed calls are refunded.
Restaurant, hotel and venue marketing
Monitor visitor posts about a location and competitors
Influencer discovery and local creator outreach
Find creators who film at a venue, city or attraction, ranked by followers and views
Tourism and destination research
Measure buzz around landmarks, cities and attractions and compare places by total video count
Brand and franchise monitoring
Track user content across multiple branches of a chain
Location intelligence and lead generation
Build lists of TikTok-active businesses with addresses and GPS coordinates
Place names to look up on TikTok, one per line, e.g.
TikTok place pages or bare place IDs, one per line.
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":"tiktok-location-scraper","params":{"queries":["Eiffel Tower"]},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
queries | array | optional | Place names to look up on TikTok, one per line, e.g. "Eiffel Tower" or "Joe's Pizza New York". Adding the city helps pick the right branch of a chain. |
placeUrls | array | optional | TikTok place pages (https://www.tiktok.com/place/Name-1234567890) or bare place IDs, one per line. Use this when you already know the exact place. |
placesPerQuery | integer | optional | How many matching places to take for each search query, best match first (1-20). Use more than 1 for chains or common names, e.g. every "Central Park". |
maxVideosPerPlace | integer | optional | Maximum number of videos to collect for each place. Set 0 to collect every video TikTok shows for the place. |
searchPlacesOnly | boolean | optional | Only return the matching places (name, address, category, GPS coordinates, total video count) without scraping their videos. Handy for finding place IDs or building a list of locations. |
addPlaceCoordinates | boolean | optional | For places given as URLs or IDs, run one extra place lookup to add latitude, longitude and the place's total TikTok video count. Places found through a search query always include them. |
Each result contains
| Field | Type | Description |
|---|---|---|
type | string | Type |
input | string | — |
placeId | string | — |
placeName | string | Place |
placeUrl | string | Place URL |
placeAddress | string | Address |
placeCity | string | City |
placeCountry | string | — |
placeCategory | string | Category |
placeSubcategory | string | — |
placeLatitude | number | Latitude |
placeLongitude | number | Longitude |
placeTotalVideos | integer | Place videos |
videoId | string | — |
videoUrl | string | Video |
caption | string | Caption |
hashtags | array | — |
createdAt | string | Posted |
createTimestamp | integer | — |
views | integer | Views |
likes | integer | Likes |
comments | integer | Comments |
shares | integer | Shares |
saves | integer | — |
durationSeconds | integer | — |
isSlideshow | boolean | — |
language | string | — |
coverUrl | string | Cover |
authorUsername | string | Author |
authorNickname | string | — |
authorId | string | — |
authorVerified | boolean | — |
authorFollowers | integer | Author followers |
authorTotalLikes | integer | — |
authorUrl | string | — |
musicId | string | — |
musicTitle | string | Music |
musicAuthor | string | — |
musicIsOriginal | boolean | — |
scrapedAt | string | — |
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. 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":"tiktok-location-scraper","params":{"queries":["Eiffel Tower"]},"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": "tiktok-location-scraper",
"params": {"queries":["Eiffel Tower"]},
"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…