# Instagram Reels Search & Trend Discovery (`crawl_craft/instagram-reels-search-trend-discovery`) Actor

Finding trending Reels by scrolling Instagram wastes hours. Search any keyword and get public reels with plays, likes, comments, hashtags, audio, location and creator stats, plus trend metrics like plays per day and virality. No login needed.

- **URL**: https://apify.com/crawl_craft/instagram-reels-search-trend-discovery.md
- **Developed by:** [Crawl Craft](https://apify.com/crawl_craft) (community)
- **Stats:** 8 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.40 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

### 🚀 What is Instagram Reels Search & Trend Discovery?

Instagram Reels Search & Trend Discovery is an Apify Actor and Instagram reels search scraper that turns keywords or search links into public reels with plays, likes, comments, captions, hashtags, audio and creator stats. Rank the results by trend speed, then export JSON, CSV or Excel. No Instagram login is needed.

Stop scrolling to guess what is taking off. Add a topic, and you can find trending Instagram reels with plays per day, likes per play and engagement rate next to every result.

- 🔍 **Search by keyword or link:** paste keywords or Instagram search and hashtag links, and run a bulk Instagram reels search in one go.
- 📈 **Trend metrics on every reel:** `plays_per_day`, `like_to_play_ratio`, `comment_to_play_ratio`, `engagement_rate_pct` and `virality_ratio`.
- 🎵 **Separate tables:** reels, creators, sounds, hashtags and keywords, each ready to filter or export.
- ⏰ **Sort and date control:** choose `sortBy` and `postedWithin` to keep only the newest or the strongest reels.
- 🔓 **No account needed:** get public Instagram reels without login.

### 📊 What data can you extract from Instagram?

Every saved reel is one row in the default dataset, and Apify datasets export to JSON, CSV or Excel. This Instagram reels data scraper returns the fields below. Fields Instagram does not show to anonymous visitors stay empty.

| Field | Description | Example |
|---|---|---|
| `id` | Numeric Instagram id of the reel. | 3894468243093590623 |
| `code` | Short code in the reel link. | DYL7ju6ohJf |
| `url` | Public link of the reel. | https://www.instagram.com/reel/DYL7ju6ohJf/ |
| `caption` | Caption text of the reel. | - |
| `posted_at` | Publish time (UTC, ISO 8601). Empty when reel details are off. | 2026-05-11T05:21:16Z |
| `age_days` | Days since the reel was posted. | 161.5 |
| `ig_play_count` | Play count shown by Instagram. | 142770505 |
| `like_count` | Like count. Empty when the creator hides likes. | 10444251 |
| `comment_count` | Comment count. | 22800 |
| `duration_seconds` | Video length in seconds. | 30.302 |
| `video_url` | Direct video file link (expires after a few days). | - |
| `thumbnail_url` | Cover image link (expires after a few days). | - |
| `width` | Video width in pixels. | 1080 |
| `height` | Video height in pixels. | 1920 |
| `user` | Creator username, id, name, badges, picture and (when enabled) followers, bio, links and emails. | - |
| `clips_metadata` | Audio title, artist and whether it is the original sound. | - |
| `location` | Tagged place with id, name and coordinates. | - |
| `hashtags` | Hashtags found in the caption. | \["travel"] |
| `mentions` | Accounts mentioned in the caption. | - |
| `language` | Caption language guess (empty when unsure). | en |
| `is_sponsored` | True when the reel looks like a paid partnership or ad. | false |
| `is_ai_generated` | True when Instagram labels the reel as AI. | false |
| `coauthors` | Co-author usernames. | - |
| `tagged_users` | Usernames tagged in the reel. | - |
| `related_topics` | Topic pills Instagram shows for the reel. | - |
| `engagement_count` | Likes plus comments. | 10467051 |
| `like_to_play_ratio` | Likes divided by plays. | 0.0732 |
| `comment_to_play_ratio` | Comments divided by plays. | 0.00016 |
| `plays_per_day` | Plays divided by age in days: a trend speed signal. | 884027.9 |
| `engagement_rate_pct` | Engagement divided by creator followers x 100. | - |
| `virality_ratio` | Plays divided by creator followers. | - |
| `search_keyword` | Keyword that returned this reel. | travel |
| `rank` | Position of the reel in that keyword's results. | 1 |
| `found_via` | direct, or related:keyword when found through a related keyword. | direct |
| `keyword_insights` | Total posts and related keywords of the search keyword. | - |

The ratio fields work as an Instagram reels metrics scraper output, so you can compare reels of very different size. Use the likes and comments ratios for Instagram reels engagement analysis. Use `plays_per_day` and `age_days` for Instagram reels trend analysis. Creator numbers sit in `user` when `includeCreatorStats` is on.

#### Creators, sounds, hashtags and keywords tables

Next to the reels, this Instagram reels search extractor fills four extra tables from the same run.

- **Creators:** `username`, `full_name`, `is_verified`, `is_private`, `follower_count`, `following_count`, `posts_count`, `biography`, `external_url`, `bio_links`, `emails`, `profile_pic_url`, `first_reel_url`, `first_reel_plays`, `engagement_rate_pct`, `virality_ratio` and `search_keyword`. Think of it as an Instagram reels stats scraper view per creator.
- **Sounds:** `audio_title`, `audio_artist`, `is_original_audio`, `ig_play_count` and `like_count`, one row per reel that carries an audio attribution.
- **Hashtags:** one row per hashtag per reel with `hashtag`, `ig_play_count`, `like_count` and `posted_at`, ready for counting. It works like an Instagram reels hashtag scraper for trend counts.
- **Keywords:** one row per searched keyword with `found_via`, `status`, `reels_found`, `reels_saved`, `total_posts_text`, `total_posts`, `related_keywords` and `searched_at`.

A run summary with counts and trending hashtags, sounds and creators is also saved with the run.

### 💡 Use cases for Instagram reels data

- **Instagram trend discovery:** search a topic and sort by `trending` to see which reels gain plays fastest, using `plays_per_day` and `age_days`.
- **Find trending sounds on Instagram reels:** the Sounds table lists `audio_title`, `audio_artist` and `is_original_audio` next to the plays of each reel.
- **Trending hashtags on Instagram reels:** count `hashtag` rows weighted by `ig_play_count` to see which tags travel with the biggest reels.
- **Instagram content research:** study `caption`, `hashtags`, `duration_seconds` and `language` of top reels before you plan your own.
- **Competitor reel research:** search a brand or product name and compare `ig_play_count`, `engagement_count` and `user` across the results.
- **Instagram influencer discovery:** shortlist creators with a high `virality_ratio` or `engagement_rate_pct`, then check `follower_count`, `biography` and `emails` in the Creators table.
- **Instagram keyword research:** the Keywords table shows `total_posts` and `related_keywords`, so you can see how big a topic is and what sits next to it.
- **Instagram market research:** run the same keywords on a schedule and compare `keyword_insights` and top reels between runs.

### 🛠️ How to search Instagram reels by keyword

1. Create a free Apify account and open Instagram Reels Search & Trend Discovery.
2. Add one or more keywords or Instagram search links to `urls`.
3. Set `maxItems` to the number of reels you want for each keyword or link.
4. Pick `sortBy` and, if you only want recent reels, `postedWithin`.
5. Click **Start** and watch the Output tab fill while the run is going.
6. Open the tables for reels, creators, sounds, hashtags and keywords.
7. Download the dataset as JSON, CSV or Excel.

#### Trending Instagram reels by keyword

Set `sortBy` to `trending` and add a keyword. The Actor reads the whole keyword first, then saves the reels with the highest plays per day, so the first rows arrive later than with Instagram's own order. That makes it a practical Instagram reels trend scraper for any topic.

#### Find trending audio for Instagram reels

Run your topic, then open the Sounds table. Each row links an `audio_title` and `audio_artist` to a reel, so repeated sounds show up as the ones people are using.

#### Instagram viral reels finder with date filters

Combine `sortBy` set to `engagement` or `trending` with `postedWithin` such as `30d`. That turns the Actor into an Instagram viral reels finder for the last month. Date filters need reel details, so `fetchDetails` is switched on for you when a date is set.

#### Instagram reels by hashtag

Paste an Instagram hashtag link, for example `https://www.instagram.com/popular/gym/`, and the keyword is read from the link. This is also how Instagram reels search by link works in this Actor.

#### Instagram hashtag research

Open the Hashtags table after a run. Group the rows by `hashtag` to see which tags appear most for your keyword, and by how many plays.

### 💰 How much does it cost to scrape Instagram reels by keyword?

Pricing is pay per event. Each saved reel is one `main_result` event, shown as Results, and the price per 1,000 results depends on your Apify pricing tier.

| Pricing tier | Price per 1,000 results |
|---|---|
| Free | $2 |
| Bronze | $1.8 |
| Silver | $1.5 |
| Gold / Platinum / Diamond | $1.4 |

Each run also has a small Actor Start event of $0.00005 per run start. You can set a spend limit on a run in Apify; the Actor then stops cleanly and keeps every reel saved so far. See the Pricing tab for the current rates.

### ⬇️ Input for Instagram reels keyword search

Only `urls` is required. It takes keywords or Instagram search and hashtag links, one per line or as a list. Use the Console form or the JSON below; the Input tab lists every option.

![Instagram Reels Search & Trend Discovery input form with keywords and sort order](IMAGE_URL_PLACEHOLDER "instagram-reels-search-input-form.png")

Example input:

```json
{
  "urls": ["travel", "https://www.instagram.com/popular/gym/"],
  "maxItems": 10,
  "sortBy": "feed",
  "includeCreatorStats": true,
  "fetchDetails": true,
  "keywordInsights": true,
  "expandRelated": true,
  "maxRelatedTerms": 5
}
```

For recent, fast-rising reels only, use this variation:

```json
{
  "urls": ["travel"],
  "maxItems": 50,
  "sortBy": "trending",
  "postedWithin": "30d"
}
```

| Field | Type | What it does |
|---|---|---|
| `urls` | array | Keywords or Instagram search and hashtag links. Required. |
| `maxItems` | integer | Reels to save for each keyword or link (1 to 50000). Three keywords with 50 give up to 150 reels. |
| `maxPages` | integer | Optional. Replaces `maxItems` with about 12 reels per page for each keyword. |
| `sortBy` | string | `feed`, `trending`, `plays`, `likes`, `engagement` or `recent`. The default is `feed`. |
| `postedWithin` | string | Only reels newer than this: 7d, 30d, 3m, 24h or a date like 2026-01-31. |
| `includeCreatorStats` | boolean | Adds followers, following, posts, bio, links, emails, engagement rate and virality ratio. Default on. |
| `fetchDetails` | boolean | Reads likes, comments, post date, location, audio and duration. Needed for the date filter and most sort orders. Default on. |
| `keywordInsights` | boolean | Adds each keyword's total posts and related keywords. Default on. |
| `expandRelated` | boolean | Searches related keywords when a keyword does not reach `maxItems`. Default on. |
| `maxRelatedTerms` | integer | Upper limit of related keywords explored for each keyword (0 to 500). |
| `concurrency` | integer | How many reel details and creator profiles are read at the same time (1 to 20, default 10). |
| `requestDelay` | number | Pause in seconds between result pages of one keyword (0 to 10, default 0). |
| `maxScanned` | integer | Stops a search whose filters never match after this many reels were examined (default 5000). |
| `proxyConfiguration` | object | Optional. Connection settings are handled automatically. |

Tips: keep `maxItems` low for a first test run. Instagram's own order (`feed`) saves reels as they are read; any other `sortBy` reads the whole keyword first.

### ⬆️ Output

The scraped results are shown as a dataset in the **Storage** tab. The table view is for convenience and doesn't show **all the fields**. This Instagram reels extractor saves each reel the moment it is ready, so Instagram reels search data appears while the run is still going.

![Instagram Reels Search & Trend Discovery output table with plays, likes and trend metrics](IMAGE_URL_PLACEHOLDER "instagram-reels-search-output-table.png")

Export the dataset as JSON, CSV, Excel, XML or HTML. To export Instagram reels to Excel, pick Excel in the export menu. The same menu turns Instagram reels to CSV in one click.

Example output (shortened, built from the schema example values):

```json
{
  "id": "3894468243093590623",
  "code": "DYL7ju6ohJf",
  "url": "https://www.instagram.com/reel/DYL7ju6ohJf/",
  "posted_at": "2026-05-11T05:21:16Z",
  "age_days": 161.5,
  "ig_play_count": 142770505,
  "like_count": 10444251,
  "comment_count": 22800,
  "duration_seconds": 30.302,
  "width": 1080,
  "height": 1920,
  "hashtags": ["travel"],
  "language": "en",
  "is_sponsored": false,
  "is_ai_generated": false,
  "engagement_count": 10467051,
  "like_to_play_ratio": 0.0732,
  "comment_to_play_ratio": 0.00016,
  "plays_per_day": 884027.9,
  "search_keyword": "travel",
  "rank": 1,
  "found_via": "direct"
}
```

### ⚠️ Limitations and error handling

- The Actor reads only what Instagram shows to visitors who are not logged in. Share counts and saves are not part of the output.
- Some keywords have no public reels. The Keywords table reports how each search ended, and the log tells you when a keyword returned nothing.
- `like_count` is empty when the creator hides likes, and `posted_at` is empty when `fetchDetails` is off.
- `video_url` and `thumbnail_url` expire after a few days, so download media soon after the run.
- A search with filters that never match stops after `maxScanned` reels, so a strict filter can return fewer reels than `maxItems`.
- The Actor has no built-in change tracking; each run returns the reels that match at that time.
- If no keyword is given, or a value such as `maxItems` is invalid, the run stops with a short message that says what to fix.
- If Instagram cannot be reached, everything saved so far stays in the dataset. Run it again later.

As an Instagram reels search results scraper, it cannot promise a fixed number of reels for every keyword. Run a small test to see how many a topic holds.

### 🔌 Integrating Instagram Reels Search & Trend Discovery with other apps

Start the Actor from the Apify API, a schedule, a webhook or an integration, and use the results as an Instagram reels data API in your own tools. The API tab on the Actor page has ready-made JavaScript, Python and CLI snippets.

- **Schedules:** [run it on a schedule](https://docs.apify.com/platform/schedules) with the same keywords and `postedWithin` set to `7d` to collect the newest reels each week.
- **Webhooks:** [trigger a webhook](https://docs.apify.com/platform/integrations/webhooks) when a run finishes to send the dataset to your own service.
- **Integrations:** connect the dataset to Make, Zapier, Google Sheets and other apps through [Apify integrations](https://docs.apify.com/platform/integrations).
- **AI agents:** the [Apify MCP server](https://mcp.apify.com) lets an agent find and call this Actor.

Scheduled runs turn it into an Instagram reels analytics scraper for ongoing tracking: compare `plays_per_day` and the Keywords table between runs to see what is rising.

### 🔗 More Apify Actors by crawl_craft

| Actor | What it extracts | When to use it |
|---|---|---|
| [Instagram Reels Scraper](https://apify.com/crawl_craft/instagram-reels-scraper) | Reels from usernames, reel links or audio pages: plays, likes, comments, captions, hashtags, music and engagement rates | Use it when you already know the accounts, reel links or audio pages you want |
| [Instagram Post & Reel Details Scraper](https://apify.com/crawl_craft/instagram-post-reel-details-scraper) | Details for post, reel or carousel links: likes, comments, views, caption, tagged users, media files, top comments and the owner's profile | Use it to go deeper on single posts after you found them here |
| [TikTok User Search Scraper](https://apify.com/crawl_craft/tiktok-user-search-scraper) | TikTok creator profiles from a keyword search | Use it when your creator research also covers TikTok |
| [TikTok Video Scraper](https://apify.com/crawl_craft/tiktok-video-scraper) | Captions, hashtags, views, likes, comments, shares, author and music data from TikTok video links, plus video downloads and transcripts | Use it when your short-video research also covers TikTok posts you already have links to |
| [Telegram Scraper](https://apify.com/crawl_craft/telegram-scraper) | Messages, views, reactions, media, links, comments and subscriber counts from public Telegram channels | Use it when your keyword and topic monitoring also covers public Telegram channels |

### ⚖️ Is it legal to scrape Instagram reels?

Instagram Reels Search & Trend Discovery only extracts data that users have made public on Instagram and does not extract private data. Results can still contain personal data such as usernames, bios and emails found in a bio, so collect it only with a legitimate reason and consider GDPR (Regulation (EU) 2016/679) and Instagram's terms. This Instagram reels crawler gives no legal advice; consult a lawyer if you are unsure. Read Apify's posts on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) and [ethical web scraping](https://blog.apify.com/what-is-ethical-web-scraping-and-how-do-you-do-it/).

### ❓ FAQ

#### Do I need an Instagram account or API key?

No. Instagram Reels Search & Trend Discovery reads public data, so you need no Instagram login and no API key, only an Apify account.

#### Is this an Instagram reels scraper by keyword or by username?

By keyword or search link. As an Instagram reels search tool it works from topics, not accounts. Paste topics or Instagram search and hashtag links into `urls`. For usernames, reel links or audio pages, use the Instagram Reels Scraper listed above.

#### How many reels can I get?

Set `maxItems` per keyword or link, up to 50000, or use `maxPages` for about 12 reels per page. How many reels Instagram shows for a topic varies, so test with a small number first.

#### Why does a keyword return no reels?

Instagram's public results cover only some keywords. Try a broader or related keyword, and check the Keywords table to see how each search ended. This Instagram reels finder never invents reels to fill a quota.

#### Can I use it as an Instagram reel search scraper for hashtags?

Yes. Paste a hashtag or search link and the Actor reads the keyword from it, then returns the reels with their hashtags in `hashtags` and in the Hashtags table.

#### Why are some counts empty?

The creator may hide likes, or reel details may be off. Turn on `fetchDetails` to read likes, comments, date, location, audio and duration.

#### How is `plays_per_day` calculated?

It is plays divided by the reel's age in days, which makes it a speed signal for trends.

#### Do I need proxies?

No. The Proxy field is optional, and connection settings are handled for you. Use it only if you want your own proxy.

#### Is this an Instagram reels search crawler?

In practice, yes: it searches and reads public reels by keyword and returns them as structured rows. Think of it as an Instagram reels discovery tool for research, not for posting or following.

#### Can I get the data through the API?

Yes, you can use it as an Instagram reels search API. Start a run with the Apify API and read the dataset items; see the API tab for code in your language.

### 💬 Your feedback

Found a bug or want a new field? Open the Issues tab on the Actor page and include the keyword that failed. For custom solutions, write to hello.crawlcraft@gmail.com.

# Actor input Schema

## `urls` (type: `array`):

One or many keywords or Instagram search / hashtag links (for example travel, or https://www.instagram.com/popular/travel/). Bulk input is supported.

## `maxItems` (type: `integer`):

Reels to save for EACH keyword or link (3 keywords with 50 give up to 150 reels).

## `maxPages` (type: `integer`):

Optional. If set, it replaces Max reels with about 12 reels per page for each keyword. Leave empty to use Max reels.

## `sortBy` (type: `string`):

Instagram's own order saves reels as they are read. Any other order reads the whole keyword first, then saves the best reels.

## `postedWithin` (type: `string`):

Only reels newer than this: 7d, 30d, 3m, 24h or a date like 2026-01-31. Leave empty for any time.

## `includeCreatorStats` (type: `boolean`):

Add followers, following, posts, bio, links, emails, engagement rate and virality ratio for each creator.

## `fetchDetails` (type: `boolean`):

Read each reel's likes, comments, post date, location, audio and duration. Needed for the date filter and for most sort orders.

## `keywordInsights` (type: `boolean`):

Add each keyword's total posts and related keywords.

## `expandRelated` (type: `boolean`):

If a keyword does not reach Max reels, also search that keyword's related keywords to fill its quota.

## `maxRelatedTerms` (type: `integer`):

Upper limit of related keywords explored for each keyword.

## `concurrency` (type: `integer`):

How many reel details and creator profiles are read at the same time. Several keywords are also searched at once.

## `requestDelay` (type: `number`):

Pause between result pages of one keyword.

## `maxScanned` (type: `integer`):

Stops a search whose filters never match, after this many reels were examined.

## `proxyConfiguration` (type: `object`):

Optional. Connection settings are handled automatically. Choose a proxy here only if you want to use your own.

## Actor input object example

```json
{
  "urls": [
    "travel",
    "https://www.instagram.com/popular/gym/"
  ],
  "maxItems": 10,
  "sortBy": "feed",
  "includeCreatorStats": true,
  "fetchDetails": true,
  "keywordInsights": true,
  "expandRelated": true,
  "maxRelatedTerms": 5,
  "concurrency": 10,
  "requestDelay": 0,
  "maxScanned": 5000,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

One row per reel with every field.

## `trend_metrics` (type: `string`):

Engagement and speed figures per reel.

## `creators` (type: `string`):

One row per creator.

## `sounds` (type: `string`):

One row per reel audio.

## `hashtags` (type: `string`):

One row per hashtag per reel.

## `keywords` (type: `string`):

One row per searched keyword with insights.

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

Counts and trending hashtags, sounds and creators.

# 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 = {
    "urls": [
        "travel",
        "https://www.instagram.com/popular/gym/"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawl_craft/instagram-reels-search-trend-discovery").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 = {
    "urls": [
        "travel",
        "https://www.instagram.com/popular/gym/",
    ],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("crawl_craft/instagram-reels-search-trend-discovery").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 '{
  "urls": [
    "travel",
    "https://www.instagram.com/popular/gym/"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call crawl_craft/instagram-reels-search-trend-discovery --silent --output-dataset

```

## MCP server setup

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

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/aZJEhKy1MC0cYsu6z/builds/wayN4JZoIHyRRUtAh/openapi.json
