# Hashtag Generator & Finder: Instagram & TikTok Hashtags (`cygnix_labs/hashtag-research-strategy`) Actor

Hashtag generator, finder and analytics for Instagram hashtags and TikTok hashtags from real posts: tags creators pair with your seed, real post/view counts, broad/mid/niche tiers, paste-ready 5 and 15 tag sets, avoid list. Any language. First seed free, then $0.03/seed.

- **URL**: https://apify.com/cygnix_labs/hashtag-research-strategy.md
- **Developed by:** [Umair Saleem Mohammad Saleem](https://apify.com/cygnix_labs) (community)
- **Categories:** Social media, Agents, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$30.00 / 1,000 seed hashtag reports

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/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

## Hashtag Generator & Finder: Instagram & TikTok Hashtags

**Answer first:** this actor is a **hashtag generator, hashtag finder and hashtag research tool for Instagram and TikTok** built on real data. It finds the **best Instagram hashtags and TikTok hashtags** for a topic and adds **hashtag analytics** (post counts, view counts, tiers, TikTok performance vs your seed). You give it a seed hashtag or niche word in any language, such as `latteart` or `コーヒー`. It returns the **best related hashtags: the ones real creators actually pair with it**, each with its **real post count (Instagram) or view count (TikTok)** and a **broad / mid / niche tier**, plus **ready-to-paste sets**: a 5-tag core set and a 15-tag (Instagram) or 8-tag (TikTok) extended set. It also gives an **avoid list** of generic, engagement-bait and dead tags. **The first seed in every run is free at the default settings (20-post quick check), then $0.03 per seed report** covering both platforms. The public data comes from Apify's own Instagram and TikTok scrapers, billed separately: **about $0.16 per seed for both platforms** at default settings (real run, 18 Oct 2026).

| Quick facts | |
|---|---|
| Best for | Hashtag research, hashtag generator for Reels and TikTok, finding niche hashtags, hashtag strategy for clients, content planning |
| Input | 1–20 seed hashtags or niche keywords in any language (`#coffee #latte`, `coffee, latte`, tag URLs and `coffee shop` all work). Or datasets from earlier hashtag-scraper runs |
| Output | One row per seed: `instagram.coreSetText`, `instagram.extendedSetText`, `tiktok.coreSetText`, `tiktok.extendedSetText`, `candidates[]` (tag, tier, volume, co-occurrence, TikTok performance), `avoid[]`, `examplePosts[]`, `summary` |
| Our price | First seed free in every run (default 20-post quick check), then **$0.03 per completed seed report** (Instagram + TikTok together). No start fee. Seeds with no data, low samples (<5 posts), invalid input and seeds over your max cost are never charged |
| Data cost | Posts and volumes are fetched by the leading scrapers on your account, under **one hard cap for all of them** that you set (tested 20 Oct: $0.135 of a $0.15 cap, $0.090 of a $0.10 cap). Real test at today's defaults (both platforms): **$0.155 per seed**; TikTok only about $0.09 |
| Needs | No logins, no cookies, no API keys. Public data only |

### How it works

1. **Seed volume and Instagram's own suggestions.** [apify/instagram-scraper](https://apify.com/apify/instagram-scraper) reads the hashtag page: total post count plus the related and frequent hashtags Instagram suggests, each with its post count.
2. **What creators pair with it.** [apify/instagram-hashtag-scraper](https://apify.com/apify/instagram-hashtag-scraper) samples recent Instagram posts. [clockworks/tiktok-hashtag-scraper](https://apify.com/clockworks/tiktok-hashtag-scraper) (4.92★) samples the top TikTok videos for the tag. Co-occurrence is counted by **distinct accounts**, and posts stuffed with 20+ tags count less, so one spam account can't hijack your set.
3. **Volume check.** The top unverified candidates (default 8 per seed and platform) are looked up for their real post or view count and tiered:
   - **Instagram:** broad ≥5M posts, mid 500K–5M, niche 20K–500K, micro <20K
   - **TikTok:** broad ≥10B views, mid 500M–10B, niche 10M–500M, micro <10M
4. **TikTok performance.** For TikTok, `performanceVsSeed` compares the median plays of top videos using a tag with the median of all top videos for your seed.
5. **Sets.** The core set is your seed + 1 broad + 2 mid + 2 niche, filled by score when a tier is short. Generic tags (`fyp`, `explore`, `like4like` and others), micro tags and tags with 0 posts go to `avoid`.

All scrapers run as separate runs on your account with `maxTotalChargeUsd` set from **Max scraper spend**, so every cost is visible in your Console.

**Spend guards (0.1.8+).** Max scraper spend is one budget for *all* scraper runs together: each scraper gets a share of what is left, rounded down, so the total never goes over it. If the budget is smaller than the estimate, the actor samples **fewer posts per seed** (shown in the log and `SUMMARY.notes`) instead of letting the first hashtag eat the whole budget, and volume checks take the top candidate of every seed first. Before any scraping it also checks this run's **maximum cost per run**: seeds it could not bill get a free `NOT_PROCESSED` row and **no scraper runs are started for them**, so you never pay scraper costs for reports you can't receive.

### Sample output (real run, 18 Oct 2026, seed `latteart`, 30-post sample)

```json
{
  "seed": "latteart",
  "status": "ANALYZED",
  "summary": "#latteart | Instagram 12.1M posts (broad); core set: #latteart #latteartgram #latteartist #latteartsg #cappuccino | TikTok 12.0B views (broad); core set: #latteart #lattearttutorial #coffeeathome #coffeetutorial #latteartist",
  "instagram": {
    "seedVolume": 12100000,
    "seedTier": "broad",
    "coreSetText": "#latteart #latteartgram #latteartist #latteartsg #cappuccino",
    "extendedSetText": "#latteart #cappuccino #barista #latteartgram #latteartist #latteartsg #coffee #coffeetime #coffeeshop #latte #coffeeaddict #coffeelover #espresso #coffeebreak #cafe",
    "candidates": [
      { "tag": "latteartgram", "tier": "mid", "volume": 1060000, "source": "instagram suggested" },
      { "tag": "latteartist", "tier": "mid", "volume": 506240, "source": "instagram suggested" },
      { "tag": "latteartsg", "tier": "niche", "volume": 72460, "source": "instagram suggested" }
    ],
    "avoid": [ { "tag": "fypシ", "reason": "generic / engagement-bait tag: huge competition, little targeting value" } ]
  },
  "tiktok": {
    "seedVolume": 12000000000,
    "coreSetText": "#latteart #lattearttutorial #coffeeathome #coffeetutorial #latteartist",
    "extendedSetText": "#latteart #coffee #lattearttutorial #coffeeathome #coffeetutorial #latteartist #barista #espresso",
    "candidates": [
      { "tag": "espresso", "tier": "broad", "volume": 23600000000, "coOccurrencePct": 9.52, "medianPlaysWithTag": 2586300, "performanceVsSeed": 2.76 }
    ],
    "avoid": [ { "tag": "fyp", "reason": "generic / engagement-bait tag: huge competition, little targeting value" } ]
  }
}
```

Each platform block also has `authorsSampled`, `postsSampled`, `spamPostSharePct`, up to 40 scored `candidates` and 3 `examplePosts`. The key-value store has `SUMMARY` (charges, every scraper run and its cost) and a Markdown `REPORT`.

### Real spend-capped run (20 Oct 2026, build 0.1.9)

Input: `"seeds": ["#LatteArt, コーヒー"]`, `verifyTop: 3`, `maxScraperSpendUsd: 0.10`, maximum cost per run $0.03. Run `CXLtokV7gzyiocMjw`:

| Seed | Status | Our fee | Instagram core set | TikTok core set |
|---|---|---|---|---|
| `latteart` (from `#LatteArt`) | ANALYZED | free (first seed) | #latteart #latteartgram #latteartist #latteartsg #latte | #latteart #espresso #coffee #homebarista #coffeetips |
| `コーヒー` | ANALYZED | $0.03 | #コーヒー #カフェ #coffee #コナコーヒー #コナコーヒーカルチュラルフェスティバル | #コーヒー #coffeetok #カフェ #coffeerecipe #espresso |

Scraper runs: **$0.090 of the $0.10 cap**. The cap was below the default estimate, so each seed got 7 Instagram posts and 7 TikTok videos instead of 20, and the Instagram volume check was skipped (not enough budget left). Japanese tags show Instagram tier `unknown`, because Instagram's hashtag-details lookup returns 0 for non-Latin tags. With 7 posts the Japanese set still includes one-off tags such as the festival name, which is why the defaults sample 20.

### Input example

```json
{
  "seeds": ["latteart", "coffeeshop"],
  "platforms": ["instagram", "tiktok"],
  "postsPerHashtag": 20,
  "verifyTop": 8,
  "maxScraperSpendUsd": 1
}
```

Only need one platform? Set `platforms` to `["tiktok"]` or `["instagram"]`, which roughly halves the scraper cost. Already scraped? Pass `datasetIds` (IDs or dataset URLs) from `clockworks/tiktok-hashtag-scraper`, `apify/instagram-hashtag-scraper` or `apify/instagram-scraper` hashtag-details runs. Seeds found only in your data are researched **from that data only**: no new post scraping, and never on the other platform. Hashtags with fewer than 5 rows (volume-check rows) are used for tiers, not as seeds. If you add data and leave the pre-filled example seed `coffeeshop` in place, it is ignored.

**Seed formats.** One seed per line, or several in one line (`#coffee #latte`, `coffee, latte`). `coffee shop` becomes `#coffeeshop`, `coffee-lover!!` becomes `#coffeelover`, and Instagram/TikTok tag URLs are read. Non-English hashtags work (`café`, `コーヒー`, `قهوة`). Entries made only of numbers or symbols (`2024`, `!!!`) get a free `INVALID_INPUT` row, and no scraper is started for them.

### Pricing (pay per event) and total cost

| What | Price | Who bills it |
|---|---|---|
| Seed report (this actor) | **First seed free** in every run when `postsPerHashtag` ≤ 20 (the default), then **$0.03** per seed, both platforms included | This actor |
| Instagram seed volume + suggestions | $0.0027 per seed (list price; our 18 Oct run was billed $0.00135 per seed) | apify/instagram-scraper |
| Instagram post sample | $0.0026 per post (20 by default) | apify/instagram-hashtag-scraper |
| TikTok top videos | $0.003 per video (20 by default) | clockworks/tiktok-hashtag-scraper |
| Volume check | about $0.003 per tag per platform (8 by default) | the scrapers above |

Prices above are FREE-tier list prices, and they're cheaper on paid Apify plans. **Real totals from our 18 Oct 2026 test runs at today's defaults (20 posts, 8 volume checks):** `coffeeshop` on both platforms cost **$0.155** in scraper runs (Instagram $0.068, TikTok $0.087) and $0 from us (first seed free). `smallbusinesstips` on TikTok only cost $0.084. The older 30-post / 10-check default cost $0.212 per seed. The log prints an estimate first, and **Max scraper spend** is a hard cap.

| Run (both platforms, defaults) | Our fee | Scraper data (approx.) | Total (approx.) |
|---|---|---|---|
| 1 seed | **$0** | $0.16 | **$0.16** |
| 5 seeds | $0.12 | $0.78 | $0.90 |
| 20 seeds | $0.57 | $3.10 | $3.67 |

Scraper cost scales with seeds and settings and is only an estimate from our test runs; your Console shows each scraper run's real cost. For 5+ seeds at full depth, raise **Max scraper spend** above the default $1 (about $0.16 per seed); otherwise the actor samples fewer posts per seed to stay under it.

**Never billed by this actor:** `NOT_ANALYZED` (no data), `LOW_SAMPLE` (fewer than 5 posts sampled on every platform), `NOT_PROCESSED` (over 20 seeds, or over your maximum cost per run: not scraped either) and `INVALID_INPUT` rows. `SUMMARY.billedReports` and `ourChargeUsd` are read from Apify's charge counter, and `SUMMARY.scraperRuns` lists each scraper run with the cost it actually charged.

### How it compares (Apify Store, verified 23 Oct 2026)

List prices on the Apify Free plan, read from the Apify Store API on 20 October 2026. Monthly users and the new parseforge row were re-checked on 23 October 2026.

| Actor | Price | Monthly users | What you get |
|---|---|---|---|
| **cygnix_labs/hashtag-research-strategy** (this) | **First seed free, then $0.03 / seed** + about $0.16 scraper cost (both platforms) | 1 | Tiered, volume-checked, ready-to-paste Instagram + TikTok sets, TikTok performance vs seed, avoid list |
| memo23/instagram-hashtag-analytics | $0.002 / hashtag + $0.0001 start | 2 | Instagram only: post count, related tags, engagement in one row |
| seemuapps/instagram-hashtag-research-scraper | $0.0025 / hashtag result + tiny start fee | 4 | Instagram related hashtags with post counts |
| enezli/instagram-hashtag-discovery | $0.05 / hashtag | 0 | Instagram co-occurrence from recent posts |
| data-slayer/instagram-hashtag-research | $0.0023 / report + $0.007 per top or recent sample + $0.001 start | 2 | Instagram only: hashtag report with post samples |
| devil_port369-owner/instagram-hashtag-research-scraper | $0.05 / result + $0.10 start | 2 | Instagram hashtag research and generator |
| apify/social-media-hashtag-research | Free actor (you pay platform usage) | 27 | Raw posts with a hashtag across Instagram, YouTube, TikTok and Facebook. No sets or tiers |
| apify/instagram-hashtag-analytics-scraper | $0.0023 / result + $0.001 start + $0.007 per top / latest posts add-on | 648 | Instagram hashtag stats, related hashtags and posts |
| apify/instagram-hashtag-scraper | $0.0026 / post | 16,146 | Raw Instagram posts for a hashtag |
| clockworks/tiktok-hashtag-scraper | $0.003 / video | 1,815 | Raw TikTok videos for a hashtag |
| parseforge/tiktok-hashtag-analytics-scraper | $0.00655 / result | 169 | TikTok hashtag view counts and top posts |

**Honest take.** For Instagram-only related tags with post counts, memo23 and seemuapps are much cheaper per hashtag. Use this actor when you want **Instagram and TikTok in one report**, tags ranked by how many **distinct creators** actually pair them with your seed, **broad / mid / niche tiers from live volumes**, TikTok performance vs your seed and **finished sets you can paste**. It runs three of the scrapers above under the hood, so the raw scrapers are always cheaper if you only need posts. Free "hashtag generator" websites usually guess from a word list or an AI model, with no live volume data. One limit: Instagram's hashtag scraper returns *recent* posts, so Instagram engagement per tag isn't scored. That signal comes from TikTok's top videos.

### For AI agents / MCP

**When an agent should call this actor:** the user asks which hashtags to use on Instagram or TikTok, wants a hashtag set for a Reel or TikTok video, asks for hashtag research or niche hashtags, or wants to know if a hashtag is too broad or dead.

Connect the Apify MCP server with only this actor enabled (works in Claude, ChatGPT, Cursor, VS Code, Codex and any MCP client):

```
https://mcp.apify.com?tools=cygnix_labs/hashtag-research-strategy
```

Or with the default server, use `search-actors` keywords such as `hashtag research`, `hashtag generator`, `tiktok hashtags`.

Example `call-actor` input:

```json
{
  "seeds": ["latteart"],
  "platforms": ["instagram", "tiktok"],
  "postsPerHashtag": 20,
  "verifyTop": 8,
  "maxScraperSpendUsd": 0.5
}
```

**What to read from the result:** `instagram.coreSetText` and `tiktok.coreSetText` are paste-ready answers. `summary` is a one-line explanation, and `avoid[]` lists the tags to drop and why. Rows with `status` `NOT_ANALYZED`, `LOW_SAMPLE`, `NOT_PROCESSED` or `INVALID_INPUT` carry a `reason` and `charged: false`; `LOW_SAMPLE` rows still include tag sets as a hint.

**Cost control for agents:** tell the user the estimate first: about $0.16 per seed for both platforms and about $0.09 for TikTok only at the defaults (scraper data), plus $0.03 per seed after the first, which is free. Pass `maxTotalChargeUsd` in `callOptions` to cap our fee, and `maxScraperSpendUsd` in the input to cap scraper spend. This actor is pay-per-event and runs with **limited permissions**, so it works for autonomous agents and with Apify agentic payments.

Example prompt: *"Give me 5 Instagram hashtags and 5 TikTok hashtags for a latte art Reel, with a mix of big and niche tags, and tell me which ones to avoid."*

### FAQ

**How many hashtags should I use?** The core set is 5 tags, matching Instagram's own advice to use a few highly relevant hashtags. The extended set (15 on Instagram, 8 on TikTok) is there if you want more options to rotate.

**Why do the broad / mid / niche tiers matter?** Broad tags carry huge volume but your post sinks in minutes. Niche tags have smaller audiences who actually look for that topic. A mix gives reach and staying power.

**Is it legal? Do I need an account?** It reads public hashtag pages and public posts only, with no login or cookies. Respect each platform's terms when you use the data.

**Why are some suggested tags local, like `latteartsg`?** Instagram suggests them because they're popular next to your seed. Keep them if they match your audience, and swap them out if not. The `candidates` list gives you alternatives with volumes.

**What if a seed doesn't exist?** You get `status: "NOT_ANALYZED"` with the reason, and no report charge. The scrapers may still bill a cent or less for the lookup.

**Does it check for banned hashtags?** Latin-script tags where Instagram shows 0 posts are flagged in `avoid` as possibly restricted or hidden. That's a strong hint, not an official list. Non-Latin tags are never flagged this way, because Instagram's lookup returns 0 for all of them.

**Does it work for non-English hashtags?** Yes. Seeds and related tags in any script (Japanese, Korean, Arabic, accented Latin) are sampled from Instagram and TikTok posts and ranked the same way. TikTok view counts work for them. Instagram post counts can't be looked up for non-Latin tags, so their Instagram tier is `unknown`, and we skip that paid lookup for them.

**What does "Max scraper spend" do if it's low?** It is a hard cap for all scraper runs together. With a low cap the actor samples fewer posts per seed and may skip volume checks, and the log and `SUMMARY.notes` say so. A seed sampled below 5 posts on every platform becomes `LOW_SAMPLE` and is free.

**Can I cap spend?** Yes, in two ways. `maxScraperSpendUsd` caps all scraper runs together, and Apify's maximum cost per run caps this actor's fee. Seeds over that maximum aren't scraped at all.

**Is this an Instagram hashtag scraper or a TikTok hashtag scraper?** Not a raw one. It runs Apify's Instagram and TikTok hashtag scrapers for you, then turns the posts into hashtag analytics: which tags real creators pair with your seed, live post or view counts, tiers and ready sets. If you only need raw posts for a hashtag, apify/instagram-hashtag-scraper or clockworks/tiktok-hashtag-scraper are cheaper.

**Does it show trending hashtags?** It does not give a global "trending today" list. It finds the best related Instagram hashtags and TikTok hashtags for your topic, from posts that are live now. On TikTok, `performanceVsSeed` shows which related tags' top videos get more plays than your seed's.

**What hashtag analytics do I get per tag?** Instagram post count, TikTok view count, tier (broad / mid / niche / micro), `coOccurrencePct` (the share of distinct sampled accounts that used it with your seed), `postsWithSeed`, the `source` (Instagram suggestion or co-occurrence), and for TikTok `medianPlaysWithTag` and `performanceVsSeed`. Example posts are included so you can check the context.

### Integrations

Schedule a monthly refresh per client niche, call it through the Apify API or MCP, or push results to Google Sheets, Notion (through Make or Zapier), n8n, Slack or webhooks.

### Changelog

- **0.1.11** (2026-10-23): Store text and README only, no code change. Title now says "Instagram & TikTok Hashtags". New FAQs: scraper or not, trending hashtags, which hashtag analytics you get. Comparison monthly users re-checked 23 Oct, and parseforge TikTok hashtag analytics added.
- **0.1.10** (2026-10-20): Scraper cost in `SUMMARY` is now what each scraper run actually charged (charged events × price), not a list-price estimate (a capped run returned 14 posts but charged 11). README: spend guards, real capped run, seed formats, non-English FAQ, comparison re-verified 20 Oct.
- **0.1.9** (2026-10-20): With a low **Max scraper spend**, every seed gets a smaller post sample instead of the first seed taking the whole budget (on 0.1.7 a 2-seed run got 20 TikTok videos for seed 1 and 0 for seed 2). Volume checks take each seed's top candidate first. The Instagram details lookup (which returns 0 but still charges for non-Latin tags) is skipped for them.
- **0.1.8** (2026-10-20): Billing and spend fixes. **Max scraper spend is now one cap for all scraper runs together** (0.1.7 could go over it: $0.084 on a $0.05 cap). Maximum cost per run is checked **before** scraping, so seeds it can't bill get a free `NOT_PROCESSED` row and aren't scraped (0.1.7 scraped them and then dropped them without a row). Seeds with fewer than 5 sampled posts are `LOW_SAMPLE` and free (0.1.7 billed 1-video seeds from volume-check rows). Supplied datasets no longer trigger scraping on the other platform, and the pre-filled `coffeeshop` example is ignored when you add data. Seed parsing handles `#a #b` / comma lists, tag URLs, `coffee-lover!!`, full-width `＃`, URL-encoded and non-English tags. Invalid seeds (`2024`, `!!!`) get a free `INVALID_INPUT` row and no scraper is started for them. Non-Latin tags no longer get a false "0 posts, avoid" flag.
- **0.1.7** (2026-10-19): Cheaper by default. Report fee $0.04 → $0.03 per seed; defaults now 20 posts and 8 volume checks, so the first seed of every default run is free and scraper data drops from about $0.21 to about $0.16 per seed (both platforms, real 18 Oct runs). Title and Store text now say hashtag generator + Instagram & TikTok hashtag research. Comparison re-verified 19 Oct 2026 against 7 named actors.
- **0.1** (2026-10-18): First release. Instagram + TikTok co-occurrence by distinct accounts, real volume tiers, TikTok performance vs seed, core and extended sets, avoid list, dataset input, spend-capped scraper orchestration.

### More tools by Cygnix Labs

- [Website SEO Audit + AEO/GEO Checker](https://apify.com/cygnix_labs/site-seo-aeo-audit)
- [Keyword Clustering + Content Briefs](https://apify.com/cygnix_labs/keyword-clusterer-brief)
- [Search Intent Classifier](https://apify.com/cygnix_labs/serp-intent-mapper)

Questions or a feature request? Open an issue on this actor's Issues tab. We answer within 24 hours.

# Actor input Schema

## `seeds` (type: `array`):

1-20 hashtags or niche keywords, one per line (with or without #). Also accepts '#coffee #latte' or 'coffee, latte' in one line, Instagram/TikTok tag URLs and non-English hashtags (café, コーヒー, قهوة). 'coffee shop' becomes #coffeeshop. Invalid entries (only numbers or symbols) get a free INVALID_INPUT row. One report per seed.

## `platforms` (type: `array`):

Research Instagram, TikTok or both.

## `postsPerHashtag` (type: `integer`):

Posts/videos read per seed to find the hashtags people actually pair with it. 20 (default) or less = quick check, and the first seed in the run is free. Raise to 30-50 for a deeper sample (higher scraper cost, first seed billed).

## `verifyTop` (type: `integer`):

Look up the real post count (Instagram) or view count (TikTok) of this many top co-occurring hashtags per seed, so each gets a broad / mid / niche tier. About $0.003 per hashtag per platform.

## `maxScraperSpendUsd` (type: `number`):

Hard cap for ALL scraper runs this actor starts on your account together (billed by those scrapers, separate from our $0.03 report fee). Each scraper gets a share of what is left, so the total never goes over this. The log shows the estimate first.

## `datasetIds` (type: `array`):

Datasets (IDs or URLs) from clockworks/tiktok-hashtag-scraper, apify/instagram-hashtag-scraper, or apify/instagram-scraper hashtag details runs. Seeds found in your data are researched from that data only (no new post scraping; volume checks still use verifyTop). If you add data, the pre-filled example seed is ignored.

## `items` (type: `array`):

Raw items from the scrapers above (advanced / API use).

## Actor input object example

```json
{
  "seeds": [
    "coffeeshop"
  ],
  "platforms": [
    "instagram",
    "tiktok"
  ],
  "postsPerHashtag": 20,
  "verifyTop": 8,
  "maxScraperSpendUsd": 1
}
```

# Actor output Schema

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

No description

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

No description

## `report` (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 = {
    "seeds": [
        "coffeeshop"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("cygnix_labs/hashtag-research-strategy").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 = { "seeds": ["coffeeshop"] }

# Run the Actor and wait for it to finish
run = client.actor("cygnix_labs/hashtag-research-strategy").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 '{
  "seeds": [
    "coffeeshop"
  ]
}' |
apify call cygnix_labs/hashtag-research-strategy --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cygnix_labs/hashtag-research-strategy"
        }
    }
}
```

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/JGCEcTnGLUKYdP2gM/builds/i756CmpWOAcj4YbKC/openapi.json
