TikTok Place / Location Scraper avatar

TikTok Place / Location Scraper

Pricing

from $0.20 / 1,000 place videos

Go to Apify Store
TikTok Place / Location Scraper

TikTok Place / Location Scraper

Get public TikTok videos tagged at any place from place links, IDs, or place names. Or get place details with address, category, rating, photos, and optional reviews. Each video row has views, likes, creator, music, and GPS coordinates.

Pricing

from $0.20 / 1,000 place videos

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

📍 See what people post at any TikTok place

TikTok Location Scraper is for marketers, travel and food researchers, and local businesses who want to see what happens at a real place on TikTok. Add TikTok place links, place IDs, or place names. You get the public videos tagged at each place, with views, likes, creators, music, and the exact tagged place. Or you get the place details, such as address, category, rating, photos, and public reviews. You need no TikTok account, and you get clean rows that you can sort and export.

🎬 Place videos and place details from TikTok

You choose one of two row types for each run:

  • Place videos: one row for each public video tagged at a place. Each row has the video ID and link, caption, hashtags, post date, length, cover image, and a direct video file link when TikTok gives one. It also has views, likes, comments, shares, and saves, the creator's profile with follower and total like counts when TikTok shows them, the music title and artist, and the tagged place with its address, city, and GPS coordinates.
  • Places: one row for each place. Each row has the place name, link, address, city, country, category, subcategory, GPS coordinates, and the total number of TikTok videos tagged there. It also has the average star rating, review count, and photos when TikTok shows them. When you turn on reviews, each place row also lists its public reviews with rating, text, photos, author, like count, and date.

🚀 How to scrape a TikTok location

  1. Add TikTok place links or IDs, place names to search, or both.
  2. Pick Place videos or Places in Result type.
  3. Set how many rows you want in total, and how many videos or reviews you want for each place.
  4. Start the run. Rows show up in the dataset while the run works.
  5. Download your results as JSON, CSV, Excel, or another format, or read them through the Apify API.

⚙️ Input

Input fields

FieldTypeWhat it does
placeUrlsarray of stringsTikTok place links, such as https://www.tiktok.com/place/Eiffel-Tower-22535796485551493, or place IDs, such as 22535796485551493. Add one per line.
searchQueriesarray of stringsPlace names or keywords to search for on TikTok, such as a restaurant, a landmark, or a city. Add one per line. The form starts with Eiffel Tower filled in.
maxItemsintegerThe most rows to save in total. Leave it empty or use 0 to get all available results. The form starts with 20.
resultTypestringRequired. videos (Place videos) saves one row for each video tagged at a place. places (Places) saves one row for each place. The form starts with videos.
maxVideosPerPlaceintegerPlace videos only. The most videos to get for each place. Leave it empty or use 0 to get every video TikTok shows for the place. The form starts with 10.
includeReviewsbooleanPlaces only. Adds public reviews to each place row. Default: false. Each review has its own charge.
maxReviewsPerPlaceintegerThe most reviews to get for each place, where available. Use 0 to get every review. Default: 20. It works only when includeReviews is on.
countrystringTwo-letter country code to search places in, such as US, FR, or JP. It applies only to searchQueries. Leave it empty to let TikTok choose.
maxPlacesPerQueryintegerHow many matching places to take for each place name, best match first. Default: 1. The lowest value is 1. Use more for chains or common names.
dealsOnlybooleanFinds only places that offer bookings or deals on TikTok. It applies only to searchQueries. Default: false.

You must add at least one place link, place ID, or place name. A value in the form that the form "starts with" is a prefill. It is not used when you leave the field out of an API call.

Example input

{
"searchQueries": [
"Eiffel Tower"
],
"maxItems": 20,
"resultType": "videos",
"maxVideosPerPlace": 10,
"includeReviews": false,
"maxReviewsPerPlace": 20,
"maxPlacesPerQuery": 1,
"dealsOnly": false
}

🧾 Output

Output fields

Each run saves one of two row shapes. recordType tells you which one a row is. A field is left out when TikTok does not show it.

Place video row

FieldTypeWhat it does
recordTypestringAlways video for this row.
idstringTikTok ID of the video.
urlstringLink to the video on TikTok.
captionstringCaption text of the video.
hashtagsarray of stringsHashtags of the video, without the # sign. Empty when there are none.
postedAtstringDate and time when the video was posted, in ISO 8601 format.
durationSecondsnumberLength of the video in seconds.
coverUrlstringLink to the cover image of the video.
videoUrlstringDirect link to the video file when TikTok gives one. The link can stop working after some time.
viewCountintegerNumber of times the video was played.
likeCountintegerNumber of likes on the video.
commentCountintegerNumber of comments on the video.
shareCountintegerNumber of times the video was shared.
saveCountintegerNumber of times the video was saved.
creator.idstringTikTok ID of the creator account.
creator.usernamestringTikTok username of the creator, without the @ sign.
creator.displayNamestringDisplay name of the creator.
creator.urlstringLink to the creator profile on TikTok.
creator.avatarUrlstringLink to the creator profile picture.
creator.isVerifiedbooleantrue when TikTok shows the creator as verified.
creator.biostringProfile bio text of the creator.
creator.followerCountintegerNumber of followers of the creator when TikTok shows it.
creator.likeCountintegerTotal likes on all videos of the creator when TikTok shows it.
music.titlestringTitle of the music in the video.
music.artiststringArtist or author of the music.
place.idstringTikTok ID of the place the video is tagged at.
place.namestringPlace name shown on TikTok.
place.addressstringStreet address of the place.
place.citystringCity of the place.
place.latitudenumberLatitude of the place in decimal degrees.
place.longitudenumberLongitude of the place in decimal degrees.

Example place video row

{
"recordType": "video",
"id": "7689599259515030791",
"url": "https://www.tiktok.com/@melquinterooo/video/7689599259515030791",
"caption": "Acompañenme a ver esta triste historia 🫠🫠 #torreeiffel #paris #foryoupage #france #fyp ",
"hashtags": [
"torreeiffel",
"paris",
"foryoupage",
"france",
"fyp"
],
"postedAt": "2026-09-25T22:12:35.000Z",
"durationSeconds": 15,
"coverUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/o0A8EiUvgrYBB8BAxnDa24EAAjlbC0nnAIiPd~tplv-tiktokx-origin.image?dr=9636&x-expires=1793332800&x-signature=gM4FINkxkxJpsU5lU4hYWvSAV9k%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"videoUrl": "https://www.tiktok.com/aweme/v1/play/?faid=1988&file_id=5d951bed58f742d3b0309a0cc096f9a1&is_play_url=1&item_id=7689599259515030791&line=0&ply_type=2&pt=YXdlbWUud2ViLndlYmFwaSYvYXBpL3BvaS9pdGVtX2xpc3QvJjIwMjYxMDI4MDQzMDUwRjM1NjI2MTREMzlERTkwOTA2N0MmMTc5MzE2MTg1MCY0YmY4ODIxY2YzZmM&signaturev3=dmlkZW9faWQ7ZmlsZV9pZDtpdGVtX2lkLjBiMTQ0ZTM2OGI3OWRlODQ2ODQwZWJkYTU3OGJiZDZk&tk=tt_chain_token&video_id=v1c044g50000darf3i7og65juqielp1g",
"viewCount": 7400000,
"likeCount": 766800,
"commentCount": 7006,
"shareCount": 5869,
"saveCount": 17110,
"creator": {
"id": "6814515566536180741",
"username": "melquinterooo",
"displayName": "Mel",
"url": "https://www.tiktok.com/@melquinterooo",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/7334025623674978309~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=9640&refresh_token=bd9a5b36&x-expires=1793332800&x-signature=g9zFQZ8YtyXDD%2F9oTcH4kEk%2Fjuw%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
"isVerified": false,
"bio": "Lifestyle, Fitness & Travel \nArg 🇦🇷\n\n\n• IG @melquinteroo",
"followerCount": 54800,
"likeCount": 1100000
},
"music": {
"title": "Groove Token",
"artist": "Tom Webster"
},
"place": {
"id": "42203861110571891",
"name": "Eiffel Tower",
"address": "43 Rue Rouelle, 75015 Paris, France",
"city": "Paris",
"latitude": 48.849872,
"longitude": 2.289067
}
}

Place row

FieldTypeWhat it does
recordTypestringAlways place for this row.
idstringTikTok ID of the place.
namestringPlace name shown on TikTok.
urlstringLink to the place page on TikTok.
addressstringStreet address of the place.
citystringCity of the place.
countrystringCountry of the place.
categorystringMain category of the place.
subcategorystringMore exact category of the place.
latitudenumberLatitude of the place in decimal degrees.
longitudenumberLongitude of the place in decimal degrees.
videoCountintegerTotal number of TikTok videos tagged at the place.
ratingnumberAverage star rating of the place when TikTok shows it.
reviewCountintegerTotal number of reviews of the place when TikTok shows it.
photoUrlsarray of stringsLinks to photos of the place. Empty when TikTok shows none.
reviewsarray of objectsPublic reviews of the place. Only there when includeReviews is on. Empty when TikTok shows no reviews.
reviews.ratingnumberStar rating the author gave, from 1 to 5.
reviews.textstringText of the review.
reviews.photoUrlsarray of stringsLinks to photos added to the review. Empty when there are none.
reviews.authorNamestringName of the review author shown on TikTok.
reviews.authorAvatarUrlstringLink to the profile picture of the review author.
reviews.likeCountintegerNumber of likes on the review.
reviews.createdAtstringDate and time when the review was posted, in ISO 8601 format.

Example place row with reviews

This example is shortened. The "..." values mark photos and reviews that were left out to keep it short.

{
"recordType": "place",
"id": "22535865202508922",
"name": "Louvre Museum",
"url": "https://www.tiktok.com/place/Louvre-Museum-22535865202508922",
"address": "75001 Paris, France",
"city": "Paris",
"country": "France",
"category": "Outdoors and Attractions",
"subcategory": "Museum",
"latitude": 48.860611,
"longitude": 2.337644,
"videoCount": 230169,
"rating": 4.9,
"reviewCount": 22895,
"photoUrls": [
"https://p16-tiktok-poi-picture-sign-sg.ibyteimg.com/tos-alisg-i-0x5759trmt-sg/954768a278826fd4e7e7fd6562ff5f4a~tplv-0x5759trmt-image-origin-heic-v1.heic?rk3s=733ab7a5&x-expires=1824697851&x-signature=H31Uw1xpMigefEokffnrZN7T9jI%3D",
"https://p16-tiktok-poi-picture-sign-sg.ibyteimg.com/tos-alisg-i-0x5759trmt-sg/096f2a7d77d0cae93bef0949082154f2~tplv-0x5759trmt-image-origin-heic-v1.heic?rk3s=733ab7a5&x-expires=1824697851&x-signature=Vc7J9mknsDxfYm5yzv0eJImOZUU%3D",
"..."
],
"reviews": [
{
"rating": 5,
"text": "As expected of a world-famous museum, the Louvre was super crowded.\nYou should definitely buy your Louvre tickets in advance!\nThe exhibits keep you completely captivated from start to finish.\nIf you’re visiting the Louvre, you definitely have to check out Musée de l'Orangerie too!",
"photoUrls": [
"https://p19-comment-sign-sg.tiktokcdn.com/tos-alisg-i-zt8igodiya-sg/9818115caaa083e20a5f9b2652622cde~tplv-jj85edgx6n-image-origin.image?dr=8569&refresh_token=9b2d23df&x-expires=1824696000&x-signature=Fc577F7j%2FPyxEBQty0KpfuYydr4%3D&t=67a6c45e&ps=a0626fcd&shp=d057eb96&shcp=d057eb96&idc=my",
"..."
],
"authorName": "_i_quan",
"authorAvatarUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/b0663f2477e5a52a69da1f1a5d1ab481~tplv-tiktokx-cropcenter:1080:1080.webp?dr=14579&refresh_token=e0e7baf2&x-expires=1793246400&x-signature=kvGAeg8AvMYthx35LHpCaPsQXTA%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=8047b050&idc=my",
"likeCount": 19,
"createdAt": "2026-09-29T03:37:38.000Z"
},
"..."
]
}

💳 Pricing

This Actor uses pay-per-event pricing. You pay only for the place videos, places, and reviews it saves.

EventWhen you payPrice
Place videoEach video row saved$0.0002 ($0.20 for 1,000 videos)
PlaceEach place row saved$0.0009 on Free, Bronze, and Silver plans. $0.0008 on Gold, Platinum, and Diamond plans.
ReviewEach review added to a place row$0.0009 on Free and Bronze plans. $0.00075 on Silver. $0.00045 on Gold, Platinum, and Diamond plans.

Reviews cost nothing when includeReviews is off. You pay only when a row is saved, so work that saves no row has no charge. Use maxItems, maxVideosPerPlace, and maxReviewsPerPlace to control your cost. When your run reaches its spending limit, the Actor stops saving rows. If the limit runs out in the middle of a place's reviews, that place row keeps only the reviews you paid for.

🔌 Integrations

You can connect this Actor to other apps and tools on Apify. Send results to Google Sheets, Slack, Zapier, Make, or your own webhook, or start runs on a schedule. You can also run it and read its dataset through the Apify API. This video shows how integrations work:

❓ FAQ

Can I get the GPS coordinates of each place?

Yes. Place rows have latitude and longitude. Place video rows have them inside place, for the exact place the video is tagged at.

What happens when I search a common name, like a coffee chain?

By default the Actor takes only the best match for each name. Set maxPlacesPerQuery higher to take more matches, best match first. Add country to search in one country only.

Can I get every video at a place, not just the first few?

Yes. Set maxVideosPerPlace to 0 and leave maxItems empty or at 0. You then get every video TikTok shows for the place.

Do I need a TikTok account, cookies, or a login?

No. The Actor reads public TikTok data only. It does not need your TikTok account.

Can I download the video files?

Each video row has a videoUrl link to the video file when TikTok gives one. The Actor does not store the files. The link can stop working after some time, so use it soon after the run.

Why is a field missing from some rows?

TikTok does not show every detail for every video, creator, or place. For example, a rating appears only when the place has one. A missing field means TikTok did not show it.

Can I get private or deleted videos?

No. The Actor gets only public videos and places that TikTok shows.

📝 Changelog

v0.0 (28-10-2026)

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré