Instagram & Threads Search Scraper | Posts & Media
Pricing
$0.75 / 1,000 search results
Instagram & Threads Search Scraper | Posts & Media
Search public Instagram posts and Threads discussions by query. Extract captions, authors, dates, likes, comments, media previews, direct URLs, deduplicated results, and clean profile data.
Pricing
$0.75 / 1,000 search results
Rating
0.0
(0)
Developer
Kelopr
Maintained by CommunityActor stats
0
Bookmarked
34
Total users
12
Monthly active users
an hour ago
Last modified
Categories
Share
๐ Instagram & Threads Search Scraper โ Public Posts by Keyword & Hashtag
Search public Instagram and Threads posts by keyword or hashtag, and get back clean, deduplicated rows โ authors, captions, engagement, images, and direct links. Type a query, hit start. No login, no browser.
Most people arrive with the same handful of questions, so this page is written as answers. Skim to the one you need.
{"mode": "META_SEARCH","queries": ["marketing", "ai startup"],"maxResults": 100,"maxResultsPerQuery": 10}
queries: "marketing" ยท "#travel" ยท "ai startup"โโผ mode picks the platforms:โ โข META_SEARCH โ ๐ช Instagram + ๐งต Threads (both)โ โข INSTAGRAM_SEARCH โ ๐ช Instagram onlyโ โข THREADS_SEARCH โ ๐งต Threads onlyโผ๐ search public indexed posts โ per query, per platformโโผ๐งน dedupe URLs โ every matching query kept in searchQueriesโโผ๐๏ธ enrich each hit from its public page (author ยท likes ยท image)โโผโ flat rows โธ Results / Query results โ ๏ธ blocked / empty โธ Issues(paid rows capped by maxResults)
โ What does this actually do?
You give it search queries โ keywords or hashtags. For each query it searches public indexed posts on Instagram and Threads, removes duplicate URLs, enriches each hit from its public page, and writes flat rows you can drop straight into a spreadsheet. Think social listening, not account exports.
โ Is this a profile scraper?
No โ it's a search scraper. The whole point is discovery by topic: "who is publicly posting about X right now," across two platforms at once. You don't need to know the accounts in advance; you describe the subject and it finds the posts. (There are legacy profile modes still bundled in โ see the question near the bottom โ but the search modes are the main event.)
โ What can I search for?
Anything you'd type into a search box: a brand, a product, a campaign name, a topic, or a hashtag like #travel. Add one query per row. A good starting set:
{ "queries": ["marketing", "#travel", "ai startup"] }
โ What's the difference between the three search modes?
mode | What it searches |
|---|---|
META_SEARCH (default) | Public Instagram posts and Threads posts for every query, in one run |
INSTAGRAM_SEARCH | Instagram only โ queries run as public hashtag / post search |
THREADS_SEARCH | Threads only โ queries search public indexed Threads posts |
Instagram queries are searched as public hashtag/post content; Threads queries search public indexed Threads posts. META_SEARCH simply does both and merges the results.
โ What do I get back for each post?
A compact row in the main Results dataset:
{"recordType": "search_result","platform": "instagram","resultTitle": "Instagram | janedoe","resultText": "Behind the scenes of our new marketing campaign...","resultMetrics": "1,240 likes | 58 comments | query: marketing","resultImageUrl": "https://instagram.f...cdn.net/....jpg","resultUrl": "https://www.instagram.com/p/CxAbc123/","scrapedAt": "2026-08-07T18:30:02+00:00"}
Need every field? The Query results dataset carries the full structured record for the same post:
| Field | Meaning |
|---|---|
platform | instagram or threads |
searchQuery ยท searchQueries | The query that found it, plus every query it matched |
searchEngine ยท searchRank | Discovery source and rank within that query |
contentType | post ยท reel ยท video ยท thread |
title ยท text | Public page title and caption / text |
authorName ยท authorUsername | Parsed author display name and handle |
likeCount ยท commentCount | Engagement where the public page exposes it |
publishedAt | Publish date where available |
hashtags ยท mentions | Extracted from the caption |
imageUrl | Preview image |
url ยท sourceUrl | Canonical post URL and the URL it was found at |
detailStatus | page_metadata (enriched) or search_result_only (link-level) |
scrapedAt | When the row was collected |
โ Do I need an Instagram or Threads login?
No โ no account, no browser, no cookies. It's fully request-only and reads only public posts.
โ Why do some rows have no likes or comments?
Engagement is saved only when the post's public page exposes it (most reliable on Instagram). Rows without it still include the author, caption, image, and direct link. The detailStatus field tells you whether that page was enriched (page_metadata) or kept at link level (search_result_only).
โ Are duplicate posts removed?
Yes. When several queries surface the same post URL, it's merged into a single row โ and every query that matched it is kept in searchQueries, so you don't lose the attribution.
โ How do I control how many results (and the cost)?
Two dials:
maxResultsPerQuery(default10, max 50) caps how many public posts are collected per query, per platform, before duplicate URLs are removed.maxResults(default100) caps the total paid rows written to the main Results dataset for the run.
So maxResultsPerQuery controls breadth; maxResults is your run-cost ceiling.
โ What are those "legacy" profile modes I see in the dropdown?
PROFILE_COMPARISON, INSTAGRAM_POSTS, THREADS_POSTS, and ALL_CONTENT are older profile-based modes kept for existing API integrations (they use maxPostsPerProfile, and enableDeltaMonitoring / monitorKey for change tracking). For the normal keyword/hashtag workflow, stay on one of the three search modes above.
โ Which proxy should I use?
Direct requests are used by default (proxyConfiguration โ useApifyProxy: false). Leave it unless you have a specific reason to route through Apify Proxy.
โ How do I keep my exports clean?
Leave rawOutput off for the leanest tables. Use the Main results view for a quick scan and Query results when you need every field. Everything exports as CSV, Excel, JSON, or via the Apify API.
โ Where does failed or empty stuff go?
Anything that failed โ blocked or empty pages โ is written to a separate Issues dataset with a reason and source URL, so it never clutters your results.
๐๏ธ All the datasets a run writes
| Tab / dataset | What you see |
|---|---|
| Main results | Compact row per post โ platform, title, text, engagement, preview, link |
| Query results | Full structured search records (all fields above) |
| Platform comparison | Legacy: Instagram vs Threads profile stats side by side |
| Profiles ยท Posts & media | Legacy profile-mode outputs |
| Changes | Legacy: new / updated posts vs the previous monitored run |
| Issues | Anything that failed, with reason and source URL |
| Run summary | Counters: queries, results, per-platform posts, errors, runtime |
๐ฅ Input reference
| Field | Default | What it does |
|---|---|---|
mode | META_SEARCH | META_SEARCH ยท INSTAGRAM_SEARCH ยท THREADS_SEARCH, plus legacy profile modes |
queries | ["marketing", "ai startup"] | Keywords or hashtags to search, one per row (max 50) |
maxResults | 100 | Max paid rows written to the main Results dataset |
maxResultsPerQuery | 10 | Max posts collected per query per platform before de-duplication (max 50) |
maxPostsPerProfile | 10 | Legacy profile-mode: posts per profile |
enableDeltaMonitoring ยท monitorKey | false ยท โ | Legacy profile-mode change monitoring |
maxConcurrency | 40 | Parallel HTTP requests (1โ50) |
maxRetries | 1 | Retry budget for temporary errors (1โ10) |
timeoutSecs | 8 | Max time per HTTP request (5โ120) |
rawOutput | false | Keep raw source payloads for debugging |
proxyConfiguration | direct | Connection settings (direct requests by default) |
Add at least one queries entry for the search modes.
One last answer โ if this saved you a scrape, a quick โญ review on the Apify Store helps others find it and tells me which question to answer next.
๐ท๏ธ Tags: instagram ยท threads ยท instagram scraper ยท threads scraper ยท social media scraper ยท hashtag search ยท social listening ยท post scraper ยท lead generation