# Viral Instagram Posts & Content Ideas: Reel & Carousel Ideas (`afanasenko/instagram-content-ideas`) Actor

Instagram content ideas for any niche. Finds reels and carousels that beat their author’s usual results, reads them and writes ready ideas with a hook, angle and outline. Every idea links to its source posts. Describe the niche in any language and get ideas in yours.

- **URL**: https://apify.com/afanasenko/instagram-content-ideas.md
- **Developed by:** [Andrey Afanasenko](https://apify.com/afanasenko) (community)
- **Categories:** Social media, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $300.00 / 1,000 content ideas

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Viral Instagram Posts & Content Ideas: Reel & Carousel Ideas

[![Apify Actor](https://apify.com/actor-badge?actor=afanasenko/instagram-content-ideas)](https://apify.com/afanasenko/instagram-content-ideas)

> **Instagram content ideas for your niche, built from reels and carousels that already worked.**
> Type your niche in any language. The actor finds posts that got far more than their author's usual results, reads them, and writes ready ideas in your language. Every idea links to its source posts.

> **🆓 Free to start:** up to 5 ideas per run on the free Apify plan · every idea with its hook, outline and source posts · a list of the niche's standout posts in every run.

### 🎯 What it does

**You give** your niche in a few words, in any language — for example "nutrition coach for busy moms". Optionally, Instagram accounts you already follow.

**You get** one row per idea: a title, the format (reel or carousel), a ready hook, the angle, a shot-by-shot or slide-by-slide outline, why the source posts worked, and what to check before posting. Each idea links to 1–3 real posts, with how many times they beat their author's usual result.

**What you won't get** finished scripts or captions to copy. The ideas tell you what to make and why it works; the words are yours. Private accounts and stories are never read.

How a post is chosen: it must beat its **own author's** median post of the same kind (reels by views, carousels by likes and comments). Big accounts do not win just for being big. A second check keeps only posts that are on topic and that a creator of your niche can reuse.

### 📦 Output sample

Every idea is one row. Here is what a row holds:

- **The idea** — `title`, `format`, `hook`, `angle`, `outline`, `outlineText`.
- **Why it should work** — `whyItWorked`, `bestRatio`, `caution`.
- **The evidence** — `sources` (link, author, followers, ratio, views or likes and comments, date), `sourceUrls`.
- **The run** — `ideaNumber`, `niche`, `language`, `generatedAt`.

A real row from a recent run (niche "nutrition coach, healthy eating", 5 ideas):

```json
{
  "ideaNumber": 2,
  "title": "Myth explained: does fruit make you fat?",
  "format": "reel",
  "hook": "Fruit is NOT making you fat. Here's what actually happens to your blood sugar.",
  "angle": "Debunk the fear of fruit and insulin step by step, in plain language. Frame it as normal physiology plus long-term energy balance.",
  "whyItWorked": "The source reel reached ×25.2 its author's median, with 356,331 views and 1,227 likes. It took a widespread myth and corrected it in a short, confident format.",
  "outline": [
    "Hook: read the myth on screen ('fruit makes you fat')",
    "Any carbohydrate raises blood sugar and insulin, which is normal",
    "Storing fat after a meal is not the same as gaining fat over time",
    "Energy balance over time decides weight change",
    "Many fruits are low in calorie density and high in fiber, e.g. strawberries and watermelon",
    "Closing line: stop demonizing fruit"
  ],
  "outlineText": "1. Hook: read the myth on screen ('fruit makes you fat')\n2. Any carbohydrate raises blood sugar and insulin, which is normal\n3. Storing fat after a meal is not the same as gaining fat over time\n4. Energy balance over time decides weight change\n5. Many fruits are low in calorie density and high in fiber, e.g. strawberries and watermelon\n6. Closing line: stop demonizing fruit",
  "caution": "Keep the wording accurate. Advice for people with diabetes or other conditions should be individualized.",
  "sources": [
    {
      "url": "https://www.instagram.com/reel/DdHAGnKuqB8/",
      "author": "powerlifterdietitian",
      "followers": 51165,
      "format": "reel",
      "ratio": 25.2,
      "views": 356331,
      "likes": 1227,
      "comments": 41,
      "postedAt": "2026-09-10T14:00:07.000Z",
      "authorMedian": 14152
    }
  ],
  "sourceUrls": "https://www.instagram.com/reel/DdHAGnKuqB8/",
  "bestRatio": 25.2,
  "niche": "nutrition coach, healthy eating",
  "language": "en",
  "generatedAt": "2026-10-22T17:56:07.952Z"
}
```

`caution` is `null` when the idea makes no claim to check. In `sources`, a reel has `views` and a carousel has `views: null`.

**Views** — one view, in the **Storage → Dataset** tab:

| View | What each row is | Best for |
|---|---|---|
| **Content ideas** (default) | One idea, trimmed to the columns you read first: format, title, hook, angle, outline, why it worked, caution, best ratio and source links | Pasting into a content plan |

The full field list is in [`.actor/dataset_schema.json`](.actor/dataset_schema.json), which is also what AI agents see through Apify's MCP server.

### ⚡ Quick start

A minimal input that works on the **free plan**:

```json
{ "niche": "nutrition coach, healthy eating", "ideasCount": 5 }
```

Run it, then open the **Ideas Report** from the run's Output tab. You'll see 5 idea cards and the niche's standout posts. Write your own niche the way you would describe it to a friend.

### 🧭 When to use it

- **Planning a week of content** — a creator or coach gets 10–20 tested ideas in one run instead of scrolling big accounts for an hour.
- **Content agencies** — a fresh idea list for each client's niche, with the proof every client asks for.
- **Finding formats from other markets** — a format that went viral in Spanish or Portuguese, written for your English (or any other) audience.
- **Before a carousel or reel brief** — see what the niche's biggest accounts posted that beat their own average.
- **Checking an idea** — run a narrow niche and see whether posts on that topic outperform at all.

### 🛠 Input

The form has two sections.

| Section | Purpose |
|---|---|
| 🎯 Your niche | What you post about, the format, how many ideas and in which language |
| ⚙️ More options | Accounts to learn from, source languages, minimum creator size |

- **`niche`** — your topic and audience in your own words, any language (up to 300 characters).
- **`format`** — reels and carousels (default), reels only, or carousels only.
- **`ideasCount`** — how many ideas to write, 1–30 (default 10). You pay per idea delivered.
- **`outputLanguage`** — the language of the ideas. By default it is the language you wrote the niche in.
- **`period`** — only posts from the last 30 or 90 days (default) become ideas.
- **`creators`** — optional usernames or profile links, up to 50, read first.
- **`sourceLanguage`** — ideas from posts in any language (default), or only in the language of the ideas.
- **`minFollowers`** — skip smaller creators found by the niche search (default 20,000). Your own list is always read.

### 💰 How much will Instagram content ideas cost?

You pay per idea, not per post read. The actor uses Apify's **Pay Per Event** model with one event:

| Event | Price | When it is charged |
|---|---|---|
| **Content idea** | **$0.40** Free and Starter · $0.35 Scale · $0.30 Business and up | Once per idea written and saved, linked to at least one source post |

Reading creators and posts is included. An idea the run cannot support with a source post is not written or charged.

| You set `ideasCount` | Plan | Approx cost |
|---|---|---|
| 5 | Free | $2.00 |
| 10 | Starter | $4.00 |
| 20 | Scale | $7.00 |
| 30 | Business | $9.00 |

When a niche supports fewer distinct ideas than you asked for, you pay only for those delivered.

### 🆓 Free vs paid plan

| | Free plan | Paid plan |
|---|---|---|
| Ideas per run | Up to 5 | Up to 30 |
| Creators read per run | Up to 20 | Up to 60 |
| Standout posts list | ✓ | ✓ |
| Successful runs per month | 5 | Unlimited |

Upgrade to a paid plan to get up to 30 ideas per run from more creators.

### 🧪 Recipes

Copy-paste inputs for the most common jobs:

**A week of reels for a coach**

```json
{ "niche": "online fitness coach for women over 40", "format": "reels", "ideasCount": 7 }
```

Reels only, so every idea has a shot-by-shot outline.

**Carousels in your language from any market**

```json
{ "niche": "personal finance for young adults", "format": "carousels", "ideasCount": 10, "outputLanguage": "es" }
```

Sources come from every language; the ideas are written in Spanish.

**Learn from the accounts you already follow**

```json
{ "niche": "skincare for sensitive skin", "creators": ["account_one", "account_two"], "ideasCount": 10, "period": "30" }
```

Your accounts are read first; the run still adds top creators of the niche.

### 📡 Live status & storage records

While the run works, the actor keeps these records:

| Storage key | Type | What it holds |
|---|---|---|
| `status.html` | HTML page | The Ideas Report: live progress, then the idea cards and the standout posts |
| `VIRAL_POSTS` | JSON | Every on-topic post that beat its author's usual result, best first |
| `RUN_SUMMARY` | JSON | Ideas, charges, creators read and where they were found, creators whose posts were off your niche, stop reason, timings |
| `USER_MESSAGE` | JSON | What the run delivered and the next step, or why it delivered nothing |
| `FREE_LIMITS_APPLIED` | JSON | Free-plan limits applied to this run |

### 🤖 Programmatic / API use

**REST API:**

```bash
curl -X POST "https://api.apify.com/v2/acts/afanasenko~instagram-content-ideas/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"niche": "nutrition coach, healthy eating", "ideasCount": 10}'
```

**MCP and AI agents:** the actor is available as a tool through Apify's [MCP server](https://docs.apify.com/platform/integrations/mcp) at `mcp.apify.com`. An agent can pass a niche and read the ideas back as rows.

### 💡 Tips & Best Practices

#### Getting maximum results

- Describe the niche with the words creators use in their bios: "nutritionist", "pilates instructor", "real estate agent".
- Choose both formats; carousels and reels often carry different ideas on the same topic.
- Add 3–10 accounts you admire in `creators` for ideas closer to your style.

#### Cost optimization

- Start with 5 ideas to see the style, then ask for more.
- `ideasCount` is your hard ceiling: you never pay for more ideas than you asked for.
- A 90-day period finds more standout posts than 30 days for the same price.

#### Performance

- A 10-idea run usually takes 3–5 minutes.
- Most of the time goes into reading the full text of the best reels.
- Very narrow niches can return fewer ideas; widen the words a little.

#### Data quality

- Open two or three source links per idea before you film; the ratio shows why it was picked.
- Read `caution` before posting health, money or legal claims.
- A ratio of ×2–×3 is a solid hit for a big account; ×20 and above is rare.
- Ideas are spread across creators: at most two ideas in one run rest on the same author, so one viral account does not fill your plan.

### ❓ FAQ

**Q: How do I find viral content ideas for my Instagram niche?**
A: Type your niche in `niche` and run the actor. It finds posts in that niche that beat their author's usual results and turns them into ideas with a hook and an outline.

**Q: Is there a free Instagram content ideas generator?**
A: Yes. On the free Apify plan the actor writes up to 5 ideas per run, 5 successful runs a month. See [Free vs paid plan](#-free-vs-paid-plan).

**Q: How is this different from searching a hashtag?**
A: Instagram search does not rank posts by how well they did for their author. This actor compares every post with the same author's other posts and keeps only the clear winners.

**Q: What are the best alternatives to viral post finders?**
A: Most tools list trending reels or one account's top posts. This actor reads posts from many creators of your niche in every language and writes ideas you can use, with the sources attached.

**Q: Can I get ideas in my language from posts in other languages?**
A: Yes. That is the default. Ideas are written in your language, whatever the language of the source posts.

**Q: What does "×12" mean?**
A: The post got 12 times the views (reels) or likes and comments (carousels) of that author's median post of the same kind.

**Q: Why did I get fewer ideas than I asked for?**
A: The run writes only ideas it can support with distinct standout posts. You pay only for the ideas delivered. A wider niche or a 90-day period helps.

**Q: Does it read private accounts or stories?**
A: No. Only public posts are read.

**Q: Are the ideas original?**
A: They are formats and angles taken from posts that worked, rewritten for your audience. Make the content your own; never copy another creator's post.

**Q: Why is `caution` sometimes empty?**
A: It is `null` when the idea makes no medical, legal or financial claim and does not depend on something local.

**Q: How fast is it?**
A: A 5-idea run takes about 2–3 minutes; a 30-idea run about 6–8 minutes.

**Q: What if the run finds nothing?**
A: Nothing is charged, and the User Message says why — usually the niche words are too rare. Rephrase the niche or add accounts in `creators`.

### 🔗 Other Instagram actors (same author)

| You start with… | You want… | Use this actor |
|---|---|---|
| A niche | Content ideas from posts that worked | **This actor** |
| A reel link or a creator | The reel's script, hook and transcript | [Instagram Reel Script Extractor](https://apify.com/afanasenko/instagram-reel-script-extractor) |
| A carousel link | Slide text, hook and structure formula | [Instagram Carousel Analysis](https://apify.com/afanasenko/instagram-carousel-analyzer) |
| A niche description | Creators and influencers to work with | [Instagram Influencer Search](https://apify.com/afanasenko/instagram-influencer-search) |

Start here for ideas; open a source post in the script or carousel actor to study it slide by slide.

### 🛟 Support & feedback

1. **Open an issue** on the actor's Issues tab — the fastest way to get a fix.
2. **Request a feature** in the same tab; every request is read.
3. **Rate the actor** on its Apify Store page to help others find it.

### ⚖️ Is it legal to scrape Instagram for content ideas?

The actor reads only **publicly available** posts and does not log in, read private content or act on your behalf. Use the results in line with Instagram's Terms of Use and the laws of your country. For more, see Apify's guide on [whether web scraping is legal](https://blog.apify.com/is-web-scraping-legal/).

# Changelog

This Actor's version history is a separate document: https://apify.com/afanasenko/instagram-content-ideas/changelog.md

# Actor input Schema

## `niche` (type: `string`):

Your topic and audience in a few words, any language. Example: nutrition coach for busy moms.

## `format` (type: `string`):

Which kind of post the ideas are for.

## `ideasCount` (type: `integer`):

How many ideas to write (1–30). You pay per idea delivered. The free plan writes up to 5 per run.

## `outputLanguage` (type: `string`):

The ideas are written in this language, whatever the language of the source posts.

## `period` (type: `string`):

Only posts published in this period become ideas.

## `creators` (type: `array`):

Optional Instagram usernames or profile links, up to 50. They are read first; the run still adds top creators of the niche.

## `sourceLanguage` (type: `string`):

By default ideas are carried over from any language. Choose the second option to keep only posts in your language.

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

Creators from the niche search below this size are skipped. Your own list is always read.

## Actor input object example

```json
{
  "niche": "nutrition coach, healthy eating",
  "format": "both",
  "ideasCount": 10,
  "outputLanguage": "auto",
  "period": "90",
  "sourceLanguage": "any",
  "minFollowers": 20000
}
```

# Actor output Schema

## `report` (type: `string`):

No description

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

No description

## `viral` (type: `string`):

No description

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

No description

## `message` (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 = {
    "niche": "nutrition coach, healthy eating",
    "ideasCount": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("afanasenko/instagram-content-ideas").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 = {
    "niche": "nutrition coach, healthy eating",
    "ideasCount": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("afanasenko/instagram-content-ideas").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 '{
  "niche": "nutrition coach, healthy eating",
  "ideasCount": 10
}' |
apify call afanasenko/instagram-content-ideas --silent --output-dataset

```

## MCP server setup

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

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/PnXxoNbaToK4Hr8wh/builds/gswPOQBQybe6TKkTf/openapi.json
