Instagram hashtag contest: how to run one and collect every entry
Published
An Instagram hashtag contest works when you choose a tag nobody else uses, publish rules with a clear start and end time, and then collect every public post on that tag inside that window before you judge. The first two steps are planning. The third is where most contests go wrong, because the hashtag page shows a scrolling feed and a contest needs a complete list. This guide covers the whole job: the rules Instagram asks you to include, choosing the tag, collecting the entries by hand or as a spreadsheet, checking them against your rules and picking a winner you can defend.
What an Instagram hashtag contest is
In a hashtag contest, people enter by posting a photo, carousel or Reel with your contest tag in the caption. You do not have to watch notifications, because the tag itself becomes the entry box. That makes it a good fit for:
- Photo challenges, such as "show us your setup" or "your best shot with our product";
- Event contests, where attendees post from the venue during the day;
- User generated content drives, where the prize is the reason to post and the posts are what you keep.
It is a different shape from a "tag a friend" or "comment to win" giveaway. Those entries live in the comments of one of your posts. A hashtag contest's entries live on the hashtag page, spread across other people's accounts, and nothing tells you when a new one arrives.
Step 1: write the rules before you announce anything
Instagram puts the responsibility for the promotion on you. Its Promotion Guidelines, as of September 2026, say:
If you use Instagram to communicate or administer a promotion (example: a contest or sweepstakes, among others), you are responsible for the lawful operation of that promotion
The same page says promotions on Instagram must include "a complete release of Instagram by each entrant or participant" and an "acknowledgement that the promotion is in no way sponsored, endorsed or administered by, or associated with, Instagram." It also asks you not to encourage people to tag content inaccurately. Read the current guidelines yourself before launch, since they can change, and check the promotion law where your entrants live.
Beyond Instagram's requirements, your rules should state:
| Rule | Why it matters when you judge |
|---|---|
| Start and end time, with a time zone | Decides which posts count, and settles arguments about late entries |
| The exact hashtag | Misspelled tags are the most common lost entry |
| Entries per person | One per account, or several, changes how you count |
| Account must be public | Posts from private profiles do not appear on hashtag pages |
| Eligibility (age, country) | Lets you disqualify fairly |
| How the winner is chosen | Random draw, judged by a panel, or most liked |
| When and how you contact the winner | Protects you if they never reply |
Put the end time in one time zone and say which. Instagram records post times in UTC, and "Sunday midnight" means different moments in different places.
Step 2: choose a hashtag only your contest uses
The contest tag is your collection bin, so it should hold nothing but entries:
- Search it on Instagram first. If it already has posts from other people, pick another, or you will be sorting strangers' photos out of your entries.
- Make it specific to this contest.
#yourbrandsummershotsis easy to collect.#summeris impossible. - Keep it separate from your evergreen brand tag, so the contest has a clean start and a clean finish.
- Test it. Post one entry from a staff account before launch and check that it appears on the tag's page.
To see how busy a candidate tag already is, the free hashtag checker reads its recent posts and shows how often it is used.
Step 3: collect the entries
This is the step that decides whether your contest is fair. There are two ways to do it.
The manual way, in the app
For a small contest, the app is enough:
- Open the contest hashtag and switch to the most recent posts.
- For every post, copy its link, the username and the date into a sheet.
- Keep going until you reach posts from before the start time.
- Do it again after the end time, because late posts from before the deadline can still appear.
Record the link and the username the moment you see a post. A screenshot without them is an entry you cannot verify or contact.
When the manual way is enough
Collecting by hand is fine when:
- you expect a few dozen entries;
- the contest runs for a day or two;
- one person runs it and nobody else needs to audit the list.
It stops working when entries reach the hundreds, when the contest runs for weeks, or when you need to show someone how the winner was picked.
Collect the entries as a spreadsheet
The repeatable version replaces the scrolling with a download. The Instagram Hashtag Scraper reads one hashtag and writes its posts to a dataset, one row per post, newest first. A contest has an exact window, and the scraper has two fields made for that:
- Set Hashtag to your contest tag, without the
#. - Set Only posts newer than to the contest's start time, for example
2026-10-01T00:00:00Z. - Set Only posts older than to the end time. Posts after the deadline are skipped.
- Set Maximum posts above the number of entries you expect. The limit is exact, so the run never delivers more than you asked for.
- Paste the session cookie of an Instagram account you control. Instagram only serves hashtag posts to signed-in requests, and the step-by-step scraping guide shows where to find the cookie.
- Run it and export the dataset as CSV or Excel.
The run stops when the feed reaches your start date, so posts from before the contest are never read. It charges $0.0005 per post delivered to your dataset, so a contest with 600 entries costs $0.30 to collect, and a run that finds nothing costs nothing.
The fields you will judge with:
| Field | What you use it for |
|---|---|
ownerUsername | Counting entries per person and contacting the winner |
url | Opening the entry to check it |
takenAt | Checking it was posted inside the window, in UTC |
caption | Checking the tag was used as the rules ask |
hashtags | Spotting entries stuffed with unrelated tags |
mediaType | Photo, carousel or video, if your rules name a format |
likeCount | For a "most liked" contest, read at the moment of the run |
If you want a sheet you can open straight away, the Excel export guide covers getting the dataset in cleanly.
Step 4: check every entry against the rules
With the entries in a sheet, add a Valid column and a Reason column, then work through them:
- Remove your own accounts and your team's by
ownerUsername. - Apply the entries-per-person rule. Sort by
ownerUsername. If the rule is one entry each, keep the earliest post per account and mark the rest as duplicates. - Check the time. Sort by
takenAtand confirm the first and last rows sit inside the window. - Check the content. Open anything that looks off. An entry that breaks the rules gets a reason written next to it, so you can explain the decision if asked.
Keep the sheet after the contest. A written list of every entry and every disqualification is your answer when someone asks why they did not win.
Step 5: pick the winner
How you pick depends on what your rules promised:
- Random draw. Add a column with
=RAND()in Google Sheets or Excel, fill it down the valid rows, copy it and paste as values so it stops changing, then sort by it. The top row wins. Record a screen capture of the draw if the prize is large. - Judged. Give the judges the sheet with links, not a folder of screenshots, so every entry is seen in its original post.
- Most liked. Collect again right after the deadline, so everyone's count is read at the same moment. Counts keep changing, and Instagram hides them on some posts, so treat a blank count as unknown rather than zero.
Then contact the winner the way your rules said you would, and give them the time your rules allowed to reply.
Hand counting against a spreadsheet
| Scrolling the hashtag page | Spreadsheet from the scraper | |
|---|---|---|
| Good for | Up to a few dozen entries | Hundreds or thousands |
| Contest window | You stop scrolling by eye | Start and end dates are inputs |
| Entries per person | Counted by hand | Sort by ownerUsername |
| Audit trail | Whatever you copied | Every entry as a row |
| Cost | Your time | $0.0005 per post delivered |
What a hashtag read cannot collect
Plan your rules around these so nobody's entry is lost silently:
- Private accounts. Their posts do not appear on hashtag pages. Say "public accounts only" in the rules.
- Stories. They are not on hashtag feeds in a form that can be collected. Ask for feed posts or Reels.
- Misspelled tags. A post with the wrong tag is on a different hashtag. You can collect a common misspelling as a second run if you choose to accept it.
- One hashtag per run. A contest with two tags takes two runs, merged in the sheet. The multiple hashtags guide shows how.
The limits page lists the rest, and the output page shows a full sample row.
After the contest
The entries are also a collection of posts about your brand. If you want to reuse any of them, ask each creator first, since entering a contest is not permission to appear in your ads. The guide to collecting user generated content on Instagram covers asking for and recording that permission.
The short version
An Instagram hashtag contest needs three things: rules with a start time, an end time and Instagram's required release, a tag only your contest uses, and a complete list of entries from inside that window. Scroll the tag by hand when entries are few. When they are many, or when you need to show your working, run the scraper with the contest's start and end dates and judge the whole list in one sheet.