
Instagram Reel Scraper
scrape.ly/store/echofield/instagram-reel-scraperSocial mediaVideos
1 monthly user

Search one or many usernames across 7,000+ websites (social networks, coding, gaming, forums, dating) and get every matching profile URL. Maigret-grade detection rules with false-positive control.
Type a username and get every site where that handle has an account, with a direct profile link for each one. It checks social networks, developer platforms, gaming, video, music, dating sites and thousands of forums, using the open-source Maigret and Sherlock site databases (7,000+ sites in total). The top 500 sites take under a minute per username. No login, no API keys, and you only pay for accounts that are found.
@ or a pasted profile URL is cleaned up for you).0 checks all 7,000+ sites).social, coding, gaming) or list specific sites.| Field | Description | Default |
|---|---|---|
usernames | Usernames to search | ["nasa"] |
topSites | Check the N most popular sites (0 = all) | 500 |
tags / excludeTags | Only / skip sites in these categories | – |
sites | Only these sites, by name or domain | – |
falsePositiveCheck | Drop sites that also "find" a random username | true |
extractProfileFields | Save public profile details | false |
searchRelatedUsernames | Also search usernames linked from found profiles (max 10) | false |
includeNotFound | Also save not-found and unconfirmed rows (free) | false |
includeSimilarSearch | Include sites that can only be checked via fuzzy search pages | false |
requestTimeoutSecs | Wait per site | 10 |
maxConcurrency | Sites checked at the same time | 200 |
{
"usernames": ["nasa", "spacex"],
"topSites": 500,
"tags": ["social", "video"],
"extractProfileFields": true
}
One row per site where the username has an account.
| Field | Description |
|---|---|
username | The searched username |
siteName | Site name |
profileUrl | Direct link to the profile |
siteMainUrl | Site home page |
status | Claimed (account exists); with "Include not-found" also Not Found, Unknown (blocked or timed out) or Unreliable (failed the false-positive check) |
httpStatus | HTTP status the site answered |
isSimilar | Checked through a search page that may match similar names |
alexaRank | Site popularity rank (lower is more popular) |
tags | Site categories |
detectionMethod | status_code, message or response_url |
errorType | Why a check could not be confirmed (only on Unknown rows) |
foundVia | For related usernames: the profile that linked to it |
fullName, bio, image, location, website, extractedIds | Public profile details (only with extractProfileFields) |
scrapedAt | Check time (UTC) |
Example (fictional account):
{
"username": "jane_doe_dev",
"siteName": "GitHub",
"profileUrl": "https://github.com/jane_doe_dev",
"siteMainUrl": "https://www.github.com/",
"status": "Claimed",
"httpStatus": 200,
"isSimilar": false,
"alexaRank": 10,
"tags": ["business", "coding", "networking"],
"detectionMethod": "status_code",
"errorType": null,
"foundVia": null,
"fullName": "Jane Doe",
"bio": "Backend developer. Coffee and open source.",
"image": "https://avatars.githubusercontent.com/u/0000000",
"location": "Berlin, Germany",
"extractedIds": {"uid": "0000000", "public_repos_count": "42"},
"scrapedAt": "2026-10-14T18:00:00Z"
}
The run's key-value store also holds an OUTPUT summary: per username, how many sites were checked, how many profiles were found, how many checks could not be confirmed, and which sites were removed by the false-positive check.
You pay $0.01 per account found ($10 per 1,000 found accounts). Sites where nothing was found, unconfirmed checks and sites removed by the false-positive check are free. Platform usage (compute and proxy traffic) is billed separately and is small: one username on the top 500 sites uses about $0.04 of compute and proxy traffic.
Example: a username found on 150 of the top 500 sites costs about $1.50 in result fees plus about $0.04 of platform usage.
Is it legal? It only reads public pages that anyone can open without logging in. Profile details are personal data in many jurisdictions (GDPR, CCPA), so collect them only with a lawful basis, and do not use the results for decisions about employment, credit, housing or insurance.
Do I need a login or a proxy? No login. Datacenter proxies are used by default; switch to residential proxies to get through more sites that block datacenter IPs.
How accurate is it? Each site has its own detection rule (status code, page text or redirect). The built-in false-positive check removes sites that answer "found" for any name, and search-page matches are left out by default. Some popular sites (for example Instagram, LinkedIn, Reddit) often block automated checks; those come back as unconfirmed rather than as a wrong "not found".
Why are some fields empty? Profile details are only saved with extractProfileFields, and only for sites whose pages expose them. alexaRank is empty for sites without a popularity rank.
How many usernames can I search? Up to 1,000 per run. Each username is checked on every selected site.
Can I schedule it or use the API? Yes. Schedule runs to monitor a handle over time, or start runs and read the dataset through the API.
Unknown instead of a result.Site data: Maigret (MIT, © Soxoj) and Sherlock (MIT, © Sherlock Project). Profile parsing: socid-extractor (MIT).
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
usernamesarrayOptionalUsernames
One or more usernames (handles) to search. A leading @ or a pasted profile URL is cleaned up automatically. Every username is checked on every selected site. Names with spaces are skipped.
topSitesintegerOptionaldefault 500Number of sites to check
Check the N most popular sites in the database (plus their mirror sites). Use 0 to check all 7,000+ sites, which takes longer and finds more small forums.
tagsarrayOptionalOnly sites with these tags
Only check sites in these categories, e.g. social, coding, gaming, video, music, photo, dating, forum, finance, crypto, or a country code like us, de, ru. Leave empty for all.
excludeTagsarrayOptionalSkip sites with these tags
Skip sites in these categories, e.g. erotic, dating, forum.
sitesarrayOptionalOnly these sites
Check only these sites, by name or domain (e.g. GitHub, Reddit, tiktok.com). When set, the number-of-sites limit and the tag filters are ignored.
falsePositiveCheckbooleanOptionaldefault trueRemove false positives
Also checks a random username that cannot exist. Sites that claim to have that account too are unreliable for this run and their hits are dropped (not charged).
extractProfileFieldsbooleanOptionaldefault falseExtract profile details
Also save public profile details found on the profile page, such as display name, bio, avatar, location, website and site IDs. Only enable it when you have a lawful basis to process this personal data.
searchRelatedUsernamesbooleanOptionaldefault falseSearch related usernames
When a found profile links to other usernames (for example a linked account on another site), search those too (up to 10 extra usernames per run). Requires reading profile pages.
includeNotFoundbooleanOptionaldefault falseInclude not-found and unconfirmed sites
Also save a row for every site where the account was not found or could not be confirmed (blocked, timeout). These rows are free.
includeSimilarSearchbooleanOptionaldefault falseInclude search-page matches
Some sites can only be checked through a search page that also matches similar names. Off by default because these hits are often not the exact account.
requestTimeoutSecsintegerOptionaldefault 10Request timeout (seconds)
How long to wait for each site. Sites that do not answer in time are reported as unconfirmed (not charged).
maxConcurrencyintegerOptionaldefault 200Parallel requests
How many sites are checked at the same time.
residentialFallbackbooleanOptionaldefault trueRetry blocked sites with residential proxies
When a site blocks the datacenter proxy (bot protection, access denied, timeout), check it once more from a residential IP. Finds more accounts on protected sites for a little residential traffic.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies are used by default and work for most sites. Residential proxies get through more sites that block datacenter IPs, at a higher traffic price.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| username | string | Searched username |
| siteName | string | Website name |
| profileUrl | string | Profile URL on that site |
| siteMainUrl | string | null | Site home page |
| status | string | Claimed (account exists), or Not Found / Unknown / Unreliable when not-found rows are included |
| httpStatus | integer | null | HTTP status the site answered |
| isSimilar | boolean | Checked via a search page that can match similar names |
| alexaRank | integer | null | Site popularity rank (lower is more popular) |
| tags | array | Site categories |
| detectionMethod | string | null | How existence was detected: status_code, message or response_url |
| errorType | string | null | Why a check could not be confirmed (only on Unknown rows) |
| foundVia | string | null | For related usernames: the site and username that linked to it |
| fullName | string | null | Display name (with profile details on) |
| bio | string | null | Bio (with profile details on) |
| image | string | null | Avatar URL (with profile details on) |
| location | string | null | Location (with profile details on) |
| website | string | null | Website (with profile details on) |
| extractedIds | object | null | All identifiers extracted from the page (with profile details on) |
| scrapedAt | string | Check time (UTC) |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Profile found | Charged per account found on a site. Not-found, unconfirmed and false-positive sites are free. | $0.01 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('cornerledger/username-osint-scraper').call({
"usernames": [
"nasa"
],
"topSites": 500,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run cornerledger/username-osint-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=cornerledger/username-osint-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Accounts with this username on popular sites.
Matching accounts with profile fields and related usernames.
A quick check of the 10 most popular sites.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.