Instagram Hashtag Scraper

How to search multiple hashtags on Instagram at once

Published

Instagram cannot search multiple hashtags at once. Every hashtag has its own page, and there is no page for "posts tagged both #a and #b". To find posts that carry several hashtags together, you open one tag, read its posts into a list, and keep only the rows whose captions also carry the other tags. For a quiet tag you can do that by eye in the app. For a busy one you need the posts as rows, and then the filter takes a minute. This guide covers both, in that order, and says when the manual way is enough.

Why Instagram search takes one hashtag at a time

Type two hashtags into the Instagram search box and you get suggestions: tag pages, accounts, maybe audio. Pick one and you land on that single tag's page. The second tag you typed is simply ignored.

That makes sense for browsing. A tag page is a showcase of what Instagram thinks is worth seeing under that tag, ranked rather than listed. It becomes a problem when the question is about a combination:

Each of these is an intersection: posts that carry tag A and tag B. Instagram gives you A, or B, never both.

The three ways to search multiple hashtags

MethodWorks forWhat you getEffort
Scroll one tag in the appQuiet tags, a few dozen postsWhat you remember seeingHigh, by eye
Search the rarer tag, read captionsTwo tags where one is smallA short list you copy by handMedium
Read one tag into rows, filter the restAny tag size, three or more tagsA spreadsheet of matching postsLow once set up

The rest of this article walks through each one.

Method 1: scroll one tag and check captions

This is the way to start when the tags are small.

  1. Open Instagram and tap the search icon.
  2. Type the first hashtag, including the #, and open the tag page.
  3. Open each post and read its caption for the second hashtag.
  4. Note or save the posts that carry both.

It works, and it costs nothing. It stops working quickly for three reasons:

Method 2: start from the rarer hashtag

If one of your tags is much smaller than the other, always search from the small one. A campaign tag such as #brandsummerdrop2026 may have a few hundred posts, while #summer has many millions. The posts carrying both are, by definition, all inside the small tag, so the small tag is the only one you need to read.

  1. Decide which tag is rarer. The tag page usually shows a post count under the name.
  2. Open that tag's page.
  3. Check each post's caption for the bigger tag, or for every other tag on your list.

This one choice matters more than anything else in the whole job. Reading the small tag first turns an impossible scroll into a short one. It is also the rule the faster method below relies on.

It is still manual, and it still reads the ranked tag page rather than the full feed, so it is right for a one-off check on a small campaign and wrong for anything you need to repeat or report on.

Method 3: read one hashtag into rows, then filter by the others

When the tag has more posts than you want to open one by one, or when you need a list you can share, move the job into a spreadsheet. The idea is the same as Method 2, done by a machine:

  1. Pick the rarest tag in your combination.
  2. Read that tag's recent posts into rows, one row per post, with the caption and its hashtags.
  3. Filter the rows to those whose captions also carry every other tag you care about.

The Instagram Hashtag Scraper does step 2. You give it one hashtag, an exact maximum number of posts, and optionally a date window. It returns each post as a row with the link, the date, the author, the caption, the like and comment counts, the media type and a hashtags field listing every hashtag written in the caption, lowercased and without the #. The output page lists every field.

It runs on Apify and needs the session cookie of an Instagram account you control, because Instagram serves hashtag posts only to a signed-in visitor. You pay per post delivered and never for more than the limit you set; the overview shows the price per post.

Filtering the rows in a spreadsheet

Export the run as CSV or Excel and open it. Then, for a combination such as #coffee plus #tokyo, with #coffee read into rows:

  1. Find the caption column. It holds the caption text, tags included.
  2. Add a filter to the header row.
  3. Use a text filter of "contains" with #tokyo.
  4. For a third tag, add a helper column that checks for it, and filter on that as well.

A spreadsheet export spreads the hashtags list across numbered columns (hashtags/0, hashtags/1 and so on), which is awkward to filter, so the caption is the easier column to test. In Google Sheets or Excel a helper column can hold a formula like =AND(ISNUMBER(SEARCH("#tokyo",E2)),ISNUMBER(SEARCH("#latte",E2))) where column E is the caption. Filter that column to TRUE and you have every post carrying all three tags. If you export JSON instead, each post's hashtags is a clean list and a short script can test it directly. Watch for partial matches: a search for #tokyo also matches #tokyofood. When that matters, check the matches by eye or test the JSON hashtags list, which holds whole tags. Our guide to exporting Instagram posts to Excel covers opening, sorting and counting an export.

Searching "either tag" instead of "both tags"

Sometimes the question is the union rather than the intersection: every post that uses #brandname or #brandcampaign. Run the tool once per tag, paste the two exports into one sheet, then remove duplicates on the shortcode column. A post carrying both tags appears in both runs, and the shortcode is the same in each, so one pass of "remove duplicates" leaves each post once.

What the filter can and cannot see

Being clear about the limits saves a wrong conclusion later.

When the manual way is enough

You do not need rows for every question. Stay in the app when:

Move to rows when the rarer tag still has hundreds of posts, when you need three or more tags at once, when someone else needs the list, or when the same check will run again. A contest with a deadline is the classic case: you want every entry that used both required tags, captured on the day, in a file you can keep. Our guide on collecting user generated content covers that workflow from start to finish.

A worked example

Say a café chain ran a September promotion asking customers to post with both #cafenamesept and #latteart.

  1. #latteart is huge and #cafenamesept is small, so #cafenamesept is the tag to read.
  2. Run the scraper on cafenamesept, limit 500, only posts newer than 1 September.
  3. Export as CSV and open it in a spreadsheet.
  4. Filter the caption column to rows containing #latteart.
  5. Sort by takenAt to see entries in date order, or by likeCount to shortlist.

The result is every qualifying entry that tagged both in the caption, with a link to each post, in one sheet. Posts that tagged only one of the two are easy to find too: they are the rows the filter hid.

Summary

If you want to try the rows method, the Instagram Hashtag Scraper takes one hashtag, an exact limit and a date window, and the getting started guide walks through the first run.

All articles