Instagram Hashtag Username Scraper avatar

Instagram Hashtag Username Scraper

Pricing

$0.15 / 1,000 hashtag posts

Go to Apify Store
Instagram Hashtag Username Scraper

Instagram Hashtag Username Scraper

Find public Instagram posts by hashtag and save usernames, captions, media links, available engagement counts, and author details. Use the dataset for hashtag research without an Instagram login.

Pricing

$0.15 / 1,000 hashtag posts

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

🔎 Find Instagram users from hashtags

Marketers, researchers, and creator teams can search public Instagram hashtags and get structured post rows with usernames, available author IDs, captions, engagement counts, media links, and post URLs. This helps you find accounts and study the content around a hashtag without an Instagram login.

Use it to:

📋 Public hashtag post data

Each saved row represents one public Instagram post found through a submitted hashtag. It includes post identity, public author details, caption text, caption hashtags and mentions, engagement counts, publication time, media details, and source links when Instagram provides them.

The Actor saves the first eligible match for a source post. If the same post appears again through another submitted hashtag, the later match is ignored. The saved row describes that first match only.

▶️ Search hashtags and save posts

How it works

  1. Add one or more hashtag values in the Input tab.
  2. Set a maximum number of posts for each hashtag, or add a date filter.
  3. Start the run and let the Actor save eligible public post rows.
  4. Open the dataset link in the run output.

To shorten the run and review fewer rows, set a lower Maximum posts per hashtag value or use Posts newer than. Leave Maximum posts per hashtag empty to return all available posts until the source is exhausted.

⚙️ Input

Input fields

FieldTypeWhat it does
hashtagsarray of stringsRequired. Add one or more Instagram hashtag values, with each value as a separate item.
maxPostsPerHashtagintegerOptional positive limit for each hashtag. The schema has no upper bound. Leave it empty to return all available posts until the source is exhausted.
newerThanstring (YYYY-MM-DD)Optional date filter. Only include posts published after this date. Leave it blank to include all available dates.

Default input example

This example is from a successful current beta run with the default input.

{
"hashtags": [
"travel"
],
"maxPostsPerHashtag": 10
}

🧾 Output

Dataset link

FieldTypeWhat it does
datasetstringLink to the saved public Instagram post rows in the overview view.

Post rows

FieldTypeWhat it does
mediaIdstringRequired stable identifier of the public Instagram media.
shortcodestringRequired shortcode used in the public post URL.
postUrlstring (URL)Required public URL of the Instagram post.
sourceHashtagstringSubmitted hashtag that first led to this post, without #, when available.
authorobjectRequired available public details about the post author.
author.usernamestringRequired username of the account that posted the media.
author.idstringPublic author identifier when available.
author.displayNamestringPublic display name of the post author when available.
author.isVerifiedbooleanWhether Instagram marks the author as verified when available.
author.isPrivatebooleanWhether Instagram marks the author account as private when available.
author.profileImageUrlstring (URL)Public URL of the author's profile image when available.
captionstringCaption published with the post when available.
hashtagsarray of stringsHashtags found in the post caption when available.
mentionsarray of stringsUsernames mentioned in the post caption when available.
likesCountintegerNumber of likes shown for the post when available.
commentsCountintegerNumber of comments shown for the post when available.
videoViewsCountintegerNumber of views shown for a video or reel when available.
videoDurationSecondsnumberLength of a video or reel in seconds when available.
publishedAtstring (date-time)Time when the post was published when available.
mediaTypestringType of the public media, such as photo, video, reel, or carousel.
mediaUrlstring (URL)Main public URL for the post media when available.
dimensionsobjectWidth and height of the main media when available.
dimensions.widthintegerWidth of the main media in pixels.
dimensions.heightintegerHeight of the main media in pixels.
locationobjectPublic location attached to the post when available.
location.namestringPublic name of the attached location.
location.idstringPublic location identifier when available.
taggedAccountsarray of objectsPublic accounts tagged in the post when available.
taggedAccounts[].usernamestringUsername of a tagged public account.
taggedAccounts[].idstringPublic identifier of a tagged account when available.
taggedAccounts[].displayNamestringDisplay name of a tagged account when available.
collaboratorsarray of objectsPublic accounts listed as collaborators when available.
collaborators[].usernamestringUsername of a collaborator account.
collaborators[].idstringPublic identifier of a collaborator when available.
collaborators[].displayNamestringDisplay name of a collaborator when available.

Example post row

This complete row came from a successful current beta run for the photodump hashtag. Optional fields that were not returned are not added.

{
"mediaId": "POLARIS_3907137784182940844",
"shortcode": "DY48R0iuySs",
"postUrl": "https://www.instagram.com/p/DY48R0iuySs/",
"author": {
"username": "aaverdeestefany",
"id": "17841428646874266",
"displayName": "𝑬𝒔𝒕𝒆𝒇𝒂𝒏𝒚 𝑴𝒐𝒓𝒆𝒏𝒐",
"isVerified": false,
"isPrivate": false,
"profileImageUrl": "https://scontent-dfw5-2.cdninstagram.com/v/t51.75761-19/491496796_18065630422954896_9093467990242766351_n.jpg?stp=cp0_dst-jpg_s34x34_tt6&_nc_cat=100&ccb=7-5&_nc_sid=bf7eb4&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4xMDI0LkMzIn0%3D&_nc_ohc=N9Q9M1pt83EQ7kNvwF6nMcq&_nc_oc=AdojPKOjj9lhhGffJdgh6V81gOzl3mojcqFgRQDQez0L3a-wGLIJHnqjG7D5NRgfSe0&_nc_zt=24&_nc_ht=scontent-dfw5-2.cdninstagram.com&_nc_gid=hwPu5acJWhzCsm4AbpmjvQ&_nc_ss=73689&oh=00_AQL5skiv86JFbFFVyHqixq_28ngt88Wd6O1rS_WjCUQASw&oe=6A9BFC0C"
},
"mediaType": "reel",
"caption": "Un dump de fotos y videos porque una sola imagen no era suficiente 🌿📸\nCosas bonitas, momentos simples y un poquito de todo lo que me inspira últimamente ✨\n\n#photodump #collage #aesthetic #plantlover #dump reels tiktok momentos vibes naturaleza contenido fyp",
"hashtags": [
"photodump",
"collage",
"aesthetic",
"plantlover",
"dump"
],
"likesCount": 14478,
"commentsCount": 38,
"publishedAt": "2026-05-28T16:55:18.000Z",
"mediaUrl": "https://scontent-dfw6-1.cdninstagram.com/o1/v/t2/f2/m86/AQMUVqDqvXQPt6d4U_lIiLtrE3z327wtlq5c0eWwVrOZOK3srp2UaE_gYaRpwf2eRPOF3UL7M4Z9uX-1h7ujj_HiLD7ZYxtV4seaED0.mp4?_nc_cat=102&_nc_sid=5e9851&_nc_ht=scontent-dfw6-1.cdninstagram.com&_nc_ohc=A9pVIjjs6R8Q7kNvwF010F_&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTQzNDg5NzQ1ODY3MjQ2OCwiYXNzZXRfYWdlX2RheXMiOjk1LCJ2aV91c2VjYXNlX2lkIjoxMDgyNywiZHVyYXRpb25fcyI6NywidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&vs=747d9e3007efb07c&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC9GMzQzRDc2NEY1RkNBRjhDMzkxQUJBMTBBN0U2NDJBNF92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyL0Y2NDQxM0REMzMzMDA3NDdFQ0E0RUU0NTZEMTNDQzk2X2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACaozYGVg8KMBRUCKAJDMywXQB5DlYEGJN0YEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HZZapAQA&_nc_gid=hwPu5acJWhzCsm4AbpmjvQ&_nc_ss=73689&_nc_zt=28&oh=00_AQLi679CON5i7hCqZeXVw6GUKJEVq6HJr7wTpZSJRz6HKA&oe=6A983CAB",
"dimensions": {
"width": 1215,
"height": 2160
},
"videoViewsCount": 206048,
"videoDurationSeconds": 7.568254,
"sourceHashtag": "photodump"
}

💳 Pricing

Charged event

This Actor uses pay-per-event pricing. Apify charges one event for each eligible public post saved to the dataset, with available username and post metadata. The current event price is shown before you run. Your total depends on the number of posts saved and the limits you choose.

🔌 Integrations

Open the dataset in Apify or use the Apify API to read and export saved rows.

❓ FAQ

What happens when the same post matches more than one hashtag?

The Actor saves the first eligible match and ignores later matches for that source post. The saved row keeps the data from the first match.

Can I search more than one hashtag in one run?

Yes. Add each hashtag as a separate item. The Actor searches each one and applies the post limit and date filter to each hashtag.

What does leaving Maximum posts per hashtag empty do?

It returns all available posts until the source is exhausted. The schema does not set an upper bound for this field.

Can I filter posts by date?

Yes. Enter a date in YYYY-MM-DD format in newerThan. The Actor includes posts published after that date.

What if Instagram does not provide a field?

Optional public fields may be missing or null when Instagram does not provide them. The Actor does not guess missing values.

Does it return every post for a hashtag?

No complete or fixed result set is promised. Public availability can change. With no per-hashtag limit, the Actor continues until the source is exhausted.

Can it access private posts or use my Instagram login?

No. This Actor discovers public hashtag posts and does not require an Instagram login or other customer credentials.

📝 Changelog

v0.1 (01-09-2026)

  • Adds source hashtag, video views and duration, location, tagged-account, and collaborator details when Instagram provides them.
  • Improves post discovery when Instagram returns transient, incomplete, or alternate response data.

v0.0

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré