# Instagram Competitor & Creator Intelligence (`datavaultlabs/instagram-competitor-intelligence`) Actor

Instagram competitor analysis, engagement analysis and creator intelligence using public profiles, posts, reels, likes, comments, followers, posting frequency, CTA and sponsorship signals.

- **URL**: https://apify.com/datavaultlabs/instagram-competitor-intelligence.md
- **Developed by:** [Samuel Huirau Atutahi](https://apify.com/datavaultlabs) (community)
- **Categories:** Social media, Lead generation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 profile intelligences

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 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 Competitor & Creator Intelligence

Turn public Instagram profiles, posts, and reels into decision-ready competitor and creator intelligence.

**Instagram Competitor & Creator Intelligence** helps brands, agencies, marketers, researchers, and creator teams compare public Instagram performance without manually collecting metrics or building spreadsheets.

The Actor produces three layers of output:

- **Media intelligence** for individual posts and reels
- **Profile intelligence** with audience and performance benchmarks
- **Competitor comparisons** for side-by-side ranking of multiple profiles

### What you can analyze

#### Profile intelligence

For each requested public profile, the Actor can return:

- Username and profile URL
- Full name
- Followers and following
- Total profile post count
- Biography and external website
- Verification/private status when available
- Number of media items analyzed
- Content format mix
- Average and median likes
- Average comments
- Average and median engagement rate
- Average video plays
- Estimated posting interval and posts per week
- CTA post rate
- Sponsorship-signal rate
- Top hashtags and mentions
- Top-performing media

#### Post and reel intelligence

Each media record can include:

- Requested competitor profile
- Actual content owner
- Post/reel URL and shortcode
- Media type and publication timestamp
- Caption, hashtags, and mentions
- Likes and comments
- Total engagement and engagement rate
- Video views and plays
- View rate and play rate
- Video duration
- Paid-partnership and sponsorship signals
- CTA detection
- Coauthors and tagged users
- Available recent comments

#### Competitor comparison

When two or more profiles are analyzed, the Actor also produces a comparison record ranking profiles by:

- Followers
- Average engagement rate
- Estimated posting frequency
- Average likes

### Input

Provide Instagram usernames or public profile URLs.

Example:

```json
{
  "profiles": ["nike", "adidas"],
  "maxMediaPerProfile": 6,
  "skipPinnedPosts": true
}
```

#### `profiles`

Instagram usernames or full public profile URLs. Up to 20 profiles can be analyzed in one run.

#### `maxMediaPerProfile`

Maximum media items analyzed for each profile.

- Minimum: `1`
- Maximum: `30`
- Default: `6`

#### `skipPinnedPosts`

When enabled, pinned posts are excluded from source collection so older pinned content does not distort current-performance analysis.

Default: `true`

### Output

Results are stored in the default Apify dataset and use three `recordType` values.

#### `media`

One analyzed post or reel.

Example:

```json
{
  "recordType": "media",
  "username": "nike",
  "ownerUsername": "nike",
  "mediaType": "Video",
  "publishedAt": "2026-08-16T16:09:43.000Z",
  "likes": 40000,
  "comments": 446,
  "engagementTotal": 40446,
  "engagementRatePct": 0.0139,
  "videoViews": 85000,
  "videoPlays": 2500000,
  "hasCTA": false,
  "sponsorSignal": false
}
```

#### `profile_summary`

One intelligence summary for each requested profile.

#### `competitor_comparison`

Generated only when at least two profiles are analyzed.

### Requested profile vs. content owner

Collaborative and cross-posted Instagram content may be owned by an account other than the profile requested.

The Actor preserves both:

- `username` — the requested competitor/profile
- `ownerUsername` — the actual content owner returned for the media item

This keeps collaborative posts in the analysis without misattributing ownership.

### Common use cases

- **Competitor benchmarking** — compare audience size, engagement, posting frequency, and content performance.
- **Creator research** — evaluate public creators using engagement, views, plays, sponsorship signals, and posting behavior.
- **Social strategy** — identify high-performing formats, CTAs, hashtags, mentions, and posting patterns.
- **Agency reporting** — feed structured Instagram intelligence into spreadsheets, dashboards, APIs, and automated reports.
- **Sponsorship research** — surface paid-partnership indicators, sponsorship wording, tagged users, coauthors, and mentions.
- **Content research** — compare posts and reels using point-in-time performance metrics.

### Pricing

This Actor uses **Pay per event** pricing with platform usage included.

| Event | Price |
|---|---:|
| Profile intelligence | $0.05 per profile |
| Media analysis | $0.01 per media item |
| Competitor comparison | $0.12 per comparison |
| Actor start | $0.00005 per run |

A competitor comparison is generated only when at least two profiles are analyzed.

### Data availability and limitations

This Actor is designed for **public Instagram profiles and publicly available content**.

Instagram data changes continuously as accounts publish content and engagement grows. Some fields may be unavailable for certain media types, accounts, or posts. Private, restricted, deleted, unavailable, or otherwise inaccessible content may return limited or no results.

Engagement rates are calculated from metrics available at run time and should be treated as point-in-time competitive intelligence.

CTA and sponsorship indicators are deterministic signals based on available metadata and caption content. They are research indicators, not legal or contractual determinations.

### Tips for better comparisons

1. Compare profiles from the same niche or market.
2. Use the same `maxMediaPerProfile` value for every competitor.
3. Keep `skipPinnedPosts` enabled for current-content benchmarking.
4. Increase the media sample when you need a broader performance view.
5. Re-run the same competitor set periodically to monitor changes.

### Automation

Results are structured Apify dataset records and can be used with the Apify API, schedules, webhooks, integrations, downstream Actors, dashboards, and automated reporting workflows.

***

Built by **DataVault Labs** for scalable social-media competitor and creator intelligence.

# Actor input Schema

## `profiles` (type: `array`):

Instagram usernames or full public profile URLs.

## `maxMediaPerProfile` (type: `integer`):

Maximum recent posts/reels analyzed for each profile.

## `skipPinnedPosts` (type: `boolean`):

Exclude pinned content so recent-performance analysis is not distorted by older pinned posts.

## Actor input object example

```json
{
  "profiles": [
    "nike"
  ],
  "maxMediaPerProfile": 1,
  "skipPinnedPosts": true
}
```

# Actor output Schema

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

Media analysis, profile summaries, and competitor comparison records.

# 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 = {
    "profiles": [
        "nike"
    ],
    "maxMediaPerProfile": 1,
    "skipPinnedPosts": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("datavaultlabs/instagram-competitor-intelligence").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 = {
    "profiles": ["nike"],
    "maxMediaPerProfile": 1,
    "skipPinnedPosts": True,
}

# Run the Actor and wait for it to finish
run = client.actor("datavaultlabs/instagram-competitor-intelligence").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 '{
  "profiles": [
    "nike"
  ],
  "maxMediaPerProfile": 1,
  "skipPinnedPosts": true
}' |
apify call datavaultlabs/instagram-competitor-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datavaultlabs/instagram-competitor-intelligence"
        }
    }
}

```

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/D4Wd1Gqh0sgfuTdn9/builds/CL1qx4bwPPWUOZAeN/openapi.json
