# Instagram Search Scraper (`apify/instagram-search-scraper`) Actor

Scrape Instagram search results: places, businesses, locations, users, popular reels, and hashtags. Add a keyword and extract search results like contact details, categories, metrics, recent posts, hashtag popularity. Export scraped data, schedule via API, integrate with other tools or AI workflows.

- **URL**: https://apify.com/apify/instagram-search-scraper.md
- **Developed by:** [Apify](https://apify.com/apify) (Apify)
- **Categories:** Social media
- **Stats:** 18,843 total users, 2,496 monthly users, 91.0% runs succeeded, 215 bookmarks
- **User rating**: 4.73 out of 5 stars

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

> **🚀 New feature: search by popular reels**, the most direct way to discover trending content on Instagram. Add one or more keywords and Instagram Search Scraper returns up to ~64 reels that are popular for that topic, so you can spot trends, find influencers, and track brand awareness.

### What can Instagram Search Scraper do?

Instagram Search Scraper **extracts Instagram search results for hashtags, places, profiles, or popular reels** along with detailed, structured data about each one. Add one or more keywords, and the scraper finds matching profiles, hashtags, locations, or trending reels.

#### 📍 Places

🏠 Extract **metadata** such as place name, category, phone, price range, slug, and location ID

⏰ Access **opening hours** and status (open/closed, opening/closing times)

📍 Get **location details** including full address, city, zip, latitude, and longitude

#### 🕺 Profiles

👤 Extract **account metadata** such as ID, username, profile URL, full name, bio, and external URLs

📊 Collect **followers, following, posts count, verification, and profile picture**

🏢 Access **business info**: business account status, category, Facebook page info, joined recently

🏙️ Get **location details** including city, street address, latitude & longitude, and zip code

#### #️⃣ Hashtags

🏷️ Extract **hashtag metadata** such as name, ID, URL, posts count, posts per day, and difficulty

📊 Collect **average, frequent, and rare hashtags** with usage volume

📈 Access **related average and related rare hashtags** with usage volume

#### 🎬 Popular reels

🎬 Extract **reel metadata** such as caption, hashtags, mentions, URL, video and audio URLs, dimensions, and duration

📊 Collect **engagement stats**: likes, comments, views, and plays

👤 Get **creator and collaborator details** including username, full name, ID, tagged users, and coauthors

💬 Access **comments and music info**: first and latest comments, plus artist, song, and audio source

#### 🦾 Overall

⬇️ Export the results in **JSON, CSV, Excel, or XML**

🦾 Access all data programmatically via SDKs (Python and Node.js), API endpoints, and webhooks

🤳 Explore more Apify [social media scrapers](https://apify.com/store/collections/instagram-facebook-scrapers)

Use Instagram Search Scraper to **discover local businesses and profiles**, **explore trending and related hashtags**, **surface popular reels by topic**, gauge content popularity, and monitor local or niche posts.

### What data can I scrape using this Instagram search API?

Using this Instagram search API, you can extract the following Instagram search results, depending on the search type you pick (place, profile, hashtag, or popular reels):

<table>
<tr>  
<td>📍<strong>Places</strong></td>
</tr>
<tr>
<td>🔍 Search</td>
<td>search term, search source, input URL</td>
</tr>
<tr>
<td>🏠 Place</td>
<td>name, category, phone, price range, slug, location ID</td>
</tr>
<tr>
<td>📊 Stats & media</td>
<td>media count, profile pic URL, username, ID</td>
</tr>
<tr>
<td>⏰ Hours</td>
<td>status, opening/closing times</td>
</tr>
<tr>
<td>📝 Posts</td>
<td>12 latest posts (type, caption, images, hashtags, location, comments, likes, views, media)</td>
</tr>
<tr>
<td>📍 Location</td>
<td>address, city, zip, latitude, longitude</td>
</tr>
<tr>  
<td></td>
</tr>
<tr>  
<td>🕺<strong>Profiles</strong></td>
</tr>
<tr>
<td>🔍 Search info</td>
<td>search term, search source, input URL</td>
</tr>
<tr>
<td>👤 Account info</td>
<td>ID, username, profile URL, full name, bio, external URL(s)</td>
</tr>
<tr>
<td>📊 Stats & features</td>
<td>followers & follows count, has channel, posts count, verified, profile picture</td>
</tr>
<tr>
<td>🏢 Business info</td>
<td>is business account, business category, Facebook page info, joined recently</td>
</tr>
<tr>
<td>🏙️ Location</td>
<td>city, street address, latitude & longitude, zip code</td>
</tr>
<tr>
<td>🖼️📹 Posts</td>
<td>12 latest posts (images, carousels, videos, captions, hashtags, likes, comments, views, music info)</td>
</tr>
<tr>  
<td></td>
</tr>
<tr>
<td>#️⃣ <strong>Hashtags</strong></td>
</tr>
<tr>
<td>🔍 Search</td>
<td>search term, search source</td>
</tr>
<tr>
<td>🏷️ Hashtag</td>
<td>name, id, url, posts count, posts per day, difficulty</td>
</tr>
<tr>
<td>📊 Average, frequent, rare</td>
<td>hashtag, volume</td>
</tr>
<tr>
<td>📈 Related average, related rare</td>
<td>hashtag, volume</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>🎬 <strong>Popular reels</strong></td>
</tr>
<tr>
<td>🔍 Search</td>
<td>input URL (encodes the keyword, e.g. /popular/golf-prague)</td>
</tr>
<tr>
<td>🎬 Reel</td>
<td>type, shortcode, URL, caption, hashtags, mentions, video URL, audio URL, dimensions, duration, timestamp</td>
</tr>
<tr>
<td>👤 Creator</td>
<td>username, full name, ID, tagged users, coauthors</td>
</tr>
<tr>
<td>📊 Engagement</td>
<td>likes, comments, views, plays</td>
</tr>
<tr>
<td>💬 Comments</td>
<td>first comment, latest comments (text, author, likes, timestamp)</td>
</tr>
<tr>
<td>🎵 Music</td>
<td>artist, song, original audio, audio ID</td>
</tr>
<tr>
<td>📍 Location</td>
<td>name, ID</td>
</tr>
</table>

> Tip: To scrape detailed content for a user, use 🔗 [Instagram Profile Scraper](https://apify.com/apify/instagram-profile-scraper). If you need to extract details from a specific location URL rather than places in general, use 🔗 [Instagram Scraper](https://apify.com/apify/instagram-scraper).

### How to scrape Instagram search results?

1. [Create](https://console.apify.com/) a free Apify account.
2. Find [Instagram Search Scraper](https://apify.com/apify/instagram-search-scraper).
3. Add one or more **keywords**, choose a **search type** (user, hashtag, place, or popular reels), and the number of results per keyword (up to 250).
4. Click **Save & Start** to start the scraper.
5. Download your data in **JSON, CSV, Excel, or XML**, or access it through the API.

> 💡 Tip: Hashtags matter for discovery as much as search. You can find valuable hashtags with Instagram Search Scraper, then drill into each one using 🔗 [Instagram Hashtag Scraper](https://apify.com/apify/instagram-hashtag-scraper) to pull its top reels and posts. To extract every hashtag on a topic with no result limit, use 🔗 [Instagram Hashtag Analytics Scraper](https://apify.com/apify/instagram-hashtag-analytics-scraper).

### How much does scraping Instagram search results cost?

Instagram Search Scraper uses a **pay-per-event (PPE)** model. On the Free plan it costs $2.70 per 1,000 results, so the $5 credit gets you nearly **2,000 results for free**, while paid plans add a volume discount: Starter drops the rate to $2.30 per 1,000 (about **12,600 results a month**) and Scale to $1.90 per 1,000 (about **104,000 a month**). Check the [pricing tab](https://apify.com/apify/instagram-search-scraper/pricing) for full details.

### ⬇️ Input

Enter one or more **keywords**, then choose the **type of search to perform**: place, user, hashtag, or popular reels. A keyword can be one or more words. To **scrape multiple search terms at once**, submit them in the same field as a comma-separated list. You can also set the number of results you'd like per keyword, up to **250**, which is as many as Instagram returns for a single search.

> 💡 Tip: Not every keyword has a popular reels feed. If a popular reels run fails, check whether `https://www.instagram.com/popular/YOUR-KEYWORD` opens in an incognito window first.

<a href="https://console.apify.com/actors/DrF9mzPPEuVizVF4l"> <img src="https://raw.githubusercontent.com/apify-projects/actor-readme-images/2ee7ee4eed8947253f810af3879eee8f3f082fdb/Screenshot%202025-10-24%20at%2019.02.25.png" alt="Instagram Search Scraper input" style="width:70%;"> </a>

### ⬆️ Output

The results appear in a dataset in the **Storage** tab. You can view them as a table, download them in **JSON, CSV, Excel, or XML**, or access them via the API.

<a href="https://console.apify.com/actors/DrF9mzPPEuVizVF4l"> <img src="https://raw.githubusercontent.com/apify-projects/actor-readme-images/0385917e879acf2f2bc2170c74efdc87429434a5/Screenshot%202025-10-24%20at%2019.03.35.png" alt="Instagram Search Scraper output" style="width:100%;"> </a>

#### 📍 Extracted Instagram search data sample (search by places)

```json
[
    {
        "searchTerm": "cakes prague",
        "searchSource": "google",
        "inputUrl": "https://www.instagram.com/explore/locations/270309914/bakeshop-praha/",
        "name": "Bakeshop Praha",
        "phone": "+420 222 316 823",
        "category": "Bakery",
        "media_count": 2850,
        "price_range": 2,
        "lat": 50.0897287,
        "lng": 14.42240711,
        "slug": "bakeshop-praha",
        "location_id": "270309914",
        "location_address": "",
        "location_city": "",
        "location_zip": "",
        "ig_business": { "profile": null },
        "hours": { "status": "Open until 4:00 PM" }
    },
    {
        "searchTerm": "cakes prague",
        "searchSource": "google",
        "inputUrl": "https://www.instagram.com/explore/locations/460164254727010/sweet-dreams-cz-chimney-cakes/",
        "name": "Sweet Dreams CZ - chimney cakes",
        "phone": "",
        "category": "Fast food restaurant",
        "media_count": 23,
        "price_range": 2,
        "lat": 50.085855540208,
        "lng": 14.420703649521,
        "slug": "sweet-dreams-cz-chimney-cakes",
        "location_id": "460164254727010",
        "location_address": "Melantrichova 12",
        "location_city": "",
        "location_zip": "11000",
        "ig_business": {
            "profile": {
                "profile_pic_url": "https://scontent-lga3-1.cdninstagram.com/v/t51.2885-19/84540724_924556021293734_6854698440694169600_n.jpg",
                "username": "sweetdreamscz",
                "id": "13465708856"
            }
        },
        "hours": { "status": "Open until 11:00 PM" }
    },
    {
        "searchTerm": "cakes prague",
        "searchSource": "google",
        "inputUrl": "https://www.instagram.com/explore/locations/1022293501/prague-pastry/",
        "name": "Prague Pastry",
        "phone": "",
        "category": "Cafe",
        "media_count": 132,
        "price_range": 0,
        "lat": 35.817311400041,
        "lng": 51.483785915457,
        "slug": "prague-pastry",
        "location_id": "1022293501",
        "location_address": "",
        "location_city": "",
        "location_zip": "",
        "ig_business": { "profile": null },
        "hours": { "status": "Open until 11:00 PM" },
        "posts": [
            {
                "type": "Image",
                "shortCode": "C1fUNncL7ii",
                "id": "3269420751126509730_970370936",
                "caption": null,
                "hashtags": [],
                "url": "https://www.instagram.com/p/C1fUNncL7ii/",
                "commentCount": 0,
                "likeCount": 0,
                "viewCount": null,
                "displayUrl": "https://scontent-sjc6-1.cdninstagram.com/v/t39.30808-6/472866200_18478220851002937_6185328965757055417_n.jpg",
                "ownerUsername": "adelinehaddad",
                "location": {
                    "id": "2346631682224801",
                    "name": "Chimney Cake Prague",
                    "lat": 50.085882928078,
                    "lng": 14.415053392466
                },
                "timestamp": "2023-12-30T19:42:26.000Z"
            }
        ]
    }
]
```

#### 🕺 Extracted Instagram search data sample (search by profiles)

```json
[
    {
        "searchTerm": "cakes prague",
        "searchSource": "facebook-ads",
        "inputUrl": "https://www.facebook.com/api/graphql/",
        "id": "66573658348",
        "username": "dora.prague.cakes",
        "url": "https://www.instagram.com/dora.prague.cakes",
        "fullName": "Dora Cakes",
        "biography": "Online Baking Studio\n● Asian homemade cakes / 💯 %vegan options \norder via @prague.dora/Objednat via @prague.dora",
        "externalUrls": [
            {
                "title": "",
                "lynx_url": "https://l.instagram.com/?u=http%3A%2F%2Finstagram.com%2Fprague.dora%2F&e=AT33aSPYAQQEdBsa98xciPvV61n0mVj1Vg1DwfSXhY6119I1pbrje1YWm2tz-fN63DPskPGVQkxJBr6qTEiqBkDrmEsVlaQ1",
                "url": "http://instagram.com/prague.dora/",
                "link_type": "external"
            },
            {
                "title": "Facebook profile",
                "lynx_url": "",
                "url": "",
                "link_type": "facebook"
            }
        ],
        "externalUrl": "http://instagram.com/prague.dora/",
        "externalUrlShimmed": "https://l.instagram.com/?u=http%3A%2F%2Finstagram.com%2Fprague.dora%2F&e=AT1DnwS8M3xN_5FQ-v70hPwg1OZt7CD9-52ZvAI1XIO0H4YL_hRrNvfuqRgqe-JN8V5tezBy_O-YFC5lpjPKD7owFMOZhfKl",
        "followersCount": 261,
        "followsCount": 25,
        "hasChannel": false,
        "highlightReelCount": 13,
        "isBusinessAccount": true,
        "joinedRecently": false,
        "businessCategoryName": "None,Candy Store",
        "private": false,
        "verified": false,
        "profilePicUrl": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/448764192_1142727630369172_915707507726496118_n.jpg",
        "profilePicUrlHD": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/448764192_1142727630369172_915707507726496118_n.jpg",
        "facebookPage": {
            "page_id": "387950174391228",
            "category": "Profile",
            "image_uri": "https://scontent-atl3-1.cdninstagram.com/v/t51.2885-19/448764192_1142727630369172_915707507726496118_n.jpg",
            "likes": null,
            "verification": "NOT_VERIFIED",
            "name": "dora.prague.cakes",
            "country": null,
            "entity_type": "IG_ADS_IDENTITY",
            "ig_username": "dora.prague.cakes",
            "ig_followers": 261,
            "ig_verification": false,
            "page_alias": "",
            "page_is_deleted": false
        },
        "igtvVideoCount": 1,
        "relatedProfiles": [],
        "latestIgtvVideos": [
            {
                "type": "Video",
                "shortCode": "DAypcrOIei1",
                "title": "",
                "caption": "This is how you can find our bakery in Prague🤭 Small, but cutesy🤍 \n\n ---------------------------------\n📞 771 195 285\n📩 prague.dora@gmail.com\n📍Vršovická 800/47, Vršovice\n\n#AsianDelights #sweets #praha #desert #cakes #dorty #bagety #flanpudding #banhmi #desert #dora #bakeryinprague #kamvpraze #pekarnavpraze #foryou #fyp #fy #foryoupagee",
                "commentsCount": 0,
                "commentsDisabled": false,
                "dimensionsHeight": 1920,
                "dimensionsWidth": 1080,
                "displayUrl": "https://scontent-lga3-1.cdninstagram.com/v/t15.5256-10/462202714_1071689764348430_8866929195097638714_n.jpg",
                "likesCount": 14,
                "videoDuration": 77.233,
                "videoViewCount": 293,
                "id": "3473020553116379317",
                "hashtags": [
                    "AsianDelights",
                    "sweets",
                    "praha",
                    "desert",
                    "cakes",
                    "dorty",
                    "bagety",
                    "flanpudding",
                    "banhmi",
                    "dora",
                    "bakeryinprague",
                    "kamvpraze",
                    "pekarnavpraze",
                    "foryou",
                    "fyp",
                    "fy",
                    "foryoupagee"
                ],
                "mentions": ["gmail.com"],
                "url": "https://www.instagram.com/p/DAypcrOIei1/",
                "firstComment": "",
                "latestComments": [],
                "images": [],
                "videoUrl": "https://scontent-lga3-3.cdninstagram.com/o1/v/t2/f2/m367/AQPDZeHvlrcc26Z5x6PGrnTbVj--x8hZM2oZ4AeL_Z0OYohryssElPDKHVN8MOLMvx1sEXtWgNFfWG_5vF2NPuik4qEuOsVuBr_8Lqk.mp4",
                "alt": null,
                "timestamp": "2024-10-06T17:39:00.000Z",
                "childPosts": [],
                "ownerUsername": "dora.prague.cakes",
                "ownerId": "66573658348",
                "productType": "igtv",
                "isCommentsDisabled": false
            }
        ],
        "postsCount": 53,
        "latestPosts": [
            {
                "id": "3703969396077686591",
                "type": "Image",
                "shortCode": "DNnJIqQIO8_",
                "caption": "Set cake tiramisu with flavours: mango,matcha, classic, jahoda, oreo",
                "hashtags": [],
                "mentions": [],
                "url": "https://www.instagram.com/p/DNnJIqQIO8_/",
                "commentsCount": 0,
                "dimensionsHeight": 1439,
                "dimensionsWidth": 1080,
                "displayUrl": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/535878508_17906336769218349_458064727345907935_n.webp",
                "images": [],
                "alt": "Photo by Dora Cakes on August 21, 2025. May be an image of strawberry, chiffon cake, whipped cream, fruitcake, fruit cocktail, pie, cheesecake and text.",
                "likesCount": 1,
                "timestamp": "2025-08-21T09:13:01.000Z",
                "childPosts": [],
                "ownerUsername": "dora.prague.cakes",
                "ownerId": "66573658348",
                "isCommentsDisabled": false
            },
            {
                "id": "3703134132287696685",
                "type": "Image",
                "shortCode": "DNkLN-Ooe8t",
                "caption": "Strawberry cake 🍓🍓\n#vegancake#delicous#",
                "hashtags": ["vegancake", "delicous"],
                "mentions": [],
                "url": "https://www.instagram.com/p/DNkLN-Ooe8t/",
                "commentsCount": 0,
                "dimensionsHeight": 1080,
                "dimensionsWidth": 1080,
                "displayUrl": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/535250569_17906215623218349_2127475903889191630_n.webp",
                "images": [],
                "alt": "Photo by Dora Cakes on August 19, 2025. May be an image of cake, strawberry, fruitcake and text.",
                "likesCount": 0,
                "timestamp": "2025-08-20T05:33:30.000Z",
                "childPosts": [],
                "ownerUsername": "dora.prague.cakes",
                "ownerId": "66573658348",
                "isCommentsDisabled": false
            },
            {
                "id": "3654970805774779287",
                "type": "Image",
                "shortCode": "DK5EJU-oQOX",
                "caption": "set cake and flowers ❤️",
                "hashtags": [],
                "mentions": [],
                "url": "https://www.instagram.com/p/DK5EJU-oQOX/",
                "commentsCount": 0,
                "dimensionsHeight": 1351,
                "dimensionsWidth": 1080,
                "displayUrl": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-15/504491088_17898576810218349_8230302902285039573_n.webp",
                "images": [],
                "alt": "Photo by Dora Cakes on June 14, 2025.",
                "likesCount": 1,
                "timestamp": "2025-06-14T18:41:34.000Z",
                "childPosts": [],
                "ownerUsername": "dora.prague.cakes",
                "ownerId": "66573658348",
                "isCommentsDisabled": false
            }
        ],
        "fbid": "17841466550451707"
    }
]
```

#### #️⃣ Extracted Instagram search data sample (search by hashtags)

```json
[
    {
        "searchTerm": "pope",
        "searchSource": "instagram",
        "name": "popethanavat",
        "postsCount": 7034999.999999999,
        "url": "https://www.instagram.com/explore/tags/popethanavat",
        "id": "popethanavat",
        "posts": "70.35 K",
        "postsPerDay": "—",
        "difficulty": "",
        "related": [
            {
                "hash": "#popezaap",
                "info": "1.49 m"
            }
        ],
        "frequent": [],
        "average": [],
        "rare": [
            {
                "hash": "#popethanavat",
                "info": "70.35 k"
            }
        ],
        "relatedFrequent": [
            { "hash": "#popezaap", "info": "1.49 m" },
            { "hash": "#metal", "info": "40.61 m" },
            { "hash": "#deathmetal", "info": "7.14 m" },
            { "hash": "#bellacampen", "info": "1.27 m" },
            { "hash": "#progressivemetal", "info": "1.33 m" },
            { "hash": "#music", "info": "515.74 m" },
            { "hash": "#vinylcollection", "info": "15.63 m" },
            { "hash": "#vinyl", "info": "38.42 m" },
            { "hash": "#heavymetal", "info": "13.23 m" }
        ],
        "relatedAverage": [
            { "hash": "#popeza", "info": "252.96 k" },
            { "hash": "#popebella", "info": "221.86 k" },
            { "hash": "#progmetal", "info": "823.7 k" },
            { "hash": "#broadcastthaitv", "info": "125.16 k" },
            { "hash": "#dreamtheater", "info": "484.32 k" },
            { "hash": "#deeppurple", "info": "657.38 k" },
            { "hash": "#childrenofbodom", "info": "141.01 k" },
            { "hash": "#ramstein", "info": "104.79 k" },
            { "hash": "#ch3thailand", "info": "947.86 k" }
        ],
        "relatedRare": [
            { "hash": "#b1b2loveunlimited", "info": "15.17 k" },
            { "hash": "#mikaelakerfeldt", "info": "21.85 k" },
            { "hash": "#damnation", "info": "59.51 k" },
            { "hash": "#lovedestiny2", "info": "45.68 k" },
            { "hash": "#sanoplusbypope", "info": "29.04 k" },
            { "hash": "#thanavatvatthanaputi", "info": "50.4 k" },
            { "hash": "#myoxygen", "info": "46.7 k" },
            { "hash": "#lovedestinythemovie", "info": "27.89 k" },
            { "hash": "#luciano_popezaap", "info": "8093" }
        ]
    }
]
```

#### 🎬 Extracted Instagram search data sample (search by popular reels)

```json
[
    {
        "id": "3454963213298691216",
        "type": "Video",
        "shortCode": "C_yfrzAteyQ",
        "inputUrl": "https://www.instagram.com/popular/golf-prague",
        "url": "https://www.instagram.com/p/C_yfrzAteyQ/",
        "caption": "As it's my birthday today I've managed to slow down for a day and reflect a little bit. What a crazy 6 weeks we have just had...",
        "hashtags": [
            "golfcoach",
            "golflesson",
            "golfimprovement",
            "golfswing",
            "golf",
            "golftips",
            "golfpro",
            "golfinstruction",
            "golfinstructor",
            "golfhelp",
            "changingthegame",
            "growthegame"
        ],
        "mentions": [
            "brttoursauce",
            "heythropparkgc",
            "tourgolfnetwork",
            "eagleapparelgolf",
            "groovefix_golf",
            "pilotwagner",
            "speedstixgolf",
            "warnerhotels"
        ],
        "ownerUsername": "liamrobinsongolfcoaching",
        "ownerFullName": "Liam Robinson",
        "ownerId": "57178566202",
        "displayUrl": "https://scontent-mia3-3.cdninstagram.com/v/t51.71878-15/505739652_1280027937086697_5137321744338332112_n.jpg",
        "videoUrl": "https://scontent-mia5-1.cdninstagram.com/o1/v/t16/f2/m86/AQMCYAMXz8tJ8yxV0l5lOYFEPvc7fdjNE34NncFoGE4pRpZPx0z8K6fkzfBa7ffKECfn6SN9hWyDdxloH-HOFsqAMqejBU15GRGdbyM.mp4",
        "audioUrl": "https://scontent-mia5-2.cdninstagram.com/o1/v/t2/f2/m86/AQOnKQD_P2nNmID3zXISssDGcuPtcWEhWmxkdJ1v2Z924oOUX_qpyCbuefEBiM8FvoPg0tZLpc_8p5CUiJ6TNGk.mp4",
        "dimensionsHeight": 1333,
        "dimensionsWidth": 750,
        "likesCount": 311,
        "commentsCount": 15,
        "videoViewCount": 7519,
        "videoPlayCount": 16402,
        "videoDuration": 35.4,
        "timestamp": "2024-09-11T19:45:47.000Z",
        "locationName": "Worldwide",
        "locationId": "169069617219371",
        "productType": "clips",
        "firstComment": "Hi Liam, we really like your coaching style from the lessons we've seen online. I've just sent you a DM to hopefully discuss some lessons.",
        "latestComments": [
            {
                "id": "17986860068765733",
                "text": "Hi Liam, we really like your coaching style from the lessons we've seen online. I've just sent you a DM to hopefully discuss some lessons.",
                "ownerUsername": "envermeyer",
                "likesCount": 0,
                "repliesCount": null,
                "timestamp": "2024-12-04T07:50:15.000Z"
            },
            {
                "id": "17954053229719213",
                "text": "Happy belated birthday 🥳🙌🏌️‍♂️",
                "ownerUsername": "denster.1",
                "likesCount": 1,
                "repliesCount": null,
                "timestamp": "2024-09-19T11:08:39.000Z"
            }
        ],
        "taggedUsers": [
            { "username": "branholloway", "full_name": "Bran Holloway", "is_verified": true },
            { "username": "brt_toursauce", "full_name": "BRT", "is_verified": true },
            { "username": "liamrobbo89", "full_name": "Liam Robinson", "is_verified": false },
            { "username": "tourgolfnetwork", "full_name": "Tour Golf Network", "is_verified": false }
        ],
        "musicInfo": {
            "artist_name": "liamrobinsongolfcoaching",
            "song_name": "Original audio",
            "uses_original_audio": true,
            "audio_id": "532824692464649"
        },
        "coauthorProducers": [
            { "username": "tourgolfnetwork", "id": "8165752258", "is_verified": false },
            { "username": "liamrobbo89", "id": "428765316", "is_verified": false }
        ],
        "childPosts": [],
        "images": [],
        "alt": null,
        "isCommentsDisabled": false
    },
    {
        "id": "3301960244295876457",
        "type": "Video",
        "shortCode": "C3S61j_t79p",
        "inputUrl": "https://www.instagram.com/popular/golf-prague",
        "url": "https://www.instagram.com/p/C3S61j_t79p/",
        "caption": "⛳️ Nejlepší golf začíná přípravou! 🏌️‍♂️ Představujeme vám 3 úžasné cviky od @golf_fitness_byma...",
        "hashtags": [
            "GolfLife",
            "GolfTips",
            "PřípravaJeKlíčem",
            "GolfFitness",
            "golfshop",
            "citygolfcz",
            "golfwarmup",
            "czech",
            "czechrepublic",
            "pardubice",
            "prague",
            "brno"
        ],
        "mentions": ["golf_fitness_byma"],
        "ownerUsername": "citygolfcz",
        "ownerFullName": "CityGolfcz - obchody, fitting",
        "ownerId": "3086568484",
        "displayUrl": "https://instagram.fmem1-2.fna.fbcdn.net/v/t51.71878-15/503653214_746557964474188_2264376604727620744_n.jpg",
        "videoUrl": "https://instagram.fmem1-2.fna.fbcdn.net/o1/v/t16/f2/m82/AQO5qXfxCikZfbiS-8syayPwHcnrOfUD69k-RiiOaV48lTgzXjtq9dXuWffLOYglAiB36V9cXPYrpLa68luT7-JybaBBIkDQSW2Ni-w.mp4",
        "dimensionsHeight": 1920,
        "dimensionsWidth": 1080,
        "likesCount": 130,
        "commentsCount": 0,
        "videoViewCount": 1131,
        "videoPlayCount": 3109,
        "videoDuration": 59.6,
        "timestamp": "2024-02-13T17:12:56.000Z",
        "productType": "clips",
        "firstComment": "",
        "latestComments": [],
        "taggedUsers": [{ "username": "golf_fitness_byma", "full_name": "Svatopluk Býma", "is_verified": false }],
        "musicInfo": {
            "artist_name": "Mountaineer",
            "song_name": "With Pleasure",
            "uses_original_audio": false,
            "audio_id": "1524711188353014"
        },
        "coauthorProducers": [{ "username": "golf_fitness_byma", "id": "1338482166", "is_verified": false }],
        "childPosts": [],
        "images": [],
        "alt": null,
        "isCommentsDisabled": false
    }
]
```

### Want to get other data from specific Instagram profiles or posts?

You can use the other dedicated scrapers below if you want to scrape specific Instagram data:

<table>

<tr><td>💙 <a href="https://apify.com/apify/facebook-search-scraper">Facebook Search Scraper</a></td>
<td>🖤 <a href="https://apify.com/clockworks/tiktok-user-search-scraper">TikTok Search Scraper</a></td> </tr>

<tr> <td>📷 <a href="https://apify.com/apify/instagram-post-scraper">Instagram Post Scraper</a></td><td>🎞️ <a href="https://apify.com/apify/instagram-reel-scraper">Instagram Reel Scraper</a></td> </tr>

<tr> <td>#️⃣ <a href="https://apify.com/apify/instagram-hashtag-scraper">Instagram Hashtag Scraper</a></td> 
<td>📊 <a href="https://apify.com/apify/instagram-hashtag-analytics-scraper">Instagram Hashtag Analytics Scraper</a></td> </tr>

<tr> <td>💬 <a href="https://apify.com/apify/instagram-comment-scraper">Instagram Comments Scraper</a></td> <td>💾 <a href="https://apify.com/apify/export-instagram-comments-posts">Export Instagram Comments and Posts Scraper</a></td> </tr>

<tr> <td>👤 <a href="https://apify.com/apify/instagram-profile-scraper">Instagram Profile Scraper</a></td> <td>🏷️ <a href="https://apify.com/apify/instagram-tagged-scraper">Instagram Mentions Scraper</a></td> </tr>
<tr>
<td>🔮 <a href="https://apify.com/apify/brand-collaboration-scraper">Instagram Influencer Collaboration Scraper</a></td>
<td>🛍️ <a href="https://apify.com/apify/facebook-ads-scraper">Instagram Ads Scraper</a></td>
</tr>
<tr> <td>👥 <a href="https://apify.com/apify/instagram-followers-count-scraper">Instagram Followers Count Scraper</a></td> <td></td> </tr>
</table>

> For more advanced use cases, check out 🔗 [Instagram Scraper](https://apify.com/apify/instagram-scraper) or 🔗 [Instagram API Scraper](https://apify.com/apify/instagram-api-scraper). They cover almost all the functionality of the dedicated scrapers.

### ❓FAQ

#### My Instagram search dataset is too long. How can I shorten it to keep only location data?

Go to Storage, then the Dataset tab, then scroll down to Advanced options. Choose `Posts` in Omit fields and you'll have only the main data in your dataset.

#### Can I scrape Instagram search by multiple keywords at once?

Yes. You can provide a **list of separate keywords** with a type to scrape separate datasets. You can also **add multiple terms simultaneously** by separating them with a comma, and you'll get all results in a single dataset.

#### Can I use keywords that include both a word and a location?

Absolutely. Keywords can include anything. For example:

- Searching `cakes` for profiles returns user accounts.
- Searching `prague` for Places gives you locations.
- Combining them, like `cakes prague`, will return different results depending on the type: for Places, likely cafes and registered businesses; for Profiles, likely creatives, small businesses, or entrepreneurs.

#### What's the best way to scrape local businesses on Instagram?

It depends on what you want to find. Using the same keyword for Places vs. Profiles often yields different results. For example, `cakes prague` as a Place search often shows cafes, while as a Profile search it shows creatives, small businesses, and entrepreneurs. This isn't a strict rule, but it's a common pattern that's connected to whether an account is listed in a certain business category or not. You can also try 🔗 [Local Lead Generation Agent](https://apify.com/apify/local-lead-generation-agent), built to find local businesses that are active on Instagram.

#### What are the best practices for searching hashtags?

Start with single-word hashtags. Multi-word hashtags usually return fewer results.

#### Why is the maximum 250 results per search term?

250 is the most Instagram returns for a single search, so the scraper can't go beyond it no matter how high you set the limit. To collect more, run several related keywords (each returns up to 250), or switch to a dedicated scraper such as 🔗 [Instagram Hashtag Scraper](https://apify.com/apify/instagram-hashtag-scraper) or 🔗 [Instagram Profile Scraper](https://apify.com/apify/instagram-profile-scraper) for deeper data on a specific target.

#### Where do the search results come from?

Results come from Google, Facebook Ads, or Threads.

#### Is it legal to scrape Instagram content?

Instagram Search Scraper only collects **publicly available data** from Instagram. It does not access private content. Some public data may still be considered personal data under regulations like the [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation). Only scrape data if you have a legitimate reason. For guidance, see the Apify blog on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

#### Can I integrate Instagram search data with other services?

Yes. Scraped data can be integrated with almost any cloud service or web app. Apify supports **Zapier, n8n, Slack, Make, Airbyte, Gumloop, CrewAI, IFTTT, Lindy, GitHub, Google Sheets, Google Drive**, [and more](https://apify.com/integrations). You can also use [webhooks](https://docs.apify.com/integrations/webhooks) to trigger actions whenever a run finishes, like sending notifications or syncing datasets.

#### Can I use this Instagram search API programmatically?

Yes. The Apify API provides programmatic access to run Actors, fetch datasets, monitor performance, and manage tasks. For Node.js, use the apify-client [NPM package](https://apify.com/apify/instagram-search-scraper/api/javascript). For Python, use the apify-client [PyPI package](https://apify.com/apify/instagram-search-scraper/api/python). Full API docs are available in the [Apify API reference](https://docs.apify.com/api/v2).

#### Can I get Instagram search results through an MCP server?

Yes. You can [connect](https://apify.com/apify/instagram-search-scraper/api/mcp) to an MCP server using clients like Claude Desktop or LibreChat, or build your own integration. For Instagram Search Scraper:

1. Start a Server-Sent Events (SSE) session to receive a `sessionId`.
2. Send API messages using that `sessionId` to trigger the scraper.
3. The message starts Instagram Search Scraper with the provided input.
4. The response should be: Accepted.

Learn more in the [MCP setup guide](https://blog.apify.com/how-to-use-mcp/).

#### Instagram Search Scraper not working

The Apify team constantly improves Actor performance. If you find bugs or technical issues, create an issue on the Actor's [Issues tab](https://apify.com/apify/instagram-search-scraper/issues/open).

# Actor input Schema

## `search` (type: `string`):

Provide a keyword which will be used to extract Instagram search results. A keyword can be one or more words. To scrape multiple search terms at once, submit them as a comma-separated list.

## `searchType` (type: `string`):

Choose the type of Instagram page to search for (places, profiles, or hashtags), or `Search popular reels` to scrape trending reels for the keyword.

## `searchLimit` (type: `integer`):

Set the maximum number of search results (hashtags, users, or places) you want to scrape. If you set it to 5, you'll get 5 results for each search term you've included.

## `enhanceUserSearchWithFacebookPage` (type: `boolean`):

For each user from the top 10, the scraper will extract their Facebook page that sometimes contains their business email. Keep in mind that you're forbidden to collect personal data in certain jurisdictions. See <a href="https://blog.apify.com/is-web-scraping-legal/#think-twice-before-scraping-personal-data">this article</a> for more details.

## `liveSearch` (type: `boolean`):

Enable this option if you want to get data from a live Instagram search. Please note that the dataset will be slightly different than the one produced by standard search.

## Actor input object example

```json
{
  "search": "restaurant",
  "searchType": "hashtag",
  "searchLimit": 1
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset containing profiles matching the search query

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "search": "restaurant",
    "searchType": "hashtag",
    "searchLimit": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("apify/instagram-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "search": "restaurant",
    "searchType": "hashtag",
    "searchLimit": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("apify/instagram-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "search": "restaurant",
  "searchType": "hashtag",
  "searchLimit": 1
}' |
apify call apify/instagram-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=apify/instagram-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/DrF9mzPPEuVizVF4l/builds/xOtPHrg8dmtepd0TN/openapi.json
