Instagram Location Scraper
Pricing
$24.99/month + usage
Instagram Location Scraper
Scrape Instagram posts by location with the Instagram Location Scraper. Extract post captions, images, videos, hashtags, timestamps, and user info from any public location. Ideal for trend tracking, market research, and content analysis. Fast, accurate, and scalable for bulk locations.
Pricing
$24.99/month + usage
Rating
0.0
(0)
Developer
Scrapier
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Instagram Location Scraper
Instagram Location Scraper is a production-ready Apify actor that lets you scrape Instagram posts by location at scale. It accepts Instagram location URLs, usernames, or keywords and converts them into location pages, then extracts structured post data like captions, images, videos, likes, comments, timestamps, and user info. Built for marketers, developers, data analysts, and researchers, it works as an Instagram location extractor and Instagram geotag scraper to power trend tracking, market research, and content analysis across places. With automated input detection and pagination, it enables location insights at scale for teams that need an Instagram location API alternative.
What data / output can you get?
Below are the exact JSON fields this actor pushes to the Apify dataset for each post. Values are returned when present on the source; some objects may be null depending on media type.
| Field | Description | Example value |
|---|---|---|
| type | Record type | "post" |
| id | Instagram post ID (stringified) | "3761820491792436654" |
| code | Instagram short code | "DQ0q85qEs2u" |
| url | Canonical post URL | "https://www.instagram.com/p/DQ0q85qEs2u/" |
| createdAt | ISO timestamp with Z suffix | "2025-11-09T10:52:49Z" |
| likeCount | Total likes | 1243 |
| commentCount | Total comments | 87 |
| caption | Post caption text | "Sunset by the river #berlin" |
| isAvailable | Availability flag | true |
| isLikeAndViewCountsDisabled | Whether counts are hidden | false |
| isPinned | Whether the post is pinned | false |
| isPaidPartnership | Paid partnership flag | false |
| isCarousel | Post is a carousel | true |
| isVideo | Post contains video | false |
| owner.id | Owner user ID (stringified) | "222741818" |
| owner.username | Owner username | "example_user" |
| owner.fullName | Owner full name | "Example Name" |
| owner.profilePicUrl | Profile picture URL | "https://scontent.cdninstagram.com/..." |
| owner.isPrivate | Account privacy flag | false |
| owner.isVerified | Account verification flag | false |
| location.id | Place ID (stringified) | "213131048" |
| location.name | Place name | "Berlin, Germany" |
| location.city | City (when available) | "Berlin" |
| location.lat | Latitude (when available) | 52.5200 |
| location.lng | Longitude (when available) | 13.4050 |
| image.url | Best-resolution image URL | "https://scontent.cdninstagram.com/..." |
| image.width | Image width | 1440 |
| image.height | Image height | 1440 |
| video.id | Synthetic ID for video media | "video_3761820491792436654" |
| video.url | Best-resolution video URL | "https://scontent.cdninstagram.com/..." |
| video.width | Video width | 1080 |
| video.height | Video height | 1350 |
| video.duration | Video duration in seconds (parsed) | 24.4 |
| audio.id | Synthetic audio ID | "audio_1234567890" |
| audio.title | Audio title (if available) | "Original audio" |
| audio.artist | Audio artist (if available) | "Unknown" |
| audio.coverArt | Cover art URL (if available) | "https://..." |
| audio.duration | Audio duration in ms (when provided) | 15000 |
| audio.audioUrl | Audio stream URL (from DASH manifest when available) | "https://..." |
Notes:
- Results are stored in the Apify dataset for easy programmatic access and download via the Apify API.
- Media objects (video, image, audio) may be null depending on the post type. Fields like location.lat/lng appear only when present on the original post.
Key features
-
π Intelligent input detection Automatically detects whether each item in startUrls is a location URL, username (with or without @), or keyword, then converts it into valid Instagram location pages. Ideal to scrape Instagram posts by location without manual ID lookup.
-
πΊοΈ Location search & ID discovery Works as an Instagram places scraper and Instagram location ID finder by searching locations for keywords and extracting canonical location URLs with IDs.
-
π§ Timeframe filtering (absolute or relative) Filter posts using absolute dates (YYYY-MM-DD) or relative windows (days, weeks, months, years). Efficiently excludes posts outside your timeframe during extraction.
-
ποΈ Rich media and audio metadata Extracts highest-quality image/video variants, infers video duration from either metadata or DASH manifests, and pulls audio stream info from manifests when available. Great for Instagram location posts downloader workflows.
-
π Engagement fields included Capture likeCount and commentCount for each post. Perfect for benchmarking hotspots and running Instagram geotagged posts scraper analyses.
-
π‘οΈ Robust proxy fallback Built-in proxy strategy with datacenter β residential fallback when blocked (e.g., 403/429). Sticks to residential if it proves effective, helping sustain long-running Instagram map search scraper jobs.
-
π Session authentication support Provide sessionId from your browser cookies when logged into Instagram to unlock location posts and improve reliability. Without it, some requests may fail or return limited data.
-
π¦ Scalable pagination Uses GraphQL pagination cursors to iterate pages reliably until maxItems is reached or no more posts remain.
-
π§° Developer-friendly & automation-ready Runs on Apify with logs, datasets, and proxy management. Use the dataset API to integrate outputs into pipelines for an Instagram location API alternative.
How to use Instagram Location Scraper - step by step
- Create or log into your Apify account.
- Open the Instagram Location Scraper actor.
- Add inputs in startUrls:
- Location URLs: e.g., https://www.instagram.com/explore/locations/213131048/berlin-germany/
- Usernames: e.g., mrbeast or @mrbeast (the actor will look for locations in posts)
- Keywords: e.g., "berlin" (the actor will search Instagram places)
- (Recommended) Add sessionId to improve access and stability. Copy the sessionid cookie from your logged-in Instagram browser session.
- Configure proxyConfiguration if needed. If a request is blocked, the actor can fall back to residential proxies automatically.
- Set maxItems to limit how many posts you collect (0 means unlimited).
- Configure timeframe filtering:
- dateFilterType = "relative" with relativeValue and relativeUnit (e.g., last 7 days)
- OR dateFilterType = "absolute" with absoluteStartDate and/or absoluteEndDate (YYYY-MM-DD)
- Start the run. Monitor logs for progress and any filtering summaries.
- Download results from the runβs Dataset tab or via the Apify API.
Pro Tip: Use keywords to discover places and then feed the returned location URLs into follow-up runs for deep-dives as an Instagram places ID scraper and Instagram location page scraper workflow.
Use cases
| Use case name | Description |
|---|---|
| Marketing β location trend tracking | Analyze likeCount/commentCount across hotspots to shape campaigns with an Instagram location posts scraper approach. |
| Content strategy β regional insights | Discover top-performing geotagged posts for editorial planning and creator partnerships using an Instagram location posts downloader pipeline. |
| Competitive benchmarking by place | Compare engagement across venues or cities by aggregating post metrics from Instagram location pages. |
| OSINT & research β event monitoring | Monitor public posts near events or landmarks with an Instagram nearby posts scraper and Instagram map search scraper methodology. |
| Retail & venues β footfall proxies | Track audience interest at store locations by monitoring public geotagged content over time. |
| Data engineering β ingestion pipeline | Treat it as an Instagram location API alternative, exporting structured JSON for warehousing and analytics. |
Why choose Instagram Location Scraper?
This actor is engineered for precision, reliability, and scale on the Apify platform.
- β Accurate media parsing: Selects best-resolution images/videos and parses video/audio metadata from manifests when available.
- π§© Flexible inputs: Works as an Instagram geotag scraper from location URLs, usernames, or keywords β no manual ID lookup needed.
- π Resilient infrastructure: Automatic proxy fallback (datacenter β residential) to reduce blocks on long-running jobs.
- π Powerful time filters: Absolute and relative timeframes to keep datasets fresh and focused.
- π§ͺ Developer access: Structured outputs in the Apify dataset for clean integrations, enabling an Instagram location data scraper pipeline.
- π‘οΈ Authentication-ready: Add sessionId to pass Instagramβs access checks for location content.
- π Built for scale: Paginates through location feeds and respects your maxItems cap for predictable workloads.
In short: a production-ready Instagram places scraper that outperforms brittle, browser-based tools and unstable scripts.
Is it legal / ethical to use Instagram Location Scraper?
Yes β when done responsibly. This actor is designed to collect publicly available content from Instagram location pages. You should:
- Scrape only public data and respect platform terms.
- Avoid private accounts and do not attempt to bypass protections.
- Comply with applicable data regulations (e.g., GDPR, CCPA).
- Use a valid sessionId from your own account when authentication is required.
- Consult your legal team for edge cases or jurisdiction-specific guidance.
Input parameters & output format
Example input
{"startUrls": ["https://www.instagram.com/explore/locations/213131048/berlin-germany/","mrbeast","berlin"],"maxItems": 50,"sessionId": "your_instagram_sessionid_cookie_value","proxyConfiguration": {"useApifyProxy": false},"dateFilterType": "relative","absoluteStartDate": "","absoluteEndDate": "","relativeValue": 7,"relativeUnit": "days","includeEngagement": true,"includeVideoMetadata": true}
Input fields (from schema)
- startUrls (array of strings) β List of Instagram location URLs, usernames, or keywords. Example: "https://www.instagram.com/explore/locations/213131048/berlin-germany/", "mrbeast", "berlin". Default: none. Required: Yes.
- maxItems (integer) β Maximum number of posts to extract (0 for unlimited). Minimum: 0. Default: 20. Required: No.
- sessionId (string) β Instagram session ID cookie value (required for authentication). Get this from your browser cookies when logged into Instagram. Default: "". Required: No.
- proxyConfiguration (object) β Choose which proxies to use. If Instagram rejects the proxy, a residential proxy will be used as a fallback. Prefill: {"useApifyProxy": false}. Required: No.
- dateFilterType (string, enum: "absolute" | "relative") β Select whether to use absolute date or relative time. Default: "relative". Required: No.
- absoluteStartDate (string, pattern: YYYY-MM-DD or empty) β Start date in YYYY-MM-DD format. Use when dateFilterType is "absolute". Default: "". Required: No.
- absoluteEndDate (string, pattern: YYYY-MM-DD or empty) β End date in YYYY-MM-DD format. Use when dateFilterType is "absolute". Leave empty for current date. Default: "". Required: No.
- relativeValue (integer) β Number of time units. Use when dateFilterType is "relative". Minimum: 0. Default: 0. Required: No.
- relativeUnit (string, enum: "days" | "weeks" | "months" | "years") β Unit of time for relative date. Default: "days". Required: No.
- includeEngagement (boolean) β Whether to include engagement metrics like likes, shares, comments count. Default: true. Required: No.
- includeVideoMetadata (boolean) β Whether to include detailed video metadata like duration, quality, etc. Default: true. Required: No.
Example output
{"type": "post","id": "3761820491792436654","code": "DQ0q85qEs2u","url": "https://www.instagram.com/p/DQ0q85qEs2u/","createdAt": "2025-11-09T10:52:49Z","likeCount": 1243,"commentCount": 87,"caption": "Sunset by the river #berlin","isAvailable": true,"isLikeAndViewCountsDisabled": false,"isPinned": false,"isPaidPartnership": false,"isCarousel": true,"isVideo": false,"owner": {"id": "222741818","username": "example_user","fullName": "Example Name","profilePicUrl": "https://scontent.cdninstagram.com/...","isPrivate": false,"isVerified": false},"location": {"id": "213131048","name": "Berlin, Germany","city": "Berlin","lat": 52.52,"lng": 13.405},"video": null,"image": {"url": "https://scontent.cdninstagram.com/...","width": 1440,"height": 1440},"audio": null}
FAQ
Do I need to log in to use Instagram Location Scraper?
Providing a sessionId is strongly recommended. Without a valid Instagram sessionid cookie, some requests may fail or return limited data because Instagram may require authentication to return location posts.
Can I input usernames or keywords instead of location URLs?
Yes. You can paste usernames (with or without @) or keywords into startUrls. The actor will detect input types and convert them into Instagram location URLs via search or profile parsing.
What data fields are returned for each post?
The actor returns structured fields including id, code, url, createdAt, likeCount, commentCount, caption, owner, location, and media objects (image, video, audio when available). See the Output section above for the full schema.
How many posts can I scrape per run?
Use maxItems to control volume. The default is 20, and setting 0 means unlimited (subject to available posts and runtime limits).
Can I filter posts by date or timeframe?
Yes. Set dateFilterType to "relative" with relativeValue and relativeUnit (days, weeks, months, years), or set it to "absolute" and provide absoluteStartDate and/or absoluteEndDate (YYYY-MM-DD). Posts outside the window are excluded during extraction.
How does proxy handling work?
You can configure proxyConfiguration. If Instagram blocks requests (e.g., 403/429), the actor falls back from no proxy to datacenter, then to residential proxies, and sticks to residential once it works reliably.
Is this an Instagram location API alternative?
Yes. It works as an Instagram location data scraper and Instagram location page scraper that programmatically collects publicly available data from location pages without relying on the official API.
Does it extract videos and audio details?
Yes when available. The actor selects the highest-quality video variant, infers duration from metadata or DASH manifests, and extracts audio stream information from manifests when possible.
Final thoughts
Instagram Location Scraper is built to power structured, scalable extraction of Instagram posts from places β from keywords and usernames to location URLs. It combines robust input detection, timeframe filtering, engagement metrics, and resilient proxy handling to support marketers, researchers, and developers. Use the Apify dataset API to plug this Instagram geotag scraper into your pipelines and start extracting smarter, location-based insights today.
What are other Instagram scraping tools?
If you want to scrape specific Instagram data, you can use any of the dedicated scrapers below for faster and more targeted results.