Instagram Location Posts Scraper avatar

Instagram Location Posts Scraper

Pricing

from $0.95 / 1,000 location posts

Go to Apify Store
Instagram Location Posts Scraper

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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

📦 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.

Each run uses one location. It accepts an Instagram location URL or numeric location ID, then applies your post choice and filters.

  1. Enter an Instagram location URL or numeric location ID.
  2. Choose recent posts or popular posts.
  3. Add date, media type, engagement, or verified creator filters when needed.
  4. Start the run.
  5. 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

FieldTypeWhat it does
locationUrlOrIdstringRequired. Instagram location URL or numeric location ID for the place.
postSelectionstringSelect recent for recent posts or popular for popular posts. Defaults to recent.
publishedAfterstring (date)Keeps posts published on or after YYYY-MM-DD. Leave blank for no start date.
publishedBeforestring (date)Keeps posts published on or before YYYY-MM-DD. Leave blank for no end date.
mediaTypesarrayKeeps photo, video, reel, or carousel posts. Leave empty to include all media types.
minimumLikesintegerKeeps posts with at least this many likes. Leave blank to keep all posts.
minimumCommentsintegerKeeps posts with at least this many comments. Leave blank to keep all posts.
verifiedCreatorsOnlybooleanSet 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

FieldTypeWhat it does
postIdstringStable Instagram ID for the post.
postUrlstring (URL)Canonical Instagram link for the post.
captionstringCaption text when available.
hashtagsarrayHashtags found in the caption when present.
mentionsarrayUsernames mentioned in the caption when present.
likesCountintegerNumber of likes when available.
commentsCountintegerNumber of comments when available.
publishedAtstring (date-time)Publication time reported by Instagram when available.
mediaTypestringSource media type: photo, video, reel, or carousel.
imageUrlsarrayDirect source URLs for post images when available.
thumbnailUrlstring (URL)Direct source URL for a post thumbnail when available.
videoUrlstring (URL)Direct source URL for the post video when available.
creatorobjectPublic creator context shown with the post.
creator.idstringStable Instagram ID for the creator when available.
creator.usernamestringInstagram username of the creator.
creator.fullNamestringDisplay name of the creator when available.
creator.profileUrlstring (URL)Instagram profile link for the creator when available.
creator.profileImageUrlstring (URL)Direct source URL for the creator profile image when available.
creator.isPrivatebooleanWhether the creator profile is private.
creator.isVerifiedbooleanWhether Instagram marks the creator as verified.
locationobjectThe Instagram location matched for the post.
location.idstringStable Instagram ID for the location when available.
location.namestringName of the matched Instagram location.
location.urlstring (URL)Instagram link for the matched location when available.
location.latitudenumberLatitude of the matched location when available.
location.longitudenumberLongitude 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.

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 🫡

Made with ❤️ by Maxime Dupré