# Instagram Carousel Trends: Trending Content & Reel Trends (`afanasenko/instagram-trend-finder`) Actor

Instagram carousel and reel trends for any niche. Finds the headline formats and hooks that many creators of the niche repeated in the last 1–3 weeks, shows which are new or growing and how much better they did than usual, with example posts. Describe the niche in any language.

- **URL**: https://apify.com/afanasenko/instagram-trend-finder.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 $450.00 / 1,000 trends

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

## Instagram Carousel Trends: Trending Content & Reel Trends

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

> **The trending content formats your Instagram niche is repeating right now: carousel headlines, reel hooks and the trends behind them.**
> Type your niche in any language. The actor reads the recent posts of up to 300 creators of the niche, reads the headline of each one (the first slide of a carousel, the first seconds of a reel) and finds the formats that several creators used in the last 1–3 weeks. New and growing formats come first, with how much better their posts did than usual and the posts themselves.

> **🆓 Free to start:** 2 trends per run open in full on the free Apify plan · every other trend found is shown with its stage, number of creators and lift · 3 runs a month.

### 🎯 What it does

**You give** your niche in a few words, in any language — for example "psychologist for couples" or "personal brand coach". Optionally, Instagram accounts you already follow.

**You get** one row per trend: the headline format as a fill-in template ("Things I changed my mind about after \[N] years as a \[role]"), what it is and why it hooks, an example headline for your niche, how many different creators used it, how that number moved over the last three weeks, how much better the posts did than their authors' usual results, and up to 5 example posts.

**What you won't get** finished captions or scripts, and no single-account analytics. Private accounts and stories are never read.

How a trend is decided — **by the numbers, not by an opinion**:

- **A trend** is a headline format that at least **3 different creators** of the niche used in the period. Accounts that post the same caption word for word count as one creator, so a ring of reposters is not a trend.
- **New this week** — nobody among the fully read creators used it 2–3 weeks ago, at least 2 did last week.
- **Growing** — last week at least 2 creators and at least twice the average of the two weeks before.
- **Always works in this niche** — a format the niche keeps using week after week ("How to \[goal]", "\[N] mistakes…"). You can turn these off.
- **Lift** — each post's result divided by its own author's usual result of the same kind (reels by views, carousels by likes and comments). "×2.3" means 2.3 times the author's usual.

The same format in different languages is one trend: "Things I changed my mind about" and its Spanish or Russian version are counted together.

### 📦 Output sample

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

- **The format** — `template`, `templateEnglish`, `whatItIs`, `howToUse`, `topic`.
- **How strong it is** — `stage`, `stageLabel`, `creators`, `posts`, `creatorsByWeek`, `creatorsByWeekText`, `medianLift`, `shareAboveUsual`, `firstSeen`, `formats`, `languages`.
- **The evidence** — `examples` (link, author, followers, headline, lift, date), `exampleUrls`.
- **The run** — `trendNumber`, `locked`, `lockedNote`, `niche`, `language`, `generatedAt`.

```json
{
  "trendNumber": 2,
  "stage": "growing",
  "stageLabel": "Growing",
  "template": "Steal this [framework/strategy] to [goal]",
  "whatItIs": "A direct instruction promising a ready-made method for one goal, which hooks readers because it asks for no work to invent anything.",
  "howToUse": "Steal this content framework to position yourself as the expert in your niche",
  "creators": 3,
  "creatorsByWeek": [1, 0, 2],
  "creatorsByWeekText": "1 → 0 → 2",
  "medianLift": 0.59,
  "firstSeen": "2026-10-07",
  "formats": { "reel": 3 },
  "examples": [
    { "url": "https://www.instagram.com/reel/Deugek4v0d9/", "author": "byjessalyn_", "followers": 12989, "format": "reel",
      "headline": "DO THIS IF YOU WANT TO BUILD A STRONG PERSONAL BRAND", "lift": 1.08, "postedAt": "2026-10-20T18:49:49.000Z" }
  ],
  "niche": "personal brand coach, Instagram growth for experts",
  "language": "en"
}
```

| View | What each row is | Best for |
|---|---|---|
| **Trends** (default) | One trend, trimmed to the columns you read first: stage, template, example for your niche, creators, creators by week, lift and example links | Pasting into a content plan |

### ⚡ Quick start

1. Type your niche in **Niche**, in your own words.
2. Pick the **Period** (14 days by default) and the **Format**.
3. Click **Start**. Open the **Trends Report** while it runs; the trends appear there and in the results table.

### 🧭 When to use it

- **Planning next week's content** — see which headline formats your niche picked up in the last days, before everyone uses them.
- **Content agencies** — a short trend list for each client's niche, with the posts as proof.
- **Writing carousel covers and reel hooks** — fill-in templates that already work for creators like you.
- **Catching formats from other markets** — the same format in another language counts toward one trend.
- **Checking a format you saw** — run your niche and see whether other creators use it and whether it beats their usual results.

### 🛠 Input

The input form has two sections:

| Section | Purpose |
|---|---|
| 🎯 Your niche | The niche, the period, the format, how many trends, whether to add the formats the niche always uses, and the language of the results |
| ⚙️ More options | Accounts to watch, source languages, minimum creator size |

- **`niche`** — your topic in your own words, any language (up to 300 characters).
- **`period`** — trends are counted from posts of the last 7, 14 (default) or 21 days. Whether a trend is new or growing is always measured over the last 3 weeks.
- **`format`** — reels and carousels (default), reels only, or carousels only. A reel is read from its first seconds (the text on screen, or the first spoken line), a carousel from its first slide.
- **`trendsCount`** — how many trends to deliver, 1–30 (default 10). You pay per trend delivered.
- **`includeSteady`** — also add the formats the niche always uses, after the new and growing ones (default on).
- **`outputLanguage`** — the language of the templates and explanations. By default it is the language you wrote the niche in.
- **`creators`** — optional usernames or profile links, up to 50, read first.
- **`sourceLanguage`** — formats from posts in any language (default), or only in the language of the results.
- **`minFollowers`** — skip smaller creators found by the niche search (default 10,000). Your own list is always read.

### 💰 How much will Instagram trends cost?

This actor uses pay-per-event pricing: you pay for each trend delivered, nothing for reading the creators.

| Event | Price | When it is charged |
|---|---|---|
| **Trend** | **$0.60** Free · $0.55 Starter · $0.50 Scale · $0.45 Business and up | Once per trend delivered: a format used by at least 3 creators of the niche, with its metrics and example posts |

Locked rows on the free plan are never charged. A run that finds no repeated format charges nothing.

| You set `trendsCount` | Plan | Approx cost |
|---|---|---|
| 2 | Free | $1.20 |
| 10 | Starter | $5.50 |
| 20 | Scale | $10.00 |
| 30 | Business | $13.50 |

`trendsCount` is the ceiling: when the niche has fewer repeated formats, you get and pay for fewer.

### 🆓 Free vs paid plan

| | Free plan | Paid plan |
|---|---|---|
| Trends opened per run | 2 | Up to 30 |
| Other trends found | Shown locked: stage, creators, lift | Opened in full |
| Creators read per run | Up to 80 | Up to 300 |
| Successful runs per month | 3 | Unlimited |

### 🧪 Recipes

Copy-paste inputs for the most common jobs:

**What a niche picked up this week**

```json
{ "niche": "psychologist, therapist", "period": "7", "includeSteady": false, "trendsCount": 10 }
```

Only new and growing formats of the last 7 days.

**Carousel cover formats in your language from any market**

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

Posts are read in every language; the templates are written in Spanish.

**Watch the accounts you follow**

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

Your accounts are read first; the run still adds 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 Trends Report: live progress, then one card per trend |
| `RUN_SUMMARY` | JSON | Trends, charges, creators read, posts read, 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-trend-finder/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"niche": "psychologist, therapist", "trendsCount": 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 trends back as rows.

### 💡 Tips & Best Practices

#### Getting maximum results

- Describe the niche with the words creators use in their bios: "psychologist", "pilates instructor", "real estate agent".
- Choose both formats and a 21-day period for the fullest picture; 7 days for only the freshest.
- Add accounts you follow in `creators` to see what your own circle repeats.

#### Cost optimization

- Start with 5 trends, then ask for more.
- Turn off `includeSteady` to pay only for new and growing formats.

#### Performance

- A 10-trend run usually takes 5–8 minutes: the actor reads the headline of every recent post of up to 300 creators.
- Very narrow niches have fewer repeated formats; widen the words a little.

#### Data quality

- A trend with few creators and a high lift is an early signal; a trend with many creators and a lift near ×1 is a format the niche already knows.
- Open the example posts before you copy a format: the template is the shape, the words are yours.
- New and growing are measured only among creators whose posts were read for all three weeks.

### ❓ FAQ

**Q: How do I find trending carousel and reel formats in my Instagram niche?**
A: Type your niche in `niche` and run the actor. It reads the recent posts of the niche's creators and returns the headline formats several of them used, newest first.

**Q: What is a trending hook?**
A: A headline pattern that several creators pick up at the same time, like "Things I changed my mind about…". This actor finds them from the text on carousel first slides and the first seconds of reels.

**Q: How is this different from a list of trending reels?**
A: Trending-reel lists show single popular posts. This actor shows the format behind them: the same headline shape used by different creators, with how fast it spreads and how well it does for them.

**Q: Is there a free Instagram trend finder?**
A: Yes. On the free Apify plan 2 trends per run open in full, the rest are shown locked, 3 runs a month. See [Free vs paid plan](#-free-vs-paid-plan).

**Q: Does it read posts in other languages?**
A: Yes. The same format in different languages counts as one trend, and the results are written in your language.

**Q: Where do I get finished content ideas instead of formats?**
A: [Instagram Content Ideas](https://apify.com/afanasenko/instagram-content-ideas) writes ready ideas with a hook and outline from the posts that worked best in your niche.

### 📝 Changelog

See [CHANGELOG.md](./CHANGELOG.md).

# Changelog

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

# Actor input Schema

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

Your topic in a few words, any language. Example: psychologist for couples.

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

Trends are counted from posts of this period. Whether a trend is new or growing is always measured over the last 3 weeks.

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

Which kind of post to read. A reel is read from its first seconds (on-screen text or the first spoken line), a carousel from its first slide.

## `trendsCount` (type: `integer`):

How many trends to deliver (1–30). You pay per trend delivered. The free plan opens 2 per run and shows the rest locked.

## `includeSteady` (type: `boolean`):

After the new and growing trends, add formats many creators keep using (for example "How to \[X]"). Turn off to get only new and growing ones.

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

Templates and explanations are written in this language, whatever the language of the posts.

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

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

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

By default formats are matched across languages. 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": "psychologist, therapist",
  "period": "14",
  "format": "both",
  "trendsCount": 10,
  "includeSteady": true,
  "outputLanguage": "auto",
  "sourceLanguage": "any",
  "minFollowers": 10000
}
```

# Actor output Schema

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

No description

## `results` (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": "psychologist, therapist",
    "trendsCount": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("afanasenko/instagram-trend-finder").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": "psychologist, therapist",
    "trendsCount": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("afanasenko/instagram-trend-finder").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": "psychologist, therapist",
  "trendsCount": 10
}' |
apify call afanasenko/instagram-trend-finder --silent --output-dataset

```

## MCP server setup

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

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/mJ7Lq9KLzcNfvypF2/builds/kmIKp02VUVIPAWSmK/openapi.json
