Instagram Account 360 Intelligence — Posts, Reels & Carousels
Pricing
from $0.18 / account audit
Instagram Account 360 Intelligence — Posts, Reels & Carousels
Read any public Instagram account over 7 to 90 days or its entire history. Returns every post, reel and carousel with full metadata, AI reel transcripts, on-image text from every carousel slide, top-level comments with reply counts, engagement analytics, and agent-ready soul.md and design.md briefs.
Pricing
from $0.18 / account audit
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
2
Bookmarked
10
Total users
6
Monthly active users
0.031 hours
Issues response
8 days ago
Last modified
Categories
Share
Instagram Scraper — Posts, Reels, Comments & AI Transcripts 🚀
🎉 Reads the text burned into every image — the hook Instagram publishes nowhere as text
Built for marketers, agencies and content strategists who need a whole account, not one post
🔎 What is the Instagram Account Scraper — and when should you use it?
The Instagram Account Scraper turns a public Instagram handle into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. Point it at an account, pick a window from 7 days to the entire account, and every reel, feed post and carousel published in that span comes back in one dataset. No login, no browser automation to maintain.
Use it when you need: every post in a date range with captions, likes, comments, plays, hashtags, mentions, music, location and carousel slide counts. You also get reel transcripts, the verbatim on-image text, and a one-line visual description of every image — carousel slides, single-image posts and reel covers alike. Engagement rates are benchmarked per format. Best posting days and hours and a written strategy rundown come in the same run.
Use something else when: you already have the specific post URLs you care about and only want them transcribed. Use Instagram AI Transcript Extractor for that — it takes URLs, this takes an account.
🤖 Use with AI agents
Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/instagram-account-360-intelligence
Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
I want a full content audit of an Instagram account using the Apify Actor `sian.agency/instagram-account-360-intelligence`.Use it when I need: every reel, feed post and carousel an account published in a chosen window (7, 14, 30, 60, 90 days, or the entire account), with engagement metrics, reel transcripts, the on-image text and a visual description of every image (carousel slides, single-image posts and reel covers), and a strategy read of the whole account.Don't use it when: I already have specific post URLs and just want them transcribed — use `sian.agency/instagram-ai-transcript-extractor` instead.How to call it: give it `username` (a profile URL, a handle, or @handle — all accepted) and `windowDays` (7, 14, 30, 60, 90, or `all` for the entire account). Set `timeZone` to my audience's timezone so the best-day and best-hour analysis is meaningful. Toggle `includeImageText`, `includeTranscripts` and `includeRundown` to control depth.Start with this input:{"username": "nasa","windowDays": "30","timeZone": "America/New_York","includeImageText": true,"includeTranscripts": true,"includeRundown": true}Ask me which account and which window, then run the Actor and summarise the results as a table sorted by engagement rate.
Things you can ask your agent for:
- "Audit my top three competitors over the last 90 days and tell me which formats and hooks are working for each."
- "Pull every carousel this account posted in 60 days, read all the slides, and show me how they structure a hook."
- "Find this account's best posting day and hour in my timezone, and list the five posts that beat their format's median by the widest margin."
Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/instagram-account-360-intelligence.md.
📋 Overview
You give it a handle. It gives you the account. Every post in your window, what each one said on screen and out loud, and a read of what is working.
What you get:
- ✅ Every format in one run: reels, single images and carousels come back together, from one input
- 👁️ On-image text from every slide: the hook, the payoff and the CTA of a carousel, extracted in slide order
- 🎙️ Reel transcripts included: spoken audio with timestamped segments plus ready-to-use SRT and WebVTT
- 🎯 Engagement judged fairly: each post is scored against the median of its own format, so a strong image is not buried by a viral reel
- 💰 One input, whole account: a handle and a window, instead of a list of post URLs you had to collect first
- 💎 A written rundown: content pillars, working hooks, posting patterns and recommendations, with the evidence cited
✨ Features
- 📅 7 / 14 / 30 / 60 / 90-day windows, or the whole account: pick the span, get everything published inside it
- 🧲 All three formats: reels, feed images and carousels in a single dataset
- 👁️ Carousel OCR: every slide read in order, each paired with its own image URL
- 🎙️ AI reel transcripts: text, timestamped segments, word-level timings, SRT and WebVTT
- 📈 Per-format benchmarking: engagement rate, ratio against the format median, and percentile rank
- ⏰ Timezone-aware timing: best days and hours calculated in the timezone you name
- #️⃣ Hashtag performance: which tags you actually repeat, and how they perform
- 🪝 Format + hook frameworks: every post tagged with the short-form format it uses and the hook its opening line runs
- 📌 Pinned-post detection: see what the account chooses to show first
- 🔗 Similar accounts: Instagram's own suggested-similar chain — the closest thing to a competitor list the platform publishes
- 👥 Following list: the peer set an account curates, capped so it stays a read rather than an export
- 🧰 clone-kit.md: one file you paste into an LLM to get a full build plan in YOUR brand
- 🧬 soul.md: the whole account reverse-engineered into a brief another agent can rebuild from
- 🎨 design.md: a ready-to-run prompt that recreates the account's look, plus the tokens behind it
- 💬 Comments: top-level comments with author, likes and reply counts
- 🌍 Whole-account mode: ignore dates and page back to the first post
- 📄 HTML report: a shareable summary written even when a run fails — two charts of how the account developed over time, plus one-click copy for each brief
- 🧾 50 fields per post: captions, music, location, dimensions, owner and audio IDs and more
🎬 Quick Start
Give it a handle and a window. It resolves the account, pages the feed until it crosses your cutoff, reads the media, and writes a dataset plus a report.
curl -X POST https://api.apify.com/v2/acts/sian.agency~instagram-account-360-intelligence/runs?token=YOUR_TOKEN \-d '{"username": "nasa", "windowDays": "30"}'
🚀 Getting Started (3 Simple Steps)
Step 1: Enter the account
Paste the profile URL straight from your browser, or type the handle. https://www.instagram.com/nasa/, nasa and @nasa all work.
Step 2: Pick your window
7, 14, 30, 60 or 90 days — or the entire account. Set your audience's timezone so posting-time advice means something.
Step 3: Run it
Open the dataset for the rows, or the HTML report for the read.
That's it! In a few minutes, you'll have:
- Every post the account published in your window
- What each one said, on screen and out loud
- Which formats, hooks, days and hashtags are actually working
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| username | string | Yes | Public Instagram account — profile URL, handle, or @handle |
| windowDays | string | No | 7, 14, 30, 60, 90, or all for the entire account. Defaults to 30 |
| timeZone | string | No | IANA timezone for posting-time analysis. Defaults to UTC |
| includeImageText | boolean | No | Read on-image text from every slide. Defaults to true |
| includeTranscripts | boolean | No | Transcribe reel audio (PAID only). Defaults to true |
| includeRundown | boolean | No | Write the strategy rundown. Defaults to true |
| includeSoul | boolean | No | Build soul.md, the account rebuild brief. Defaults to false |
| includeDesignSystem | boolean | No | Build design.md, the visual system. Defaults to false |
| includeComments | boolean | No | Collect top-level comments. Defaults to false |
| maxImagesAnalyzed | integer | No | Images the on-image text pass reads. Empty (default) = all of them |
| maxReelsTranscribed | integer | No | Reels transcribed. Empty (default) = all of them |
| maxCommentsPerPost | integer | No | Comments per post. Empty (default) = every comment; free runs: 5 |
| includeOlderPins | boolean | No | Also return pinned posts published before the window (PAID). Defaults to false |
| includeCloneKit | boolean | No | Build clone-kit.md, one file for your LLM. Defaults to false |
| brandName / brandVoice / designPrinciples / subjectMatter / brandColors | string | No | Your brand, written into clone-kit.md so the plan comes back in your voice |
| includeFrameworks | boolean | No | Tag each post's video format and hook type. Defaults to true |
| includeSimilarAccounts | boolean | No | Accounts Instagram lists as similar to this one. Defaults to true (PAID) |
| includeFollowing | boolean | No | The accounts this profile follows (PAID). Defaults to false |
| maxFollowing | integer | No | Followed accounts collected. Empty (default) = the whole list |
| maxPosts | integer | No | The only run limit. 0 (default) means every post in the window. Free runs: 3 newest |
The five bold options each carry their own charge, so they are off by default — you opt into a cost, you never discover it afterwards.
Example:
{"username": "nasa","windowDays": "90","timeZone": "Europe/Berlin"}
Metadata-only (fastest, cheapest):
{"username": "nasa","windowDays": "30","includeImageText": false,"includeTranscripts": false,"includeRundown": false}
Clone-the-account kit (both briefs + comments):
{"username": "nasa","windowDays": "90","includeSoul": true,"includeDesignSystem": true,"includeComments": true,"maxCommentsPerPost": 30}
Whole account, ever:
{"username": "nasa","windowDays": "all"}
Nothing caps this. Every post on the account is collected, and every pass you
left on runs over all of them. Set maxPosts if you want a ceiling.
🧬 soul.md — hand your account to an agent
Turn includeSoul on and the run writes soul.md: the account reverse-engineered
into a brief another AI agent can build from. Paste it whole into Claude, ChatGPT or
your own agent and it has everything it needs to run a comparable account.
What's in it. Positioning and audience first, then the exact posting cadence and the gaps to hold, then the format mix — including where what the account posts parts company with what actually performs.
After that come the measurements: reel length in seconds with the winners kept separate from the median, carousel slide counts, caption length and formula.
The judgement calls sit at the end. Content pillars are read off the outlier posts rather than the average one. Hook patterns arrive with real examples of the lines that earned the stop, voice as do and don't lists. The file finishes on a seeded first-30-days calendar, anti-patterns and what to measure.
Every number in it is measured, not written by a model. The model is asked only for judgement and is instructed never to write a figure; the cadence, lengths and percentages are computed from your posts and injected by the actor. If the run collected only part of the window, the file says so at the top rather than letting you trust a cadence figure built on a partial sample.
📌 Pinned posts
Instagram lets an account pin up to three posts to the top of its grid. That is the account telling you which of its own work it rates — usually its best converting post, and usually not a recent one.
Every post carries isPinned, and a pin published inside your window is always
returned. Pins published before the window are hidden by the date filter, so
turn on includeOlderPins to get them too. They come back as ordinary rows
with isPinned: true, and:
- they do not count against
maxPosts— a 10-post run still returns 10 posts from your window, plus the pins; - they are left out of the window statistics on purpose. A pin from 2022
inside a 30-day window would report a multi-year posting gap and, carrying
years of accumulated likes, redefine the format median every real post is
scored against. Their
performanceRatioandpercentileInFormatarenullrather than a number that means nothing.
🪝 Frameworks — which format, which hook
Engagement tells you a reel beat its format median. It does not tell you the reel was a mistake video opened on a reverse-psychology hook, and that is the part you can reproduce.
Every post is tagged against two closed vocabularies, so the answers are countable rather than twenty phrasings of the same idea:
- 🎬 23 video formats:
breakdown·case-study·problem-solution·mistake·tutorial·listicle·scenario·comparison·qa·tier-list·levels·reaction·skit·heros-journey·personal-learnings·day-in-the-life·personal-update·about-me·social-show·challenge·commentary·myth-busting(+other) - 🪝 19 hook types:
vulnerability·probing·reverse-psychology·bold-claim·mid-sentence·listicle-promise·question·curiosity-gap·negative-warning·relatable-peer·typography-headline·investigator·proof-drop·experimenter·fortune-teller·magician·pattern-interrupt·story(+none)
Three more axes move performance on their own, per the 2026 research.
deliveryStyle covers greenscreen, talking-head, voiceover-broll, montage and 6
more. emotion spans fear, outrage, empathy, curiosity, humor, trust,
aspiration and hope. ctaStyle is implied, direct or none.
Each row also carries hookLine: the opening line a viewer actually meets,
verbatim. For a reel that is the first spoken sentence, for a carousel the first
slide's text, and only then the caption — captions are written afterwards and
usually open with a summary nobody hears.
Share and performance are reported side by side, because they disagree more often than not. A real run:
| Hook | Share | Median vs format |
|---|---|---|
| bold-claim | 30% | 0.63× |
| relatable-peer | 20% | 1.25× |
| probing | 10% | 1.28× |
The account's most-used hook is its weakest. That is the finding, and a single ranking would have hidden it.
Tags below 0.5 confidence are left out of the distributions rather than counted — a guess presented as evidence is how a brief ends up recommending a format nobody verified. Costs nothing extra: one model call covers the whole window.
📐 Read against the 2026 field
Every other number in a run is measured from the account itself. These are the exception, so each one ships with the study and sample size behind it — a benchmark you cannot check is an opinion in a table.
| Finding | Number | Source |
|---|---|---|
| Emotional register moved views | 49× (fear 264K vs hope 5.4K) | The Content Labs, 3,997 videos |
| Greenscreen vs plain talking-head | 2.6× (150K vs 56K) | The Content Labs |
| Implied vs direct CTA | ~2× (139K vs 72K) | The Content Labs |
| Hot-take / investigator hooks vs story | ~20× | The Content Labs |
| Proof-drop hooks win saves | 1,761 avg, highest measured | The Content Labs |
| Question hooks | lowest median of eight archetypes | PreAlgo |
| Reels skipped in first 3s | 60-65% | Socialinsider, 140K Reels |
| Carousels vs single-image saves | 9× | Metricool, 24.3M posts |
| Views landing in first 72h | 70% | Metricool |
Where studies disagree, both are carried. The duration evidence genuinely conflicts: measured on raw views across TikTok and Instagram, 90s+ beat 0-15s by 31×; measured on Instagram reach rate, 30-60s led and everything past two minutes fell by a third. Both are real, they measure different things, and averaging them would invent a consensus that does not exist.
The report reads your account against these and says where it sits — median reel length, carousel slide count, posting cadence, format mix.
🧰 clone-kit.md — one file, one paste, a whole build plan
A run produces a lot: a dataset, a strategy brief, a visual spec, analytics. Handing all of it to an LLM is the wrong move — most of it is machine plumbing. Measured on a real 29-post run, the full output is roughly 80,000 tokens, of which about 15% is signal: 31% of the dataset is subtitle formats and word timings, 27% is expiring image URLs. A model asked to plan content while reading WebVTT cue timings plans worse content.
clone-kit.md is the curated version — around 15,000 tokens, assembled from
what the run already produced:
| Section | What it carries |
|---|---|
| 1 | Your brand — from the brandName / brandVoice / designPrinciples / subjectMatter / brandColors inputs |
| 2 | The shape to match: cadence, format mix, best days and hours, reel length, carousel length |
| 3 | The strategy brief (soul.md), when that is on |
| 4 | The visual style and its runnable prompts (design.md), when that is on |
| 5 | The posts that beat their own format median, with caption, on-image text and transcript |
| 6 | Adjacent accounts worth reading next |
| 7 | The output contract: exactly what to hand back |
It costs nothing extra. No model call is made to build it — it only moves text the run already measured or already wrote, which also means it cannot invent anything.
Fill in the brand fields. They are written into section 1, so what comes back is in your voice rather than the source account's. Anything you leave blank becomes a question the model is told to ask you, never a guess it makes quietly.
🔗 Related accounts
Two account-level lookups that answer "who else is in this orbit?".
Similar accounts is Instagram's own suggested-similar chain — the nearest thing to a competitor list the platform will tell you. It is on by default and carries no extra charge. Usually 30-80 accounts with username, name and verified status, though the exact set shifts between reads, and Instagram sometimes lists none at all. When that happens the run says so plainly instead of presenting an empty list as a finding. It works on niche accounts, not only famous ones: a ~5k-follower bilingual-parenting account returned 36 genuine peers. Feed any of them back into this Actor to compare.
Following is who the account chooses to follow — its peer set, partners and
the people it learns from. Off by default, read 50 per call and capped by
maxFollowing (200 by default, 1000 maximum) so a heavy-following profile
cannot run away with your time.
Both are account-level facts, not posts, so they land in the account-summary
record and the HTML report rather than the dataset — the dataset stays exactly
one row per post.
What you will not get here: follower counts or bios for these accounts. Instagram does not publish them on either list, so there is nothing to segment by audience size without looking each account up individually. Usernames, names and verified status are what exists, and that is what is returned.
Follower lists are deliberately not supported. They are unbounded — a large account is millions of rows at 50 per call — and the rows carry the same thin fields, which makes them expensive to fetch and weak to analyse. That is a different product, not a toggle on this one.
🎨 design.md — the style, without the branding
Turn includeDesignSystem on and the run analyses the best-performing frames and
writes design.md: a portable style specification as structured JSON tokens.
Section 1 of the file is runnable. It is an image prompt built from the tokens the run just derived — swap two placeholders and paste it into any image model:
Square 1:1 photograph of {SUBJECT}, bright even natural daylight, warm andunhurried in feel, warm neutral ground around #EAE7E0. Compose asymmetrically,lower third left clear. Overlay {HEADLINE} in regular-weight sans-serif,sentence case, #FFFFFF, centred and stacked, inside a solid black box...
A second prompt covers a full carousel, slide by slide, built from the arc read off real sequences — and it is omitted rather than guessed when the window held no carousel to read. Everything below is the evidence those prompts came from: palette, typography, layout, mood, graphic devices, the arc, and do/don't rules, as JSON tokens you can edit and regenerate from.
It is a style spec, not a brand guide. The account's business name, bio and
positioning are deliberately absent — they carry no design information and are
not yours to reuse. Anything that could only belong to the source account is
quarantined under sourceIdentity.markers, so a model reading the file
substitutes your subject matter instead of reproducing someone else's.
§2 bends the system onto your brand — a fill-in-the-blanks prompt, three lines for your brand, colours and subjects, that rewrites §1 in your voice without losing the structure that makes it work.
What it looks at, and what it doesn't. Two passes. One cover frame from each of your top posts gives the palette, type and layout. The full slide run of your two strongest carousels, read in order, is where the carousel arc comes from.
An arc is a property of a sequence, so it is reported only when a complete sequence was actually read. If the window holds no multi-slide carousel, the file says no arc is claimed rather than inventing a generic one. Reels contribute their cover frame only: Instagram's data service exposes no video frames, so nothing in the file describes a reel's motion, pacing or in-video text, and the file says so. The report lists exactly how much of each post was read.
Both files appear in the HTML report inside a code panel with a one-click
"Copy all" button, and are saved to the key-value store as soul.md and
design.md.
📤 Output
One row per post, 50 fields each, plus an HTML report and a JSON summary.
The Output tab shows the dataset, the report and the account summary. The generated
briefs — soul.md, design.md, clone-kit.md — are written to the run's key-value
store (Storage → Key-value store), and are also carried in full inside the report,
each with its own copy button.
How the account developed — the report opens its analysis with two charts drawn from the posts in your run: volume per period against the median engagement rate of what was published, and the format mix over the same periods. The period follows the window — weeks up to four months, months up to six years, quarters beyond that.
| Field | Type | Description |
|---|---|---|
| url | string | Post permalink |
| postFormat | string | reel, carousel or image |
| timestamp | string | ISO 8601 publish time |
| caption | string | Full caption text |
| displayUrl | string | The post's cover image — shown as a thumbnail in the dataset view |
| images | array | One entry per image: index, imageUrl, onImageText, visual. A carousel gives one per slide, in order |
| onImageText | string | Every image's text joined in order — the searchable roll-up of images[] |
| transcript | string | Reel speech, with segments, words, srtSubtitles, vttSubtitles |
| engagementRate | number | (likes + comments) ÷ followers × 100 |
| performanceRatio | number | This post ÷ the median for its own format. null for a pin from outside the window |
| percentileInFormat | integer | Rank against same-format posts, 0-100. null for a pin from outside the window |
| likesCount | integer | Likes |
| commentsCount | integer | Comments |
| videoPlayCount | integer | Reel plays |
| hashtags | string | Hashtags found in the caption |
| isPinned | boolean | Whether the account pins this post to the top of its grid |
| musicSong | string | Track title where present |
| comments | array | Top-level comments: text, username, likeCount, replyCount, createdAt, isPinned |
| commentsCollected | integer | How many comments this run collected for the post |
| repliesReported | integer | Total replies those comments drew (counts only — see below) |
Example:
{"url": "https://www.instagram.com/p/DbrRMHCDs4H","postFormat": "carousel","timestamp": "2026-08-05T14:02:11.000Z","caption": "So much confusion this summer ☀️","slideCount": 4,"displayUrl": "https://scontent.cdninstagram.com/v/t51.../cover.jpg","onImageText": "SH*T THAT DOESN'T MATTER\nother people's opinions\nComparing yourself to other people","images": [{"index": 0,"imageUrl": "https://scontent.cdninstagram.com/v/t51.../slide1.jpg","onImageText": "SH*T THAT DOESN'T MATTER","visual": "White background, two columns of black handwritten text"}],"engagementRate": 0.126,"performanceRatio": 1.22,"percentileInFormat": 75,"likesCount": 14727,"commentsCount": 156,"isPinned": false}
💼 Use Cases & Examples
1. Competitor teardown
An agency strategist needs to know why a rival's account is outgrowing theirs.
Input: the rival's handle, 90 days Output: every post, scored within its format, plus the written rundown Use: a client-ready audit from a single run
2. Carousel hook research
A content creator wants to copy the structure, not the content, of carousels that work.
Input: a handle known for carousels, includeImageText on
Output: slide-by-slide text in order across every carousel
Use: see how the best accounts open, build and close a swipe
3. Posting-schedule decisions
A social media manager is guessing at posting times.
Input: their own handle, 90 days, their audience's timezone Output: engagement by day and by hour, plus cadence and gap analysis Use: move the calendar to the slots that actually earn engagement
4. Content pillar audit
A brand marketer suspects half their output is wasted effort.
Input: the brand handle, 60 days Output: pillars named and scored, with the weakest posts listed Use: cut the themes that never land, double down on the ones that do
5. Influencer vetting
A partnerships lead is comparing three creators before signing one.
Input: each handle, 30 days Output: engagement rate normalised by follower count, consistency, and per-format breakdown Use: compare creators of different sizes on the same footing
6. Script and caption mining
A copywriter needs a corpus of what actually gets said.
Input: any handle, transcripts on Output: reel transcripts plus captions plus on-image text Use: feed a language model the account's real voice, not a paraphrase
7. Launch a new account modelled on a proven one
A founder is starting from zero and wants a system, not a guess.
Input: a strong account in the niche, 90 days, includeSoul and includeDesignSystem on
Output: soul.md and design.md
Use: hand both to a content agent. One supplies the cadence, pillars and hooks, the other the look — then swap in your own brand
8. Audience research from the replies
A product marketer wants the questions buyers actually ask.
Input: the brand handle, includeComments on
Output: top-level comments per post, plus how many replies each one drew
Use: mine objections and requests in the audience's own words, and see which posts started a real conversation
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/instagram-account-360-intelligence').call({username: 'nasa',windowDays: '30'});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/instagram-account-360-intelligence').call(run_input={'username': 'nasa', 'windowDays': '30'})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item['url'], item['engagementRate'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~instagram-account-360-intelligence/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"username": "nasa", "windowDays": "30"}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: weekly schedule
- HTTP Request: run the Actor for each competitor handle
- Process: filter rows where
performanceRatiois above 1.5 - Action: post the winners to Slack, or append to a content-ideas sheet
📊 Performance & Pricing
FREE Tier (Try It Now)
- 3 posts per run — the newest posts of your window, full metadata and on-image text
- Comments capped at 5 per post; reel transcription is a paid feature
- No credit card required — enough to see the exact output shape before a full audit
PAID Tier (Production Ready)
- Unlimited posts per run across the full 90-day window
- Every reel transcribed; every image read for its on-image text and a visual description
- Charged per successful result, never for errors — unreadable images cost nothing
- A transcribed reel's cover image is read free of charge, never billed twice
💰 You control the depth. Turn transcripts and image reading off for a fast metadata sweep, or leave everything on for the full audit.
❓ Frequently Asked Questions
Q: How many posts can I process? A: FREE tier: the 3 newest posts of your window. PAID tier: every post in the window, up to 1000 in whole-account mode.
Q: Does it work with private accounts? A: No. Only public accounts can be read, and the run tells you plainly if a handle is private.
Q: Can I get reach, impressions or saves? A: No, and no tool can for an account you do not own. Instagram publishes those only to the account holder. You get likes, comments, plays and everything else that is public.
Q: Do I get comment replies?
A: You get every top-level comment with its full text, and for each one the number of replies it drew. You do not get the reply text — Instagram's data service does not expose it, so rather than quietly returning empty threads the actor reports the counts and says so. repliesReported is still a good signal for which posts started an actual conversation.
Q: How many comments can I get per post? A: Up to 200, default 30. Popular posts carry tens of thousands — one account we tested had a post with over 11,000 — so the cap keeps runs fast and bills predictable.
Q: What is soul.md and what do I do with it? A: It is your account reverse-engineered into a brief another AI agent can build from — cadence, formats, reel lengths, pillars, hooks and voice, with a seeded 30-day calendar. Copy it out of the report with one click and paste it into any agent. Every number in it is measured from your posts, not written by a model.
Q: Will design.md just clone someone else's brand?
A: No — it is built so it cannot. The account's name, bio and positioning never enter the file, and anything that could only belong to that account (the faces, the products, the literal copy) is quarantined under sourceIdentity.markers for you to replace. What you keep is the transferable part: hierarchy, contrast, layout, type treatment, slide arc. You inherit the system that works, not the content that belongs to someone else.
Q: How do I actually use design.md?
A: Section 1 is an image prompt you can run as-is — replace {SUBJECT} and {HEADLINE} and paste it into any image model. A second prompt does a full carousel slide by slide. To adapt the style to your own brand instead of reproducing it, section 2 is a fill-in prompt (three lines: your brand, colours, subjects) that rewrites section 1 in your voice and tells you if your brand guidance breaks a rule that mattered.
Q: What happens if I scrape a whole account with thousands of posts? A: You get all of them. Nothing is capped or switched off behind your back — if you asked for the on-image text and transcript passes, they run over every post collected, which on a large account is a large bill.
Every limit is yours to set, and every one is empty until you set it:
| Set this | To bound |
|---|---|
maxPosts | the whole run |
maxImagesAnalyzed | on-image text reading (the biggest line on a carousel-heavy account) |
maxReelsTranscribed | transcription |
maxCommentsPerPost | comment collection |
The run options also carry a "Max total charge" ceiling if you would rather bound the spend than the output.
Q: What output formats are available? A: JSON, CSV and Excel from the dataset, plus an HTML report and a JSON summary in the key-value store.
Q: Does it read every slide of a carousel? A: Yes, in order. If an image budget is reached, whole posts are skipped rather than half-read, and the report says what was left out.
Q: What if the account posted nothing in my window? A: The run succeeds and says so. It does not invent a result.
Q: How long does it take? A: A 30-day window on a busy account is typically a few minutes. Transcripts and image reading are the slow parts — turn them off for a fast sweep.
🐛 Troubleshooting
"Account was not found"
- Check the spelling. A profile URL,
nasaand@nasaare all accepted; a post or reel link is not, because this Actor reads a whole account rather than one post.
"This is a private account"
- Private accounts are not readable. There is no setting that changes this.
Fewer posts than expected
- On the FREE tier runs return the 3 newest posts, and reel transcription is paid-only. Check
maxPoststoo — 0 means the whole window.
Some images have no text
- Plenty of posts genuinely carry no on-image copy. Photos without overlaid text return an empty string and a visual description.
Posting-time advice looks wrong
- Set
timeZoneto your audience's zone. It defaults to UTC, which is rarely what you want.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's repository
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools