# Instagram & TikTok Micro-Influencer Lead Finder (`egeusta/social-micro-influencer-scraper`) Actor

Find high-engagement micro-influencers and creators across Instagram and TikTok with verified business emails, follower stats, and engagement metrics.

- **URL**: https://apify.com/egeusta/social-micro-influencer-scraper.md
- **Developed by:** [Ege Usta](https://apify.com/egeusta) (community)
- **Categories:** Social media, Lead generation, Marketing
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Instagram & TikTok Micro-Influencer Finder

Find public creator profiles for product seeding, affiliate campaigns and UGC
outreach. Give it profile or hashtag URLs (or bare hashtags), set a follower
band such as 5,000–50,000, and it returns public bio contact signals, niche
hashtags, profile metrics and recent-post engagement when the platform exposes
them.

```json
{
  "hashtags": ["moda", "kozmetik"],
  "platform": "instagram",
  "minFollowers": 5000,
  "maxFollowers": 50000,
  "includeWithoutEmail": false,
  "useApifyProxy": true,
  "proxyGroups": ["RESIDENTIAL"],
  "useBrowserFallback": true
}
```

```json
{
  "platform": "instagram",
  "profileUrl": "https://www.instagram.com/example.creator",
  "username": "example.creator",
  "displayName": "Example Creator",
  "bio": "moda & lifestyle · iş birliği: hello@example.com",
  "followers": 18400,
  "following": 812,
  "postCount": 640,
  "emails": ["hello@example.com"],
  "phones": [],
  "externalLinks": ["https://linktr.ee/example.creator"],
  "hashtags": ["#moda", "#ootd"],
  "recentLikes": 540,
  "recentComments": 26,
  "engagementRate": 2.93,
  "microInfluencerFit": true,
  "status": "ok",
  "checkedAt": "2026-08-28T09:00:00.000Z",
  "error": null
}
```

### What this does that a generic scraper does not

**It filters to the micro tier as it goes.** Profiles outside the
`minFollowers`–`maxFollowers` band are dropped, and — unless
`includeWithoutEmail` is on — so are `ok` profiles with no public business
email. You pay for the leads you asked for.

**Contact signals come from public bio text only.** Emails and phone numbers
are extracted from the visible bio and page text; there is no login, no private
data.

**Three fetch tiers, escalated only when needed.** Direct request first; then
Apify Proxy with rotation if the response is empty or challenged; then a
headless Chromium render if `useBrowserFallback` is on. The browser is shared
across the run and closed on exit.

**Blocked is reported, not hidden.** Platform challenge pages, private profiles
and missing metrics come back as `status: "blocked"` / `not-found` with an
`error`, never as fabricated numbers.

### Input

| Field | What it does |
|---|---|
| `startUrls` | Public profile, hashtag or search URLs |
| `hashtags` | Bare hashtags used to build discovery URLs |
| `platform` | `auto`, `instagram` or `tiktok` |
| `maxProfiles` | Max unique profiles emitted (1–1000) |
| `minFollowers` / `maxFollowers` | Follower band; `maxFollowers: 0` means no upper limit |
| `lookbackDays` | Requested window for recent-engagement signals |
| `includeWithoutEmail` | Keep profiles with no public email |
| `requestTimeoutSecs` | Per-request timeout (5–120) |
| `useApifyProxy` / `proxyGroups` | Proxy fallback and optional groups (e.g. `RESIDENTIAL`) |
| `useBrowserFallback` | Allow a Chromium render when direct + proxy are challenged (more memory / compute) |

### Output

One row per profile: identity, `bio`, `followers` / `following` / `postCount`,
`emails[]` / `phones[]` / `externalLinks[]`, `hashtags[]`, recent-post
`recentLikes` / `recentComments`, a derived `engagementRate`,
`microInfluencerFit`, and `status` / `checkedAt` / `error`. The run summary is
written to the key-value store record `SUMMARY`.

### Limits, stated plainly

- **Instagram and TikTok serve limited data to logged-out clients.** Follower
  counts and engagement are best-effort and often come from `og:` / JSON-LD
  metadata; expect gaps.
- **Discovery only sees links on the page given** (profile or hashtag page); it
  does not scroll an infinite feed.
- **`engagementRate` is `recentLikes / followers`** from whatever the page
  exposed — a rough indicator, not an audited metric.
- Use public pages lawfully, respect each platform's terms and rate limits, and
  contact creators only in line with applicable privacy and anti-spam rules.

***

Built alongside **Scopras**, an audit tool for e-commerce data quality.

# Actor input Schema

## `startUrls` (type: `array`):

Public Instagram/TikTok profile, hashtag or search URLs.

## `hashtags` (type: `array`):

Hashtags such as moda, kozmetik or fitness. Public hashtag pages are used for discovery.

## `platform` (type: `string`):

Limit discovery to one platform or detect it from each URL.

## `maxProfiles` (type: `integer`):

Maximum unique public creator profiles to emit.

## `minFollowers` (type: `integer`):

Filter out profiles below this follower count.

## `maxFollowers` (type: `integer`):

Filter out profiles above this follower count; use 0 for no upper limit.

## `lookbackDays` (type: `integer`):

Requested lookback window for recent engagement signals when public post timestamps are available.

## `includeWithoutEmail` (type: `boolean`):

Keep creator profiles even when no public business email is visible.

## `requestTimeoutSecs` (type: `integer`):

Maximum time allowed for each public page request.

## `useApifyProxy` (type: `boolean`):

Retry blocked public pages through Apify Proxy with automatic rotation.

## `proxyGroups` (type: `array`):

Optional Apify Proxy groups, for example RESIDENTIAL. Leave blank for the default proxy pool.

## `useBrowserFallback` (type: `boolean`):

If direct and proxy HTML are challenged, retry the public page in Chromium. This uses more memory and compute.

## Actor input object example

```json
{
  "startUrls": [],
  "hashtags": [
    "fitness"
  ],
  "platform": "auto",
  "maxProfiles": 100,
  "minFollowers": 5000,
  "maxFollowers": 50000,
  "lookbackDays": 30,
  "includeWithoutEmail": false,
  "requestTimeoutSecs": 30,
  "useApifyProxy": true,
  "proxyGroups": [],
  "useBrowserFallback": true
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "hashtags": [
        "fitness"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("egeusta/social-micro-influencer-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "hashtags": ["fitness"] }

# Run the Actor and wait for it to finish
run = client.actor("egeusta/social-micro-influencer-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "hashtags": [
    "fitness"
  ]
}' |
apify call egeusta/social-micro-influencer-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,egeusta/social-micro-influencer-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hSPzRqdLBDKsgC5O2/builds/k1aesNye2FYuvjnk8/openapi.json
