Instagram Location Posts Scraper
Pricing
from $0.95 / 1,000 location posts
Instagram Location Posts Scraper
Collect public Instagram posts tagged at one location per run. Get captions, hashtags, engagement counts, media links, creator details, and place data in a structured dataset. Use an Instagram location URL or numeric location ID to choose the place.
Pricing
from $0.95 / 1,000 location posts
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
📍 Explore Instagram posts by place
For marketers, researchers, and local teams, this Actor collects public Instagram posts tagged at one location per run. Each dataset row keeps the post link, caption, engagement counts, media links, creator details, and matched place data in a structured format.
Use cases
- Find public posts tagged at a place with Instagram Location Post Finder.
- Collect location-tagged posts in a dataset with Scrape Instagram Location Posts.
- Search a location URL or ID with Instagram Location Search.
- Review recent posts from one place with Instagram Posts by Location.
- Review popular posts from one place with Instagram Location Posts.
📦 Get structured location post data
The default dataset contains one row for each eligible public Instagram post saved for the selected location. Rows keep normalized post, creator, media, and place fields. A field can be missing when Instagram does not provide it.
Main value
Use the post URL and caption to review content, the likes and comments counts to compare engagement, and the media and location links to connect each row to its source.
▶️ Run one Instagram location search
Each run uses one location. It accepts an Instagram location URL or numeric location ID, then applies your post choice and filters.
- Enter an Instagram location URL or numeric location ID.
- Choose recent posts or popular posts.
- Add date, media type, engagement, or verified creator filters when needed.
- Start the run.
- Open the dataset link in the run output.
If the same source post is found again, only its first eligible occurrence is saved. The saved row describes that first match.
⚙️ Input
Use one location per run. Dates use YYYY-MM-DD. Leave an optional filter blank to keep it off. Leave mediaTypes empty to include all media types.
Input fields
| Field | Type | What it does |
|---|---|---|
locationUrlOrId | string | Required. Instagram location URL or numeric location ID for the place. |
postSelection | string | Select recent for recent posts or popular for popular posts. Defaults to recent. |
publishedAfter | string (date) | Keeps posts published on or after YYYY-MM-DD. Leave blank for no start date. |
publishedBefore | string (date) | Keeps posts published on or before YYYY-MM-DD. Leave blank for no end date. |
mediaTypes | array | Keeps photo, video, reel, or carousel posts. Leave empty to include all media types. |
minimumLikes | integer | Keeps posts with at least this many likes. Leave blank to keep all posts. |
minimumComments | integer | Keeps posts with at least this many comments. Leave blank to keep all posts. |
verifiedCreatorsOnly | boolean | Set to true to keep posts from verified creators only. Leave it false to apply no verified-creator filter. |
Example input
This is the public input from a successful beta default-style run.
{"locationUrlOrId": "https://www.instagram.com/explore/locations/213131048/berlin-germany/","postSelection": "recent","verifiedCreatorsOnly": false}
🧾 Output
The dataset output link opens the default dataset. Each saved row represents one public Instagram post matched to the selected location.
Location post rows
| Field | Type | What it does |
|---|---|---|
postId | string | Stable Instagram ID for the post. |
postUrl | string (URL) | Canonical Instagram link for the post. |
caption | string | Caption text when available. |
hashtags | array | Hashtags found in the caption when present. |
mentions | array | Usernames mentioned in the caption when present. |
likesCount | integer | Number of likes when available. |
commentsCount | integer | Number of comments when available. |
publishedAt | string (date-time) | Publication time reported by Instagram when available. |
mediaType | string | Source media type: photo, video, reel, or carousel. |
imageUrls | array | Direct source URLs for post images when available. |
thumbnailUrl | string (URL) | Direct source URL for a post thumbnail when available. |
videoUrl | string (URL) | Direct source URL for the post video when available. |
creator | object | Public creator context shown with the post. |
creator.id | string | Stable Instagram ID for the creator when available. |
creator.username | string | Instagram username of the creator. |
creator.fullName | string | Display name of the creator when available. |
creator.profileUrl | string (URL) | Instagram profile link for the creator when available. |
creator.profileImageUrl | string (URL) | Direct source URL for the creator profile image when available. |
creator.isPrivate | boolean | Whether the creator profile is private. |
creator.isVerified | boolean | Whether Instagram marks the creator as verified. |
location | object | The Instagram location matched for the post. |
location.id | string | Stable Instagram ID for the location when available. |
location.name | string | Name of the matched Instagram location. |
location.url | string (URL) | Instagram link for the matched location when available. |
location.latitude | number | Latitude of the matched location when available. |
location.longitude | number | Longitude of the matched location when available. |
Shortened genuine row
This genuine row comes from a successful current-beta run. It is shortened because the source row contains a large image URL list. The "..." values mark omitted real data.
{"postId": "3993731118929673093","postUrl": "https://www.instagram.com/reel/DdslUsAOfuF/","caption": "Diosito no me castigues \nmás😫😫😫😫 #futbol #costarica #humor #curazao #concacaf","hashtags": ["#futbol","#costarica","#humor","#curazao","#concacaf"],"mentions": [],"likesCount": 12,"commentsCount": 0,"publishedAt": "2026-09-25T04:18:15.000Z","mediaType": "reel","imageUrls": ["..."],"thumbnailUrl": "https://scontent-lga3-2.cdninstagram.com/v/t51.82787-15/797229482_17910319746497495_9134358096624017343_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=105&ig_cache_key=Mzk5MzczMTExODkyOTY3MzA5MzE3OTEwMzE5NzQzNDk3NDk1.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLnhwaWRzLjEyMDYuc2RyLnZpZGVvX2RlZmF1bHRfY292ZXJfZnJhbWUuQzMifQ%3D%3D&_nc_ohc=977jfycZyX4Q7kNvwHT-SvD&_nc_oc=AdqglAPQgKSP8gJDraegdUEpksfMG1lNj_EPJSrpqN9cP7p_xbbG6W2p4LYt7xQNPmI&_nc_zt=23&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_gid=mcQWuRglNu6k24eIZICVZQ&_nc_ss=7f689&oh=00_AQLtx8fYp0UVvG6y_RIm5EJsImkovzMFUAIrBDluJRFzpw&oe=6ABBB23F","videoUrl": "https://scontent-lga3-1.cdninstagram.com/o1/v/t2/f2/m86/AQMk2dHuH_9RNQZWHnvsG4FRmPHFZZ7NiWAwMNzQ61vwg2TJvAudurgjwMgz4VAaGRmjQNnNiTvBXMvOe9VICnA6fII-S75dicxGSiA.mp4?_nc_cat=109&_nc_sid=5e9851&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_ohc=R0cVNL1Kk5wQ7kNvwELy4lF&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6Mjg3MjgwOTgyNzY4NzY0OTEsImFzc2V0X2FnZV9kYXlzIjowLCJ2aV91c2VjYXNlX2lkIjoxMDA5OSwiZHVyYXRpb25fcyI6OSwidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&vs=52db513794f38f3b&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC8zRjQ0QjkxRTJBNDU0Q0FDRDk3OEMwMDY3RTA4RjlCQl92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyLzEzNDRGMUI4RkJFRTZCNDZDNDg5RTgzMjQ5MDZCN0JCX2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACaWg-3Ns4OIZhUCKAJDMywXQCOZmZmZmZoYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HZeadAQA&_nc_gid=mcQWuRglNu6k24eIZICVZQ&_nc_ss=7f689&_nc_zt=28&oh=00_AQI6i-MtFnf1fd2MT9fV2VBhy3W7DmDcrXtTaZksTbeXDA&oe=6AB7D67E","creator": {"id": "75058673494","username": "futbolconoscar","fullName": "Oscar Araya","profileUrl": "https://www.instagram.com/futbolconoscar/","profileImageUrl": "...","isPrivate": false,"isVerified": true},"location": {"id": "212988663","name": "New York, New York","url": "https://www.instagram.com/explore/locations/212988663/new-york-new-york/","latitude": 40.73060987941,"longitude": -73.935242127765}}
💳 Pricing
Pricing is tied to saved public location posts. Each Location post event covers one public post tagged at the requested location and saved to your dataset.
Location post
One public post tagged at the requested location is saved to your dataset.
🔌 Integrations
Dataset access
Use the output link to open the default Apify dataset. You can also read the dataset through the Apify API.
Video guide
❓ FAQ
Can I use a location URL or numeric location ID?
Yes. Enter one Instagram location URL or numeric location ID for each run.
Does the Actor need an Instagram login?
No. It reads public location-tagged posts and does not require your Instagram login or cookies. Private or login-gated content is outside its scope.
Can I choose recent or popular posts?
Yes. Set postSelection to recent or popular.
What happens when I leave filters blank?
Blank date fields add no date limit. A blank minimum likes or comments field keeps posts at any count. An empty mediaTypes list includes all media types. Leave verifiedCreatorsOnly set to false to apply no verified-creator filter.
Will the same post appear twice?
When the same source post is found again, the Actor keeps its first eligible occurrence and ignores later matches. The saved row describes that first match.
Is this an Instagram location tracker?
It collects available public posts for one location in a run. It does not promise ongoing monitoring or change alerts between runs.
What does one dataset row contain?
Each row can include the post identity and link, caption tags, engagement counts, publication time, media links, creator context, and matched location data. Fields can be missing when Instagram does not provide them.
How does pricing work?
Each saved public location post is one billable Location post event. The event description is shown in the Pricing section above.
📝 Changelog
v0.0 (25-09-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Instagram Post & Reel Content Scraper collects public posts and Reels from profile feeds for profile-based content research.
- Instagram Hashtag Username Scraper finds public posts and usernames connected to hashtags.
- Instagram Reels Search Scraper finds public Reels by keyword phrase or hashtag.
- Instagram Engagement Scraper compares public profile feed and Reels engagement measures.
- Instagram Profile Stats Scraper collects public profile, audience, and activity data for known accounts.
Made with ❤️ by Maxime Dupré