Instagram & Threads Scraper API: Search, Profiles & Posts
Pricing
from $2.10 / 1,000 search results
Instagram & Threads Scraper API: Search, Profiles & Posts
Search Instagram and Threads by keyword in one Actor. Get accounts, hashtags with post counts, and Threads posts with like, reply, repost and quote counts - plus profile and post modes for any creator. Signed-in search is built in, so you get the full results with nothing to set up.
Pricing
from $2.10 / 1,000 search results
Rating
0.0
(0)
Developer
Kelopr_bk
Maintained by CommunityActor stats
0
Bookmarked
46
Total users
2
Monthly active users
13 days ago
Last modified
Categories
Share
Instagram & Threads Scraper β Search, Profiles & Posts in one API
π§΅ Also need the wider social graph? Pair this with our other scrapers on apify.com/trakk β Instagram and Threads here, plus TikTok, YouTube, Reddit and X/Twitter, all with the same clean output shape.
One Actor for both of Meta's text networks. Search Instagram and Threads by keyword in a single run, or pull full profiles and posts from any creator on either platform β accounts, hashtags with post counts, Threads posts with like / reply / repost / quote counts, and one consistent, flat output shape across both.
π Signed-in search is built in. Instagram's own search answers 401 when signed out and Threads shows nothing at all β so rich results normally need a logged-in session. This Actor brings its own managed session pool, so you get the signed-in results with nothing to paste and no cookies to manage. If the pool is ever busy, search automatically falls back to public results so a run never fails outright.
No login, no browser, no setup. Existing API integrations that send the original mode values keep working unchanged.
βΆοΈ Your first run
- Open Input. The first question is What to scrape β leave it on π Instagram + Threads search, which searches both networks in one run.
- Under Search, add a keyword or hashtag per row β
marketing,#travel,ai startup. - Ignore everything else β Profiles & posts only matters for the profile/post modes, and Advanced has sensible defaults. Click Start. For a first run, use one or two queries.
- Open Output β Main results. Every row carries
platformandtype, so accounts, hashtags and posts stay easy to filter. - Use Export to download CSV, Excel or JSON. JSON keeps the nested objects; All fields gives the full record.
Copy this into Input β JSON for a first run:
{ "mode": "META_SEARCH", "queries": ["marketing", "ai startup"], "maxResults": 50 }
π Pick your mode
| Mode (as shown in the input) | Best for | What you receive |
|---|---|---|
π Instagram + Threads search (META_SEARCH) | Broad discovery | Instagram accounts + hashtags and Threads posts + authors, in one run |
πΈ Instagram search (INSTAGRAM_SEARCH) | Finding accounts & hashtags | Matching accounts (with the Threads-presence flag), hashtags with post counts, places |
π§΅ Threads search (THREADS_SEARCH) | Topic & post monitoring | Matching Threads posts with engagement, plus one row per author found |
πΈ Instagram profiles (INSTAGRAM_PROFILES) | Creator research | One profile row per Instagram username / URL |
π§΅ Threads profiles (THREADS_PROFILES) | Creator research | One rich profile row per Threads username / URL |
πΈ Instagram posts (INSTAGRAM_POSTS) | Content pull | Recent posts for each Instagram creator |
π§΅ Threads posts (THREADS_POSTS) | Content pull | Recent posts for each Threads creator |
π₯ Profile comparison (PROFILE_COMPARISON) | Cross-platform audit | One row per creator lining up their Instagram and Threads presence side by side |
π All content (ALL_CONTENT) | Everything on a creator | Profiles, posts and the comparison together |
Pricing is on the Actor's Pricing tab. Empty and duplicate rows are never charged, and filters (date cutoff, limits) are applied before billing.
π§Ύ What you get β fields
Every row carries platform (instagram / threads) and type / recordType, so mixed results stay easy to filter. Field names match the mainstream Instagram/Threads scrapers (ownerUsername, likesCount, followersCount, shortCode, timestamp, β¦) and our native names, so the output drops into tooling built for either.
π€ Accounts & profiles
| Field | Meaning |
|---|---|
username, fullName, userId | identity |
url, profilePicUrl, profilePicUrlHD | links & avatar (HD on Threads) |
followersCount / followerCount, followsCount, postsCount | audience & output size |
verified, isPrivate | status flags |
biography, externalUrl / externalUrls, bioLinks | bio & links |
emails, phones | lead-gen β contacts extracted from the bio |
hasThreadsProfile | our cross-platform signal β an Instagram account that also exists on Threads |
accountBadges, isRingCreator, hasActiveReel, socialContext | Instagram search extras |
profileTags, podcastName/podcastUrl, newsletterName/newsletterUrl, hasThreadsBadge | Threads profile extras |
π Posts
| Field | Meaning |
|---|---|
shortCode, url, postId, type / postType | identity & kind (image / video / carousel / text) |
ownerUsername, ownerFullName, ownerId | author |
text, hashtags, mentions, language | content |
timestamp / publishedAt | when it was posted |
likesCount, commentsCount, replyCount, repostCount, quoteCount, shareCount, videoViewCount | engagement |
displayUrl, imageUrls, videoUrls, mediaUrls | media |
dimensionsWidth, dimensionsHeight, isPinned, isPaidPartnership, isAffiliate, coauthorProducers, sponsors | Instagram extras |
isReply, replyToUsername, isRepost, isQuote, quotedPostUrl, linkPreviewUrl, linkPreviewTitle, accessibilityCaption | Threads extras |
#οΈβ£ Hashtags & π places (Instagram search)
name, url, mediaCount (post count), subtitle, hashtagId Β· places add latitude, longitude, address, city, placeId.
π§© Input reference
| Field | What it does |
|---|---|
mode | which workflow to run (see the table above) |
queries | search phrases, one per row β marketing, #travel, ai startup |
usernames | creators to pull β username, @handle, or profile URL |
directUrls | paste Instagram/Threads profile, post or hashtag URLs; routed to the right scraper automatically |
searchSort | order search results top (relevant) or recent (newest) |
onlyPostsNewerThan | keep only posts newer than a date, an ISO timestamp, or a relative value (7 days, 2 months, 1 year) |
maxResults | hard stop for the whole run |
resultsLimit | posts per profile, or hits per query |
maxResultsPerQuery / maxPostsPerProfile | advanced per-target overrides |
proxyConfiguration | optional proxy (residential recommended for the largest runs) |
rawOutput | keep the untouched source payload alongside the clean row |
π§ͺ Recipes
Find creators in a niche, with their Threads presence
{ "mode": "INSTAGRAM_SEARCH", "queries": ["sustainable fashion"], "maxResults": 200 }
Filter to type = account, then to hasThreadsProfile = true.
Track a topic on Threads and rank by engagement
{ "mode": "THREADS_SEARCH", "queries": ["ai regulation"], "searchSort": "recent", "maxResults": 300 }
Filter to type = post and sort by likesCount or repostCount.
Pull a creator's recent posts from the last 3 months
{ "mode": "INSTAGRAM_POSTS", "usernames": ["natgeo"], "resultsLimit": 30, "onlyPostsNewerThan": "3 months" }
Compare a creator across both platforms
{ "mode": "PROFILE_COMPARISON", "usernames": ["nike"] }
Just paste links
{ "mode": "META_SEARCH", "directUrls": ["https://www.instagram.com/natgeo/", "https://www.threads.com/@zuck", "https://www.instagram.com/explore/tags/travel/"] }
βοΈ Notes & limits
- Signed-in search is managed for you and spreads across a rotating session pool with built-in pacing, so no single account is hammered.
- Instagram profiles & posts come from public sources, so follower counts, bios and media are returned without touching any account. Some fields that Instagram now exposes only behind its throttled private API (business category, business e-mail) are therefore not returned for Instagram; Threads returns its full bio-link and contact set.
- Instagram occasionally omits a profile's recent media from its public payload; when that happens the profile row is still returned with its counts.
- Empty fields simply mean the platform did not expose that value for that item.