πΈοΈ Instagram Related Profiles Network Scraper
Pricing
$14.99/month + usage
πΈοΈ Instagram Related Profiles Network Scraper
Scrapes related people from any Instagram profile, capturing suggested accounts, usernames, bios, follower counts, categories, and profile URLs. Ideal for influencer discovery, audience mapping, competitor research, and automated identification of similar Instagram profiles
Pricing
$14.99/month + usage
Rating
5.0
(1)
Developer
Scrapio
Maintained by CommunityActor stats
2
Bookmarked
118
Total users
5
Monthly active users
56 days
Issues response
5 days ago
Last modified
Categories
Share
Instagram Related Profiles Scraper β Accounts, Bios and Enrichment
Extract the accounts Instagram itself suggests as related / similar for any public profile β the same graph that powers the "Related accounts" panel on the website. This Instagram related profiles scraper takes one or more seed profiles and returns typed JSON: one row per related account (username, rank, parent, profile URL), an enriched seed-profile summary, and β when you turn on enrichment β follower counts, bio text, category, external URL, business flags, and emails/links extracted from the bio. Unlike scraping frameworks that hand you raw HTML, it returns structured data ready for a spreadsheet, a database, or an LLM context window without any parsing. This guide covers every input and output field and how growth, research, and data teams actually deploy it.
π§ What Does Instagram Related Profiles Scraper Do?
The actor reads Instagram's unauthenticated web_profile_info endpoint for each seed profile you supply, pulls the edge_related_profiles (or edge_chaining) list Instagram already computed for that account, and turns it into a flat, de-duplicated dataset. No Instagram account, login, or session cookie is required β the requests are made against the same public endpoint the website loads for anonymous visitors. Recursive crawling can follow the related graph up to two hops beyond the seed (related-of-related-of-related), and cross-seed results are merged so a profile suggested by three different seeds is written once with a co-suggestion count.
- π Related-profile discovery for one or more seed accounts in a single run
- πΈοΈ Recursive depth crawl (1β3 hops) that follows the related graph outward from each seed
- β¨ Optional per-profile enrichment β follower/following/post counts, bio, category, external URL, business flag
- π€ Cross-seed de-duplication with a co-suggestion frequency signal
- π§Ύ Two output shapes β flat (one row per related profile) or nested (one row per seed with a
related_profiles[]array) - β Free filters (verified-only, exclude-private) that need no extra requests, plus enrichment-gated filters (minimum followers, bio keyword)
- π§ Deterministic email/URL extraction from bio text β regex-based, not AI-guessed
β‘ Features & Capabilities
The actor is built around one job β mapping Instagram's own related-account recommendations β done with configurable depth, opt-in enrichment, and cost-aware filtering.
Core features
- Flexible seed input β accepts a full profile URL, an
@handle, a bare username, or a numeric user ID, and normalizes all four into the same internal target. - Fixed-list slicing, not pagination β Instagram returns a single fixed batch of related accounts per profile (no "next page" exists);
max_profilesslices that batch, it does not request more pages. - Recursive expansion β
depthfollows related accounts of related accounts, up to 3 hops, tagging every row withdepthanddiscoveredVia. - Opt-in enrichment β
enrichProfilesre-fetches each related profile to fillfollowersCount,followsCount,postsCount,biography,categoryName,externalUrl,isBusinessAccount,bioEmails, andbioLinks. Off by default, so a discovery-only run costs one request per related profile, not two. - Co-suggestion signal β
suggestedByCountandsuggestedBy[]show how many (and which) seeds surfaced the same related account, a proxy for how central that profile is to the niche. - Never-fabricated fields β every value in the row is either read straight from Instagram's response or left
null. There is no placeholder string, no estimated figure, no "N/A" standing in for missing data.
Every field name below is copied from ROW_KEYS in src/main.py, the constant that defines the actor's output schema:
type, depth, username, fullName, parentUsername, discoveredVia, position, profileUrl, userId, isVerified, isPrivate, isBusinessAccount, followersCount, followsCount, postsCount, categoryName, biography, externalUrl, bioEmails, bioLinks, profilePicUrl, profilePicUrlHD, suggestedByCount, suggestedBy, relatedCount, enriched, error, scrapedAt.
How Instagram Related Profiles Scraper compares to other Instagram scrapers
| Feature | This actor | Instagram Related Profiles Scraper (afanasenko) | Instagram Related Profiles Scraper (instagram-scraper) |
|---|---|---|---|
| Output shape | Flat (default) or nested β your choice via outputMode | Flat, one row per discovered profile | Nested β related_profiles[] inside each profile record |
| Missing-value convention | null, documented as "never fabricated" | The string "N/A" for every missing optional field (as observed on the Apify Store on 2026-07-26) | null for missing scalars, [] for missing lists (as observed on the Apify Store on 2026-07-26) |
| Recursive depth | 1β3 hops, no plan gating in the schema | Depth 1 always available; depth 2 documented as paid-plan only (as observed on the Apify Store on 2026-07-26) | scrapeDepth 0β10 (as observed on the Apify Store on 2026-07-26) |
| Co-suggestion signal | suggestedByCount / suggestedBy[] across all seeds | Not documented | Not documented |
| Seed profile row | Full seed summary emitted (uncharged) alongside related rows | Not documented as a separate output row | Root username emitted at depth: 0 with the same profile schema (as observed on the Apify Store on 2026-07-26) |
| Free vs. paid filters | verifiedOnly / excludePrivate need no enrichment; minFollowers / bioKeyword require it, and the actor logs a warning if you set them without enrichment on | 20+ filters, applied after profile retrieval and billing (as observed on the Apify Store on 2026-07-26) | Filter fields documented as still counting as "processed work" even when they exclude a row (as observed on the Apify Store on 2026-07-26) |
If your use case is feeding structured data to an LLM, the missing-value convention row is the decision-maker β a string like "N/A" sitting in a numeric column breaks downstream type coercion, while a null does not. Co-suggestion frequency is the other practical difference: it tells you which related accounts several of your seeds agree on, which is a stronger signal than any single seed's list.
When another tool might suit you better
If you need Reels view counts, engagement-rate scoring, or a Quality flag per profile, afanasenko's Instagram Related Profiles Scraper documents those metrics directly (as observed on the Apify Store on 2026-07-26) β this actor does not compute engagement rate or Reels analytics at all. Likewise, if you want full recent-post captions and media alongside related-profile discovery in one call, instagram-scraper's actor documents a latest_posts[] field this actor does not return (as observed on the Apify Store on 2026-07-26). This actor's focus is the related-account graph itself, not post-level content.
How does Instagram Related Profiles Scraper work inside AI coding agents?
Every public Apify Actor, including this one, is reachable through Apify's own MCP server at mcp.apify.com β it is a platform-level integration, not something this actor implements itself. Once an MCP-enabled client (Claude, Cursor, ChatGPT, or another agent framework) is connected with an Apify token, the agent can discover instagram-related-profiles-network-scraper by name, inspect its input schema, and start a run mid-task without leaving the IDE. Every row that comes back is typed JSON, so no HTML parsing step sits between the tool call and the agent's context window.
Instagram Related Profiles Scraper within the Scrapio data stack
This actor covers the related-account graph. For the full follower list of a known account with lead enrichment, use Instagram Followers Lead Scraper (instagram-followers-lead-scraper). For shared-following / common-connections mapping between accounts, use Instagram Shared-Following / Common-Connections Mapper (instagram-shared-following-mapper). For hashtag-level posts, likes, and comments, use Instagram Hashtag Stats Scraper Plus (instagram-hashtag-stats-scraper-plus). For a profile's Highlights, use Instagram Highlights Scraper Plus (instagram-highlights-scraper-plus).
Why do developers and data teams scrape Instagram?
Instagram's related-account graph is one of the few places the platform itself tells you which accounts belong to the same niche β that's valuable to several distinct audiences.
π’ Growth and influencer marketing teams
You give the actor one or more seed accounts β a competitor, a known creator, or your own brand handle β and get back every account Instagram considers similar, with username, profileUrl, and (with enrichment on) followersCount and categoryName for each. Filter to verifiedOnly or a minFollowers floor to cut the list to outreach-ready candidates, then export the flat table to a CRM or spreadsheet for a partnership or influencer-outreach list.
π AI training data and RAG indexing
biography, categoryName, and fullName are the highest-information text fields for embedding into a RAG index β they describe what an account is about in the account owner's own words. For training data, followersCount, followsCount, postsCount, isVerified, isBusinessAccount, and suggestedByCount are consistently structured numeric/boolean fields across every row, which makes them reliable features for a lookalike-account classifier without any additional normalization.
π± Competitive and market intelligence
Point the actor at a competitor's handle and the related-account list becomes a live map of who Instagram considers adjacent to them β track suggestedByCount over repeated runs on the same seed set to see which accounts are gaining or losing centrality to that niche, or watch categoryName distribution shift as a market segment evolves.
π¬ Research and academic use
Social-network researchers can use the recursive depth crawl and the suggestedBy[] co-suggestion list to build a directed graph of Instagram's own recommendation structure across a niche β all from publicly accessible profile data, with no login and no access to non-public information.
π₯ Product and SaaS development
The flat output format is a direct fit for a "similar accounts" or "discover creators like this one" feature in a directory, monitoring tool, or enrichment API β the actor already returns position (rank within the related list) and discoveredVia (which parent surfaced the result), so a product can reconstruct the discovery path without extra bookkeeping.
π Input Parameters
Every parameter below is read directly from .actor/actor.json, in schema order.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
urls | Yes | array | One or more Instagram profiles to find related accounts for. Accepts a full URL (https://www.instagram.com/nasa/), an @handle (@nasa), a plain username (nasa), a numeric user ID (528817151), or a per-item object to set a custom limit, e.g. {"username": "nasa", "limit": 20}. | ["https://www.instagram.com/nasa/"] |
max_profiles | No | integer | How many related profiles to keep per seed, in rank order. Instagram returns a fixed set of roughly 30β80 related accounts per profile with no pagination, so this only slices the returned list. Minimum 0, maximum 80, default 30. | 30 |
outputMode | No | string (enum: flat, nested) | flat (default) β one row per related profile, best for CSV/Sheets and per-profile billing. nested β one row per seed with a related_profiles[] array, kept for back-compat with the original actor. | "flat" |
depth | No | integer | How deep to follow the related-account graph. 1 = only each seed's related profiles (default). 2 = also fetch related-of-related. 3 = one hop further. Minimum 1, maximum 3. Higher depth means many more requests and longer runs. | 1 |
enrichProfiles | No | boolean | When true, re-fetches each related profile to fill follower/following/post counts, biography, category, external URL, business flags, and bio-extracted emails/links. Adds one request per enriched profile. When false, those fields stay null. Default false. | true |
maxEnrichedProfiles | No | integer | Cap on how many related profiles get enriched, to protect run time and cost. Only applies when enrichProfiles is true. Minimum 0, maximum 500, default 25. | 25 |
verifiedOnly | No | boolean | Keep only verified (blue-check) related profiles. A free filter β applied directly from the related-account node, no enrichment needed. Default false. | false |
excludePrivate | No | boolean | Drop private related profiles. A free filter β applied directly from the related-account node, no enrichment needed. Default false. | false |
minFollowers | No | integer | Keep only related profiles with at least this many followers. Requires enrichProfiles: true β follower counts are only known after enrichment. If set while enrichment is off, it is ignored and a warning is logged. Minimum 0, default 0 (no minimum). | 10000 |
bioKeyword | No | string | Keep only related profiles whose biography contains this text (case-insensitive). Requires enrichProfiles: true. If set while enrichment is off, it is ignored and a warning is logged. | "photographer" |
proxyConfiguration | No | object | Apify Proxy settings. Residential proxies are strongly recommended β Instagram throttles and blocks datacenter IPs. The actor requests a residential proxy URL when Apify Proxy is enabled. | {"useApifyProxy": true} |
Example input:
{"urls": ["https://www.instagram.com/nasa/", "natgeo"],"max_profiles": 30,"outputMode": "flat","depth": 1,"enrichProfiles": true,"maxEnrichedProfiles": 25,"verifiedOnly": false,"excludePrivate": true,"minFollowers": 5000,"bioKeyword": "","proxyConfiguration": { "useApifyProxy": true }}
Supported URL types and input formats
The urls array accepts five input shapes, normalized by parse_input_target() in the source:
- Full profile URL β
https://www.instagram.com/nasa/(anything afterinstagram.com/up to the next/or?becomes the username). @handleβ@nasa(leading@is stripped).- Plain username β
nasa. - Numeric user ID β
528817151, matched when the value is entirely digits after stripping a leading@; resolved to a username viai.instagram.com/api/v1/users/{id}/info/before the related-profile lookup runs. - Per-item object with a custom limit β
{"username": "nasa", "limit": 20}(also acceptsurl,userId,user_id, oridas the target key, andmax_profilesas an alias forlimit). This overridesmax_profilesfor that one seed only.
Two real examples:
{ "urls": ["nasa", "@natgeo", "https://www.instagram.com/spacex/"] }
{ "urls": [{ "username": "nasa", "limit": 10 }, { "username": "natgeo", "limit": 50 }] }
An empty or unresolvable urls array raises a validation error and the run stops before any request is made β no hardcoded default seed is ever substituted.
π¦ Output Format
The dataset always shares one 28-key column set (ROW_KEYS in src/main.py), whichever row type is written, so the output table renders consistently across seed, related, and error rows. Unpopulated fields are null, never a placeholder string. In flat mode (default) the actor emits one seed row per input plus one related row per discovered profile; in nested mode it emits one seed row per input with a related_profiles[] array attached.
Output for a related profile (flat mode)
{"type": "related","depth": 1,"username": "esa","fullName": "European Space Agency","parentUsername": "nasa","discoveredVia": "nasa","position": 3,"profileUrl": "https://www.instagram.com/esa/","userId": "1067259270","isVerified": true,"isPrivate": false,"isBusinessAccount": true,"followersCount": 4200000,"followsCount": 120,"postsCount": 3800,"categoryName": "Science, Technology & Engineering","biography": "European Space Agency. Exploring space for the benefit of all.","externalUrl": "https://www.esa.int/","bioEmails": null,"bioLinks": null,"profilePicUrl": "https://scontent.cdninstagram.com/.../150x150.jpg","profilePicUrlHD": "https://scontent.cdninstagram.com/.../hd.jpg","suggestedByCount": 1,"suggestedBy": ["nasa"],"relatedCount": null,"enriched": true,"error": null,"scrapedAt": "2026-07-26T12:00:00Z"}
A related row before enrichment carries only the fields Instagram's related-account node itself exposes β type, depth, username, fullName, parentUsername, discoveredVia, position, profileUrl, userId, isVerified, isPrivate, profilePicUrl, suggestedByCount, suggestedBy, enriched: false, and scrapedAt. Everything else β followersCount, followsCount, postsCount, categoryName, biography, externalUrl, isBusinessAccount, profilePicUrlHD, bioEmails, bioLinks β stays null until enrichProfiles fills it in.
Output for a seed profile
{"type": "seed","depth": 0,"username": "nasa","fullName": "NASA","parentUsername": null,"discoveredVia": null,"position": null,"profileUrl": "https://www.instagram.com/nasa/","userId": "528817151","isVerified": true,"isPrivate": false,"isBusinessAccount": true,"followersCount": 100000000,"followsCount": 60,"postsCount": 4200,"categoryName": "Government Organization","biography": "Exploring the universe and our home planet.","externalUrl": "https://www.nasa.gov/","bioEmails": null,"bioLinks": null,"profilePicUrl": "https://scontent.cdninstagram.com/.../150x150.jpg","profilePicUrlHD": "https://scontent.cdninstagram.com/.../hd.jpg","suggestedByCount": null,"suggestedBy": null,"relatedCount": 30,"enriched": true,"error": null,"scrapedAt": "2026-07-26T12:00:00Z"}
A seed row is always fully enriched (enriched: true) β the actor already fetched the full profile to discover its related accounts, so every profile field is populated. relatedCount on a seed row records how many related profiles that seed surfaced after the free filters (verifiedOnly / excludePrivate) were applied. In nested mode, the seed row additionally carries related_profiles (an array of related-profile objects) and related_profiles_count.
An unresolvable input produces an error row instead: type: "error", username, profileUrl (when resolvable), error (e.g. NOT_FOUND, BLOCKED_LOGIN_WALL, ID_RESOLVE_FAILED:<reason>), enriched: false, scrapedAt, and every other field null.
Schema stability and export options
The 28-key column set stays identical across every run regardless of which fields Instagram happens to populate for a given profile β a field that Instagram removes from its response simply comes back null rather than disappearing from the row, so downstream code never has to special-case a missing key. The dataset is available through the Apify Console's Storage tab and the Apify API in JSON, CSV, Excel, XML, RSS, and HTML table formats β no custom export step is built into the actor beyond what the platform provides.
π‘ Instagram Related Profiles Scraper Strategy Guide
π― Strategy 1: Real-time enrichment pipeline
Trigger a run from your CRM or lead-gen tool whenever a new prospect's Instagram handle comes in: pass it as the single value in urls with enrichProfiles: true, then read followersCount, biography, categoryName, and bioEmails off the resulting related and seed rows to enrich the record before writing it back to your destination system. Keep maxEnrichedProfiles low (e.g. 10) to bound the cost of each on-demand call.
π― Strategy 2: Scheduled monitoring and alerting
Save an input as an Apify Task with a fixed seed list, then attach an Apify Schedule to run it daily or weekly. Diff each run's related_order (by username) against the previous dataset to see which accounts entered or left a competitor's related-account list, and watch suggestedByCount for a given username climbing across runs as a signal that it's becoming more central to the niche. Alert on any related account that is new since the previous run and already isVerified: true.
π― Strategy 3: Bulk dataset build
Feed a large urls list (or fan out multiple runs, one seed list per run, via the Apify API) with depth: 2 or 3 and enrichProfiles: true to build a broad, enriched account graph for a niche. Aggregate the resulting datasets into CSV or a database with the Apify API's dataset export. No actor-level concurrency limit is documented in the source beyond the request pacing built into the crawl loop (a roughly one-second pause between seed fetches, half a second between depth-expansion fetches, and 0.4 seconds between enrichment fetches) β plan run time accordingly for large seed lists.
Strategy comparison at a glance
| Strategy | Best for | Run pattern | Output format |
|---|---|---|---|
| Real-time enrichment | Single-lead lookups on CRM events | One seed, on-demand | Flat rows, read immediately |
| Scheduled monitoring | Tracking a competitor's related-account graph over time | Fixed seed list, recurring schedule | Flat rows, diffed run-over-run |
| Bulk dataset build | Research or training datasets across a niche | Large seed list, depth 2β3 | Flat rows exported to CSV/database |
π΄ Related Instagram Scrapers & Tools
| Scraper | What it extracts |
|---|---|
Instagram Followers Lead Scraper (instagram-followers-lead-scraper) | The full follower list of a known account, with lead enrichment |
Instagram Shared-Following / Common-Connections Mapper (instagram-shared-following-mapper) | Accounts that two or more profiles both follow |
Instagram Hashtag Stats Scraper Plus (instagram-hashtag-stats-scraper-plus) | Posts, likes, and comments for a given hashtag |
Instagram Highlights Scraper Plus (instagram-highlights-scraper-plus) | A profile's Highlights and their metadata |
| Instagram Related Profiles Scraper (afanasenko) | Related-account discovery with engagement-rate and Reels analytics (as observed on the Apify Store on 2026-07-26) |
| Website Contact & Email Extractor | Emails and contact details from a website URL, for enriching an external URL found in a bio |
How to integrate Instagram Related Profiles Scraper with your stack
Instagram Related Profiles Scraper works with any language or tool that can make an HTTP request, through the Apify API and the apify-client SDKs.
Python
from apify_client import ApifyClientimport csvclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run_input = {"urls": ["https://www.instagram.com/nasa/", "natgeo"],"max_profiles": 30,"outputMode": "flat","depth": 1,"enrichProfiles": True,"maxEnrichedProfiles": 25,"excludePrivate": True,"proxyConfiguration": {"useApifyProxy": True},}run = client.actor("instagram-related-profiles-network-scraper").call(run_input=run_input)rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())related = [r for r in rows if r["type"] == "related"]with open("related_profiles.csv", "w", newline="", encoding="utf-8") as f:writer = csv.DictWriter(f, fieldnames=related[0].keys())writer.writeheader()writer.writerows(related)print(f"Saved {len(related)} related profiles.")
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });const run = await client.actor('instagram-related-profiles-network-scraper').call({urls: ['https://www.instagram.com/nasa/', 'natgeo'],max_profiles: 30,outputMode: 'flat',depth: 1,enrichProfiles: true,maxEnrichedProfiles: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();const related = items.filter((row) => row.type === 'related');console.log(`Fetched ${related.length} related profiles.`);
MCP for AI agents
Because the actor is reachable through Apify's shared MCP server, an MCP-enabled agent (Claude, Cursor, or another agent framework) can call instagram-related-profiles-network-scraper directly from a task like "Find accounts related to @nasa with at least 50,000 followers" β the agent supplies urls, enrichProfiles, and minFollowers, and reads typed JSON rows back without a parsing step.
Async and scheduled pipelines
For large seed lists, start the run via the Apify API and poll GET /v2/actor-runs/{runId} (or use the client SDK's .call(), which polls for you) instead of waiting synchronously in your own process. For recurring monitoring, save the input as an Apify Task and attach an Apify Schedule β no webhook delivery is built into the actor itself, so polling the dataset or scheduling the task is the supported fire-and-forget pattern.
π― Who Needs Instagram Related Profiles Scraper? (Use Cases & Industries)
π’ Growth and influencer marketing teams
A marketing team seeds the actor with three known creators in their vertical, sets verifiedOnly: true and minFollowers: 20000, and gets back a shortlist of verified, mid-to-large accounts Instagram itself considers related β ready to review for a partnership or influencer-outreach campaign.
π AI and ML data teams
A team building a lookalike-account classifier uses biography and categoryName as text features and followersCount, followsCount, isVerified, and suggestedByCount as structured features β every value typed and consistently present or null, with no HTML to strip first.
π± Competitive intelligence teams
An analyst tracks a competitor's urls seed weekly and watches which accounts newly appear in the related list, using suggestedByCount across a set of competitor seeds to spot which third-party accounts several competitors are all being grouped with.
π¬ Researchers
A social-network researcher studying platform recommendation structures runs the actor at depth: 3 across a sample of seed accounts and uses the resulting parentUsername / discoveredVia chain and suggestedBy[] lists to reconstruct the related-account graph β using only publicly accessible profile data, with no login involved.
Is it legal to scrape Instagram?
Scraping publicly accessible web data is generally lawful in the United States: in hiQ Labs v. LinkedIn Corp., 938 F.3d 985 (9th Cir. 2019), the Ninth Circuit held that scraping data not walled off behind a login does not violate the Computer Fraud and Abuse Act. That precedent addresses unauthorized-access law, not Instagram's own Terms of Service β scraping in violation of a platform's ToS can still expose you to civil claims (breach of contract, account suspension) even where it is not a criminal violation. Separately, because this actor returns personal data β usernames, biographies, follower counts, and any emails or links found in a bio β GDPR and CCPA-style data-protection obligations attach to how you store, process, and use that data once collected, independent of whether collecting it was lawful. Instagram Related Profiles Scraper returns only publicly accessible data. What you do with that data is your responsibility β consult legal counsel for commercial applications involving personal data.
β Frequently asked questions
Does Instagram Related Profiles Scraper work without an Instagram account?
Yes. It calls Instagram's public web_profile_info endpoint the same way an anonymous website visitor's browser does β no Instagram login, session cookie, or credential of any kind is required or accepted as input.
How does Instagram Related Profiles Scraper handle Instagram's anti-scraping measures?
It bootstraps a session by loading a seed profile's page with Chrome TLS impersonation (via curl_cffi, impersonate="chrome110") to harvest a working x-ig-app-id and csrftoken, retries failed requests up to 3 times with exponential backoff, and detects blocks by checking for HTTP 401/403/429/500/502/503/504 responses or a 200 response that is actually an HTML login wall instead of JSON. Residential proxy support is built in via proxyConfiguration and is recommended because Instagram throttles and blocks datacenter IPs.
Can I run Instagram Related Profiles Scraper at scale without getting blocked?
The actor self-paces its requests β roughly a one-second pause between seed fetches, half a second between depth-expansion fetches, and 0.4 seconds between enrichment fetches β and retries transient failures automatically. No uptime or block-rate figure is published for this actor; using a residential proxy and keeping depth and maxEnrichedProfiles proportional to your seed count are the documented ways to reduce block risk.
How fresh is the data Instagram Related Profiles Scraper returns?
Every run performs a live fetch against Instagram's web_profile_info endpoint at run time β nothing is cached or reused across separate actor runs. Within a single run, a profile fetched once (for example, as both a related node and later an enrichment target) is served from an in-memory per-run cache rather than re-requested.
Why does Instagram limit related profiles to roughly 30β80 per seed?
Instagram's web_profile_info response returns a single fixed batch of related accounts per profile β there is no pagination parameter that requests a second page. max_profiles (0β80) only slices that fixed batch; to surface more accounts, add more seeds or increase depth to follow the graph outward.
Which Instagram Related Profiles Scraper fields work best for AI training and RAG indexing?
For RAG, biography and categoryName carry the most descriptive free text about what an account is. For training data, followersCount, followsCount, postsCount, isVerified, isBusinessAccount, and suggestedByCount are the fields with the most consistent structure across every row β all typed primitives (integers, booleans, or null) requiring no cleanup before use.
Does scraping Instagram related-profile data raise data protection concerns?
Yes β the actor returns publicly available personal data (usernames, biographies, follower counts, and any bio-extracted emails or links), so GDPR and CCPA-style obligations apply once you store and use it. The actor itself only reads what Instagram already serves publicly; establishing a lawful basis for storing and using that data is the responsibility of whoever runs it.
Does Instagram Related Profiles Scraper work with Claude, ChatGPT, and other AI agent tools?
Yes, through Apify's shared MCP server (mcp.apify.com), which exposes every public Apify Actor β including this one β as a callable tool to any MCP-enabled client. Outside of MCP, it is callable as a standard HTTP endpoint by any agent framework via the Apify API; every response is typed JSON, so no HTML parsing step sits between the actor and an LLM's context window.
How does Instagram Related Profiles Scraper compare to other Instagram related-profile scrapers?
Afanasenko's Instagram Related Profiles Scraper documents deeper per-profile analytics β engagement rate, Reels view metrics, a Quality flag, and 20+ filters β that this actor does not compute (as observed on the Apify Store on 2026-07-26); if those metrics are what you need, it is the better fit. This actor's advantages are a null-only missing-value convention (rather than the string "N/A", as that competitor documents), an uncharged seed-profile summary row on every run, and a cross-seed suggestedByCount signal that is not documented on either competitor's listing as of the same date.
βΉοΈ Disclaimer
Instagram Related Profiles Scraper extracts only publicly available data from Instagram. This tool is intended for lawful use cases only. Users are responsible for complying with Instagram's terms of service and applicable data protection laws in their jurisdiction.