Instagram Related Person Scraper
Pricing
$19.99/month + usage
Instagram Related Person Scraper
The Instagram Related Person Scraper helps you discover and extract data about related or suggested Instagram accounts. Gather usernames, bios, follower counts, and profile links. Perfect for influencer research, competitor analysis, and expanding outreach with structured, actionable data.
Pricing
$19.99/month + usage
Rating
5.0
(11)
Developer
Scraper Engine
Maintained by CommunityActor stats
10
Bookmarked
335
Total users
12
Monthly active users
5 days ago
Last modified
Categories
Share
Instagram Related Profile Scraper — Usernames, IDs & Verification
Instagram Related Person Scraper extracts the "related" and "suggested" accounts Instagram itself surfaces for any public profile — returning each related account's username, full_name, id, is_verified, is_private, and profile_pic_url. Results come back as clean, structured JSON with no HTML to parse, and no Instagram login is required to run it. Add one or more usernames, hit Start, and map creator networks or competitor audiences in a single run.
What is Instagram Related Person Scraper?
Instagram Related Person Scraper is an Apify Actor that queries Instagram's own public web profile endpoint for the "related profiles" (or "chaining suggestions") graph Instagram already computes for a given account, and returns those suggested accounts as structured data. It does not require an Instagram account, login, or session cookie — it bootstraps its own lightweight public session automatically for each run. It's built for growth marketers, influencer researchers, and developers who need to map Instagram's suggested-account graph programmatically instead of clicking through "related accounts" one profile at a time.
What Instagram related-profile data is publicly available to scrape?
Instagram serves a "related profiles" graph for public accounts without requiring the viewer to log in — the same suggestions the endpoint would hand any anonymous visitor. What's not available is a related-profile graph for private accounts, or any data field Instagram's own endpoint doesn't include in that response (such as counts).
| Data Category | Publicly Available | Restricted behind private-account visibility |
|---|---|---|
| Related profiles for public accounts | Yes — returned directly by Instagram's profile endpoint | — |
| Related profiles for private accounts | No | Instagram doesn't expose a related-profile graph for accounts you can't already view |
| Related account username & full name | Yes | — |
| Verified-badge flag on related accounts | Yes | — |
| Private-account flag on related accounts | Yes | — |
| Profile picture URL of related accounts | Yes | — |
| Follower/following counts of related accounts | No | Not present in this endpoint's response — would require a separate profile lookup |
| The complete set of accounts Instagram could ever suggest | No | Instagram's own algorithm caps and orders the list; this Actor returns exactly what that endpoint hands back |
Instagram Related Person Scraper only returns publicly visible data — what any visitor sees. Nothing behind a login wall.
What data can I extract with Instagram Related Person Scraper?
Instagram Related Person Scraper returns one row per input username, holding a run summary plus a nested list of the related accounts Instagram suggested for it.
| Field Name | Description |
|---|---|
username | The input profile the related accounts were fetched for |
limit | The per-profile cap that was applied to this username (from max_profiles) |
related_profiles_count | Number of related profiles returned for this username |
related_profiles | Array of related-profile objects (see below) |
error | Present only when the fetch failed for this username; holds the failure reason |
Related-profile object fields
Each entry inside related_profiles describes one suggested account:
| Field Name | Description |
|---|---|
id | Instagram's internal numeric ID for the related account |
username | Handle of the related/suggested account |
full_name | Display name of the related account |
is_verified | true if the related account has Instagram's verified badge |
is_private | true if the related account is private |
profile_pic_url | Direct URL to the related account's profile picture |
🤖 Add-on: Need additional Instagram data?
Related profiles tell you who Instagram thinks looks similar — pair that with Instagram Profile Scraper for full bio, follower, and post-count data on any of those accounts, or Instagram Followers Scraper With Bio Contact Enrichment to turn a seed account's own followers into a contactable lead list. If you're mapping hashtags instead of accounts, Instagram Related Hashtag Stats Scraper Pay Per Events applies the same "what does Instagram suggest next" idea to tags.
Why not build this yourself?
Instagram's official Graph API has no endpoint for related, suggested, or "accounts like this one" data at any access tier — Business Discovery only exposes basic public metrics for a fixed set of connected accounts, so there's no official API path to replace this Actor. Building your own scraper means reverse-engineering Instagram's private web_profile_info endpoint, generating and refreshing an app ID and CSRF token, spoofing a browser's TLS fingerprint to avoid immediate blocks, and rebuilding all of it whenever Instagram tweaks the response shape. Add residential proxy costs and retry/backoff logic on top, and maintaining this in-house takes ongoing engineering time that a maintained Actor absorbs for you.
How to use Instagram Related Person Scraper
Instagram Related Person Scraper runs directly on Apify — no separate signup or API key beyond your Apify account is needed.
- Open the Actor on its Apify Store page and click Try for free (or Start, if you already have it saved).
- Add one or more Instagram profile URLs,
@handles, or plain usernames tourls— every field is optional, so an empty run still completes against a built-in demo profile. - Adjust
max_profilesif you want more or fewer related accounts per username than the default of 50. - Leave
proxyConfigurationenabled (it's prefilled on) for more reliable runs. - Click Start, then export the dataset as JSON, CSV, or Excel once the run finishes.
How to scale to bulk Instagram related-profile extraction
urls accepts a list, so adding multiple usernames or profile URLs in one run scrapes each one's related profiles in sequence — there's no separate "bulk mode" to enable. When calling the Actor through the Apify API instead of the Console, each entry in the list can also be an object like {"username": "nike", "limit": 20} to give that one profile its own cap instead of the run-wide max_profiles default.
What can you do with Instagram related-profile data?
- An influencer marketing manager scouting lookalike creators filters
related_profilesbyis_verifiedto shortlist verified accounts similar to a known creator before outreach. - A growth marketer researching a niche runs several competitor usernames through
urlsand compares eachrelated_profileslist to find accounts that show up as "related" to more than one competitor. - A brand-safety or research team uses
is_privateon each related profile to separate accounts that can be vetted further (public) from ones that can't (private). - A social-listening researcher chains discovery by feeding
related_profiles[].usernamevalues from one run back intourlsfor a follow-up run, walking Instagram's suggestion graph outward one hop at a time. - An AI engineer building a "find accounts like this" agent tool feeds the
related_profilesJSON array straight into a vector store or RAG pipeline, usingusernameandfull_namefor semantic matching without writing any parsing code.
How does Instagram Related Person Scraper handle rate limits and blocking?
Before fetching any profile, the Actor bootstraps a session by requesting the target's public profile page like a browser would, pulling a real app ID and CSRF token out of the response instead of using only static defaults. Every request to Instagram is sent through curl_cffi with Chrome TLS-fingerprint impersonation rather than a plain HTTP client, and responses are checked for both blocking status codes (401/403/429/500/502/503/504) and HTML "login wall" pages disguised as a 200 response. If proxyConfiguration is enabled, the Actor always escalates to Apify's residential proxy pool and retries a blocked request up to 3 times; the session bootstrap step retries up to 3 times with exponential backoff as well. A short fixed delay is inserted between each username's requests to pace the run. If a username still fails after all retries, that row is written with an empty related_profiles list and an error field describing the failure, instead of stopping the whole run.
⬇️ Input
Instagram Related Person Scraper takes three optional parameters — nothing is required to start a run.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
urls | No | Array | Instagram profile URLs, @handles, or plain usernames to fetch related accounts for. Add multiple entries to cover several profiles in one run. | ["https://www.instagram.com/ishowspeed/", "@mrbeast"] |
max_profiles | No | Integer | Maximum related profiles to fetch per input username. Minimum 0, maximum 10,000. | 50 |
proxyConfiguration | No | Object | Apify Proxy settings. Residential proxy is prefilled on for reliability. | {"useApifyProxy": true} |
Example input
{"urls": ["https://www.instagram.com/ishowspeed/","@mrbeast","nike"],"max_profiles": 50,"proxyConfiguration": {"useApifyProxy": true}}
⬆️ Output
Every run writes one row per input username to the Actor's dataset, in typed, consistent JSON — export it as JSON, CSV, or Excel directly from the run. Each row is billed as one row_result pay-per-event charge, whether that username's fetch succeeded or ended in an error row.
Example output
[{"username": "ishowspeed","limit": 50,"related_profiles_count": 4,"related_profiles": [{"id": "7594441026","username": "mrbeast","full_name": "MrBeast","is_private": false,"is_verified": true,"profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/mrbeast_profile.jpg"},{"id": "1922658954","username": "kaicenat","full_name": "Kai Cenat","is_private": false,"is_verified": true,"profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/kaicenat_profile.jpg"},{"id": "48282783661","username": "duke.dennis","full_name": "Duke Dennis","is_private": false,"is_verified": true,"profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/dukedennis_profile.jpg"},{"id": "6944599466","username": "agentzeroatl","full_name": "Agent 00","is_private": false,"is_verified": false,"profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/agent00_profile.jpg"}]},{"username": "some_private_account","limit": 50,"related_profiles_count": 0,"related_profiles": [],"error": "BLOCKED_LOGIN_WALL: response was HTML, not JSON"}]
How does it work?
Instagram Related Person Scraper first requests each target's public profile page the way a browser would, pulling out a live app ID, CSRF token, and cookies instead of relying only on static fallbacks. It then calls Instagram's own web_profile_info web endpoint for that username and reads whichever related-accounts graph Instagram returns — edge_related_profiles or edge_chaining, depending on the account — normalizing both into the same output shape. Requests are sent with a Chrome TLS-fingerprint impersonation layer rather than a real headless browser, and route through Apify's residential proxy pool when enabled, so no browser rendering or JavaScript execution happens on your end. Only what Instagram's public endpoint actually returns is included — nothing is inferred or filled in. Because the output fields are normalized in code rather than scraped from HTML, the same username / related_profiles schema stays stable even if Instagram changes its page layout.
Integrations
Instagram Related Person Scraper runs on Apify, so it works with anything that can call an HTTP API or an Apify client library — no proprietary SDK required.
Calling Instagram Related Person Scraper programmatically
from apify_client import ApifyClientclient = ApifyClient("<APIFY_API_TOKEN>")run = client.actor("scraper-engine/instagram-related-person-scraper").call(run_input={"urls": ["https://www.instagram.com/ishowspeed/", "@mrbeast"],"max_profiles": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["username"], item["related_profiles_count"])
Works in Go, Ruby, Node.js, cURL — any language that can make an HTTP request.
MCP integration for AI agents
Instagram Related Person Scraper is reachable through Apify's Actors MCP Server, which exposes Actors on Apify Store as callable tools for MCP-compatible clients such as Claude Desktop and Claude Code. Register it by connecting from this Actor's page in Apify Console, or by running npx @apify/actors-mcp-server configured with this Actor's store ID.
No-code tools (n8n, Make, LangChain)
In n8n, use the HTTP Request node (or the community Apify node) pointed at this Actor's run endpoint, passing urls and max_profiles in the request body. In Make, use the Apify app's "Run Actor and get dataset items" module and map urls from an earlier scenario step. In LangChain, call the same Apify API endpoint from a custom Tool, or load results with the community Apify dataset loader, so an agent can pull a fresh related-profile graph mid-conversation.
Is it legal to scrape Instagram related profiles?
Scraping publicly available Instagram profile data is generally lawful, though Instagram's own Terms of Service restrict automated access to the platform. Instagram Related Person Scraper only returns data Instagram's own endpoint already serves publicly — usernames, names, and badges any visitor could see, nothing from behind a login wall. Because the accounts returned are identifiable individuals or brands, this output can count as personal data under GDPR and CCPA, so you need a lawful basis before storing or reusing it, and should honor deletion/access requests from anyone whose data you keep. Consult legal counsel if your use case involves bulk storage of personal data or spans multiple jurisdictions.
Frequently asked questions
What Instagram related-profile fields does Instagram Related Person Scraper return?
The top fields are username, related_profiles (with nested username, full_name, is_verified, and is_private), and related_profiles_count. See What data can I extract above for the full field list.
Does Instagram Related Person Scraper require an Instagram account or login?
No. The Actor bootstraps its own public session for each run by requesting the target's profile page directly — no sessionid cookie, password, or Instagram account is needed as input.
How many related profiles can I extract in one run?
Up to max_profiles (default 50, maximum 10,000) per input username, and you can add as many usernames to urls as you want processed in that run.
What happens if a profile is private or doesn't exist?
Instagram doesn't expose a related-profiles graph for accounts you can't view, so that username's row comes back with an empty related_profiles array and an error field holding the failure reason (for example, an HTTP error or a detected login-wall response), rather than failing the whole run.
Can I scrape multiple Instagram profiles at once?
Yes. urls is a list — add every username or profile URL you want related accounts for, and the Actor processes them one after another in the same run.
Does Instagram Related Person Scraper work with Claude, ChatGPT, and other AI agent tools?
Yes. It's reachable through Apify's Actors MCP Server for MCP-compatible clients, and callable as a plain HTTP endpoint by any agent framework that can make API calls.
How does Instagram Related Person Scraper compare to other Instagram related-profile scrapers?
Most related-profile tools on the market differ mainly in whether they accept a list of usernames per run or only one at a time, and whether they return structured flags like is_verified and is_private alongside the username. Instagram Related Person Scraper accepts a list of usernames in a single run and returns those flags on every related profile by default.
Does Instagram Related Person Scraper return data in a format LLMs can use directly?
Yes. Output is typed, normalized JSON with consistent field names across runs — no HTML parsing or CSS selectors needed. Pass it straight to an LLM, index it in a vector store, or feed it to an agent tool.
What happens when Instagram changes its layout or anti-bot system?
The Actor is maintained, and the output schema (username, related_profiles, and its nested fields) stays stable even when Instagram's internal endpoint or page structure changes. No specific update turnaround time is guaranteed.
Can I use Instagram Related Person Scraper without managing proxies or browser infrastructure?
Yes. There's no browser involved at all — the Actor talks directly to Instagram's web endpoint with a TLS-impersonating HTTP client, and handles residential proxy rotation and retries internally when proxyConfiguration is enabled.
Which Instagram related-profile fields work best for AI training data and RAG indexing?
For RAG-style semantic matching, index username and full_name — they're the identity-bearing text fields returned for every related profile. For structured filtering or training features, is_verified, is_private, and related_profiles_count return as consistently typed booleans and numbers across every row, since this Actor doesn't include free-text bio fields in this particular output.
Related scrapers
| Scraper Name | What it extracts |
|---|---|
| Instagram Profile Scraper | Full profile data — bio, follower/following/post counts, verification, related accounts, and latest posts |
| Instagram Followers Scraper With Bio Contact Enrichment | A profile's followers list, optionally enriched with bio, business category, and public email/phone |
| Instagram Followers — New Followers & Unfollows Checker | Followers or following lists with cross-run growth diffs (new followers, unfollows, growth rate) |
| Instagram Hashtag Scraper | Posts or reels for a given hashtag, section by section |
| Instagram Related Hashtag Stats Scraper Pay Per Events | Hashtag post counts plus the related hashtags Instagram itself suggests, by popularity tier |
| Instagram Comments Scraper With Lead Enrichment | Post/reel comments with lead-intent flags and optional commenter profile enrichment |
Your feedback
Found a bug or missing a field? Let us know so we can take a look — feedback like this is what keeps this Actor accurate as Instagram's site changes.