How to Scrape Emails from Instagram
Creators who want brand deals put an email where brands will look — in the bio text, or in the business contact button Instagram gives professional accounts. Scraping emails from Instagram means collecting those published addresses into a spreadsheet column instead of opening profiles one at a time. This guide covers where the emails actually live, the three ways people collect them, and the one rule that keeps the list usable.
The important word is published. A creator who typed their address into a public bio is inviting contact. Nothing here guesses, pattern-matches, or reconstructs an address that a person never chose to share — and the difference matters both legally and for whether your emails land.
Where the emails actually are
Two places, and most tools only look at one of them. Missing the second is why people end up with a mostly-empty column.
The bio text
Typed into the 150-character bio, often spaced out or written as "name (at) domain" to dodge bots. A good extractor normalizes those back to real addresses.
The business contact button
Professional and creator accounts can attach a public email that never appears in the bio text at all. It's the highest-quality source, and it's the one screen-scraping extensions routinely miss.
The link in bio
Not an email, but a doorway to one — a Linktree or personal site with a contact page. Worth capturing as its own column.
The three ways people do it
They differ enormously in how much you get back and how long it keeps working.
By hand
Free, accurate, and unusable past about thirty profiles. Fine for a shortlist, hopeless for a campaign.
A Chrome extension
Reads whatever is currently on your screen, so it only sees profiles you actually scrolled past, caps out after a few hundred, and breaks whenever Instagram changes a class name. It also can't see the business-contact email.
A server-side run
Describe the targets — a hashtag, a location, a list of usernames — and the collection happens off your machine. Nothing to install, thousands of profiles per run, and the contact button is read properly.
How to do it with 1Scrape
Start from whichever end you have. If you already know who you want, paste the usernames. If you don't, start from a hashtag or a location and discover the creators and their contacts in the same run.
Every export carries email, phone, bio, and bio_link as their own columns. Turn on the "only profiles with an email" filter and the CSV keeps only the rows you can actually act on — though note you still pay per profile scraped, because the run has to look at a profile to know whether it has one.
The rule that keeps the list worth having
A scraped email is a lead, not a licence. Publishing an address in a bio is an invitation to be contacted about relevant work — it is not consent to be added to a bulk newsletter, and treating it as one is how you get spam complaints and a burned sending domain.
If you're emailing people in the EU or UK, the GDPR applies to you regardless of where you sit, and you need a lawful basis and a working unsubscribe. In the US, CAN-SPAM requires accurate headers, a real physical address, and honoring opt-outs. Send fewer, better, relevant emails and both the law and your deliverability take care of themselves.
Do it step by step
Pick your targets
Paste usernames you already have, or start from a hashtag or location to discover creators you don't.
Filter to contactable
Flip on "only profiles with an email" so the CSV comes back as a working list, not a research project.
Set your cap
Choose how many profiles to pull. Starting a run only holds its worst-case cost — the unused part comes straight back.
Download the CSV
Email, phone, bio, and bio link in their own columns, ready for your outreach tool.
Frequently asked questions
Can you scrape emails from Instagram?
You can collect the emails creators have chosen to publish — in their public bio, or in the business contact button on a professional account. That's public information, and gathering it is the same as reading it off the profile yourself, just faster. What you cannot do, and what 1Scrape will not do, is reach a private account or guess an address that was never published.
Why does my email column have gaps?
Because not every creator publishes one. A typical niche has somewhere between a fifth and a half of profiles with a public email, and that's normal — nobody returns a full column, and a tool that does is inventing addresses. Use the "only with email" filter so the gaps are dropped from the file rather than left for you to clean.
Is a Chrome extension not easier?
It's easier to install and much worse at the job. An extension can only see what your browser has loaded, so it misses every profile you didn't scroll to, it usually can't read the business-contact email at all, and it stops working the day Instagram changes its markup. A server-side run has none of those limits.
Is this legal?
We only collect data that's already public — the same posts, captions, counts, and the contact info creators choose to put in their public bio. We don't touch private accounts or log-in-gated content, and we never try to reach anything a creator has kept private. You're responsible for using the data in line with TikTok's terms and any privacy laws that apply to you, so scrape public data, respect people's rights, and don't spam.
How much does it cost?
Runs are priced at $8 per 1,000 results, and every new account starts with $5.00 in free credits — enough to pull thousands of rows before you pay anything. You're billed per result scraped — never for your full cap — and the unused hold is refunded the moment a run finishes. If you use a lead filter like "only profiles with an email", the CSV keeps just the matches while you still pay per profile scraped. If a run fails, it's refunded in full and never costs a credit.