Scrape data from Instagram
Instagram's public pages hold plenty worth gathering, profile details, post captions, follower counts, hashtag results. A bot can read them into a sheet on the web. The catch is Instagram's limits, so this works small and slow, on public data. There are three ways to start, with no code, with code, or with a Claude skill.
What I mean by scraping Instagram
Scraping Instagram means a bot reads public information off the website into a sheet. A profile's name, bio, and counts, the captions and dates on public posts, the results under a hashtag or a search. Point it at a profile or a list of them and it gathers the same fields across each, so research that meant scrolling becomes rows you can sort.
Public data, within Instagram's limits
Instagram is one of the strictest sites to automate. It rate-limits actions and watches for anything that looks like a bot, so scraping too fast gets you blocked. The numbers move, but the rule does not, go gently or get stopped.
So this is small, slow scraping of public data. Public profiles, public posts, hashtag results, into a sheet, at a human pace with real pauses. Private accounts and anything behind a follow are off the table, that is not public, and it is not yours to take. Read what people chose to show the world, slowly, and stop the moment Instagram pushes back.
Who this is for
This is for the researcher or marketer gathering public Instagram data for their own work. Mapping creators in a niche, tracking a hashtag, pulling public follower counts for analysis. Public data, low volume. If you want to harvest at scale or reach private data, this is not the tool. No-coders and coders both, since you can build it without code and drop into code when you want.
How I'd approach it
Make a list of the profiles or hashtags you care about. Point the bot at the first, read the public fields you want, and write them to a sheet, then loop the list slowly with pauses between each. Take only what is public, watch for any block, and back off if you see one. Public fields, a steady pace, stop on a block.
I would lay out the first draft with Build with description.
Scrape Instagram from a description
Describe what you want in plain words in the Chrome extension and it builds the steps for you. Give it a few short lines, check what it made, and run it. Explore no-code.
To the right is an example. Describe the public fields you want, and the AI lays out the steps. Keep the pace human.
Chrome extensionInstructions
- Read the profile links from a Google Sheet42 / 500
- Go to each public profile25 / 500
- Scrape the name, bio, and follower count40 / 500
- Scrape the recent public post captions38 / 500
- Write it all to a Google Sheet, slowly38 / 500
Scrape Instagram in code
Build with code. You do not have to write the script by hand. Describe the scrape to our Claude skill and it generates a ready-to-run Node script you own, then debugs it with you, fixing a selector that stopped matching or a step that stalls, until the run is clean. Prefer to write it yourself? Explore the code tool. Either way, the script looks like this.
These are axiom's step functions, the same step library that powers the no-code builder, available as code. Describe the scrape to the Claude skill and it generates and debugs this script for you. It runs on our cloud Chromium, with nothing to manage.
Generate it with the Claude skill1import { AxiomApi } from "axiom-api";2 3const axiom = new AxiomApi(process.env.AXIOM_API_KEY);4 5await axiom.browserOpen();6try {7 await axiom.goto("https://www.instagram.com/some_public_profile/");8 await axiom.wait(5000); // a human-paced pause9 const meta = await axiom.scrape("header li"); // public counts10 console.log(meta); // write these to your sheet11} finally {12 await axiom.browserClose();13}14 Build with a Claude skill
Build no-code or code bots with a skill.
Add the Claude skill and describe the public Instagram data you want. It builds the scraper for you, no-code or code, into a sheet, slowly.

What can you scrape?
Public data, small and slow. A couple of lines to stay on the right side of.
Works well
- Public profile names, bios, and counts
- Public post captions and dates
- Hashtag and search results
- A list of profiles from a sheet
- Spacing it out on a schedule
Harder
- Instagram's rate limits and bot checks
- Anything the app does but the web does not
- Lists too large for one sitting
Don't try
- Scraping private accounts or data
- Hammering Instagram at scale
- Anything against Instagram's terms
What I'd watch out for
Instagram punishes scraping that overdoes it, so read this one carefully. Here is what I would watch for.
Stay well under the limits
Instagram blocks fast. Run few requests, space them out, and stop at the first sign of a block. A block is the warning, a ban is what comes next.
Public only
Read public profiles and posts, never private accounts or data behind a follow. Respect what people chose to make public.
Use your own session, slowly
Sign in as yourself, store the cookies, and ease into it. Bursts of activity are exactly what Instagram flags.
Pick fields reliably
Instagram changes its markup, so pick what you read with the selector tool and recheck after a big update.