September 23, 2026 · 12 min read
Instagram Keyword Scraper: 135 of 153 Runs Succeeded (2026)
Each post record carries 21 fields, including engagement metrics, media URLs, location data, and music information. Operating on Apify's free plan, a thousand results costs $5.00, and Apify's free plan includes $5.00 of monthly usage with no credit card. The example input caps maxPosts at 3, returning at most 3 results for up to $0.01 in result charges. Built for marketers, researchers, and analysts who need structured keyword data at scale, this Actor is not for anyone who requires private account access or data from sources outside public search results.
Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 1,000 results at $0.005 each before platform usage. Open Instagram Keyword Scraper on Apify and run the prefilled example.
How reliable is Instagram Keyword Scraper in production?
Across the last 30 days of public runs on the Apify platform, Instagram Keyword Scraper recorded 153 runs with the following outcomes.
| Outcome | Runs | Share |
|---|---|---|
| Succeeded | 135 | 88.2% |
| Failed | 0 | 0.0% |
| Aborted by the user | 15 | 9.8% |
| Timed out | 3 | 2.0% |
| Total | 153 | 100.0% |
The telemetry shows about 2 runs in a hundred time out. Build alerting around timeout events and keep input batches small to minimize long-running jobs. Aborted runs were stopped by the user.
What does it cost to run Instagram Keyword Scraper?
Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.05 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.005 | $5.00 |
| BRONZE | $0.00433 | $4.33 |
| SILVER | $0.00367 | $3.67 |
| GOLD | $0.003 | $3.00 |
| PLATINUM | $0.003 | $3.00 |
| DIAMOND | $0.003 | $3.00 |
Worked example: collecting 10,000 results costs $50.00 in result charges before run-start fees and platform usage. With 2.0% of runs failing or timing out in the last 30 days, budget for re-running a portion of those batches rather than assuming every run completes.
The primary cost driver is the maxPosts control, which directly determines the number of posts written to the dataset. The cheapest way to evaluate the output before spending is to run a single keyword capped at 3 posts using Apify's free plan.
How do you run Instagram Keyword Scraper from the API?
The schema marks 1 of its 4 controls as required: keywords. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Instagram Keyword Scraper, so the request works once your token is in place.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~instagram-keyword-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords":["fitness"],"maxPosts":3,"sessionName":"default_session"}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"keywords": [
"fitness"
],
"maxPosts": 3,
"sessionName": "default_session"
}
run = client.actor("crawlerbros~instagram-keyword-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"keywords": [
"fitness"
],
"maxPosts": 3,
"sessionName": "default_session"
}
const run = await client.actor('crawlerbros~instagram-keyword-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.
Which Instagram Keyword Scraper inputs matter, and which can you skip?
The keywords control is required and accepts up to 50 search phrases. Leave sessionName on its default value unless managing multiple Instagram accounts.
keywords(array): List of keywords or phrases to search for on Instagram. Each keyword will be searched separately.maxPosts(integer): Maximum number of posts to extract for each keyword. Default:20.cookies(string): Instagram authentication cookies in JSON format. If not provided, uses our own cookies file as fallback. Format: [{"name":"sessionid","value":"...","domain":".instagram.com"}, ...]. See README for extraction instructions.sessionName(string): Name for saving/loading cookies between runs. Use different names for different Instagram accounts. Default:"default_session".
What does Instagram Keyword Scraper return?
The returned records are well-suited for tracking content trends, engagement patterns, and hashtag usage. They do not contain private profile details or direct contact emails.
username:string- Instagram username of the post authorfull_name:string- Full display name of the post authorprofile_url:string- URL to the author's Instagram profilecollaborators:array- List of collaborator usernames on the postpost_url:string- Direct URL to the Instagram postpub_date:string- Publication date in ISO 8601 formatcaption:string- Full caption text of the postmentions:array- Usernames @mentioned in the captionhashtags:array- Hashtags used in the captionmedia_urls:array- Direct URLs to media files (images and videos)thumbnail_url:string- URL of the post thumbnail imagemedia_type:string- Type of media: Photo, Video, Reel, IGTV, or Carouselmedia_count:integer- Number of media items in the postlikes_hidden:boolean- Whether like counts are hidden on this postlike_count:integer- Number of likes (null if hidden by the author)comment_count:integer- Number of comments on the postlocation:object- Location tagged in the post (name, latitude, longitude)music:object- Music/audio used in the post (artist and title)search_keyword:string- The keyword that was used to find this postscraped_at:string- Timestamp when the data was collectedstatus:string-"success"when a post was extracted,"No posts found"when a keyword has no results
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open Instagram Keyword Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Add your search keywords to the keywords control, providing at least one term such as "fitness".
- Paste your authentication cookies into the cookies control using the required JSON format.
- Set the maxPosts control to a low integer such as 3 for your initial test run.
- Assign a unique identifier to sessionName if you plan to manage multiple accounts.
- Click Start to launch the extraction and wait for the execution to complete.
- Inspect the resulting dataset to verify that fields such as username, caption, and like_count are populated.
How do you apply it? Three worked playbooks
These are Instagram Keyword Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Market research
Outcome: Analyze trending topics and popular content for any niche or industry
Configure: Set keywords to your target industry terms and maxPosts to 50.
Working method: Run the Actor for a single niche keyword first, compare engagement metrics across media types, and expand your keyword list once the structure confirms.
Deliverable: A dataset of posts containing captions, hashtags, and engagement counts.
Stop condition: Runs return empty datasets due to expired session cookies.
Use case 2: Influencer discovery
Outcome: Find creators in specific niches by searching relevant keywords
Configure: Set keywords to niche-specific phrases and maxPosts to 100.
Working method: Execute a search for a distinct creator community, sort the resulting items by author profile URLs, and filter for active posters.
Deliverable: A list of creator profile URLs and corresponding post metadata.
Stop condition: Authentication errors block search page access completely.
Use case 3: Brand monitoring
Outcome: Track how your brand, products, or campaigns are discussed on Instagram
Configure: Set keywords to your brand name or campaign hashtags and maxPosts to 200.
Working method: Schedule periodic runs with sessionName configured, track changes in comment and like counts over time, and aggregate mention frequencies.
Deliverable: A dataset of brand mentions containing caption text and publication timestamps.
Stop condition: Runs consistently time out.
What breaks, and how do you design around it?
- Over the last 30 days, 0.0% of public runs failed and 2.0% timed out. Build retries and alerting around those rates rather than assuming every run completes.
When session cookies expire and cause search access to fail, update your credentials via the cookies input. When encountering unexpected low result counts for a broad keyword, consider splitting it into more specific, niche terms.
When should you not use Instagram Keyword Scraper?
Do not use this Actor if you need to gather posts from known Instagram users directly from their profiles without using keyword searches. For that specific need, the Instagram Profile Scraper is the appropriate tool. Avoid this Actor if your only input is direct post URLs rather than search terms; in such cases, the Instagram Post Scraper can extract data without requiring cookies. Skip this tool if your primary objective is to collect comments from a specific, already identified post; instead, use the Instagram Comment Scraper. This Actor focuses on keyword-driven post discovery, making it less suitable for scenarios where you already know the exact profiles or posts you wish to analyze.
What should you check before trusting the output?
- Verify that the username field is non-empty for every successfully extracted record.
- Check that like_count is either a valid integer or null when likes_hidden is true.
- Ensure that the status field contains "success" for valid posts or "No posts found" when a keyword has no matches.
- Confirm that pub_date matches a valid ISO 8601 string format before processing timestamps further.
- Stop any scheduled run immediately if the output dataset consistently returns status values of "No posts found" across all provided keywords.
None of this proves a record is correct. It gives a scheduled Instagram Keyword Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
How do I provide valid authentication cookies for Instagram searches?
You must export cookies from an active Instagram session using a browser extension like Cookie-Editor and paste the resulting JSON array into the cookies input field. Using a dedicated scraping account is strongly recommended because session tokens expire periodically and require manual refreshing.
What happens when a search keyword returns no matching posts on Instagram?
When a search yields no results, the scraper writes a single fallback record to the dataset containing the search_keyword and a status value of "No posts found". This behavior allows automated pipelines to distinguish between a failed execution and a keyword that simply has zero matches.
How much does it cost to use this Actor on Apify's free plan?
On Apify's free plan, each result costs $0.005, which is $5.00 per 1,000 results. Apify's free plan includes $5.00 of monthly usage, which covers up to 1,000 results of this Actor before run-start charges and other platform usage fees.
Can I extract video files and carousel media from the search results?
Yes, the media_urls array provides direct links to images, videos, and all items within carousel posts. The media_type field identifies whether each retrieved item is a Photo, Video, Reel, IGTV, or Carousel.
Why did my run time out during execution?
Telemetry shows that 3 runs timed out out of 153 total runs in the last 30 days. Timeouts usually occur when processing extremely large keyword batches, so reducing maxPosts per keyword helps prevent long-running executions.
Where to go next
When you are ready to run it, open Instagram Keyword Scraper on Apify; the free plan covers up to 1,000 results a month.
Start with the Instagram Keyword Scraper Actor page for the current input schema, pricing tier, and run history.
It is part of the Instagram Scraping Suite, which puts every related Actor on one page with its price and run history.
Readers running Instagram Keyword Scraper commonly pair it with:
- Instagram Keyword Search Scraper: Extract posts from Instagram keyword search results.
- Instagram Hashtag Scraper: Extract posts from Instagram hashtags with complete metadata including engagement metrics, captions, media info, and author details.
- Instagram Post Scraper: Scrape public Instagram posts, reels, IGTV and carousel posts from direct URLs with no login, no cookies, no browser required.
- Instagram Story Downloader: Scrape and optionally download Instagram stories for specified usernames using Playwright.
- Instagram Comment Scraper: Extract comments from Instagram posts and reels with complete metadata including replies, likes, and author details.
- Instagram Tagged Posts Scraper: Extracts posts where a specific Instagram user is tagged by others.
- Instagram Profile Scraper: Extract comprehensive data from Instagram profiles including posts, reels, photos, and engagement metrics.
- Instagram Transcript Scraper: Extract transcripts from Instagram videos and reels using auto-generated captions or AI-powered speech-to-text.
Related guides:
- Instagram Keyword Search Scraper: 5,683 of 6,004 Runs Succeeded (2026)
- Automating Instagram Post Extraction: Custom Workflows and Playbooks
- Automating Influencer Vetting on Instagram and TikTok: Full Guide
- Instagram Data Extraction Guide: Profiles, Hashtags, and Comments
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-23.
Actor last updated by its maintainers on 2026-04-15.
Run outcome figures cover the 30 day public window ending 2026-09-23.
● Featured actors
Instagram Keyword Scraper
Search Instagram by keywords and extract detailed post data at scale. Get usernames, captions, engagement metrics, media URLs, hashtags, mentions, location data, music info, and more for every matching post. Perfect for market research, brand monitoring, competitor analysis and etc.
Run on Apify ↗