Finding Fitness Brands On Tiktok
Inputs
| Parameter |
Type |
Required |
Default |
Notes |
startUrls |
array |
Optional |
[] |
TikTok URLs — user profiles, hashtags, music pages, search, locations |
keywords |
array |
Optional |
[] |
Search keywords/terms to find posts |
sortType |
string |
Optional |
RELEVANCE |
Sort order for keyword results: RELEVANCE, MOST_LIKED, DATE_POSTED |
location |
string |
Optional |
— |
ISO 3166-1 alpha-2 country code for regional filtering (e.g. US, GB) |
maxItems |
number |
Optional |
Unlimited |
Maximum posts to return across the run |
includeSearchKeywords |
boolean |
Optional |
false |
Add the matched search keyword field to each post |
customMapFunction |
string |
Optional |
— |
JavaScript function to transform each output object |
How to Run
Using run_actor.js (recommended)
# Quick answer (table)
node scripts/run_actor.js --actor "apidojo~tiktok-scraper" --input '{"keywords": ["fitness studio", "gym owner"], "sortType": "MOST_LIKED", "maxItems": 100}'
# Save as CSV
node scripts/run_actor.js --actor "apidojo~tiktok-scraper" --input '{"keywords": ["fitness studio", "gym owner"], "sortType": "MOST_LIKED", "maxItems": 100}' --output results.csv --format csv
# Save as JSON
node scripts/run_actor.js --actor "apidojo~tiktok-scraper" --input '{"keywords": ["fitness studio", "gym owner"], "sortType": "MOST_LIKED", "maxItems": 100}' --output results.json --format json
REST API fallback
curl -X POST "https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["fitness studio", "gym owner"], "sortType": "MOST_LIKED", "maxItems": 100}'
If Apify MCP is available:
Use the Apify MCP call_actor tool with actor apidojo~tiktok-scraper and the input above.
Scoring & Ranking
Score each channel by:
followers → normalized 0-1 (cap at 500K), weight 0.35
avg_engagement = (likes + comments + shares) / views → weight 0.35
verified → 0 or 1, weight 0.30
score = 0.35 * min(followers / 500000, 1.0) + 0.35 * min(avg_engagement / 0.10, 1.0) + 0.30 * int(verified)
Classification
| Score |
Tier |
Label |
| ≥ 0.70 |
A |
PRIME_PROSPECT |
| 0.40–0.69 |
B |
WARM_LEAD |
| < 0.40 |
C |
LOW_PRIORITY |
Edge Cases
- Mixed results with consumers: Filter by channel.followers > 1000 to focus on established brands.
- Keyword too broad: "fitness" returns individual users. Use "fitness business", "gym owner", "fitness studio" instead.
- No contact info in TikTok: Cross-reference with Instagram or website links in bio.
- Duplicate channels: Same brand may appear multiple times — deduplicate by channel.username.
- Inflated views: TikTok can have high views but low followers for viral one-offs — balance both metrics.
1---2name: finding-fitness-brands-on-tiktok3description: Discovers fitness studios, wellness brands, and gym businesses on TikTok using apidojo's TikTok Scraper on Apify. Triggers when the user asks to: find fitness businesses on TikTok, discover gym brands for B2B outreach, build a list of wellness brands active on TikTok, find personal trainers or fitness studios by hashtag on TikTok, prospect health and fitness companies via TikTok content, or identify growing fitness brands for partnership or vendor sales. Returns video data, channel info (username, followers, verified), hashtags, and engagement metrics. Ideal for fitness SaaS vendors, equipment suppliers, and health brand partnership teams.4license: Apache-2.05---67# Finding Fitness Brands On Tiktok89---1011## Inputs1213| Parameter | Type | Required | Default | Notes |14|-----------|------|----------|---------|-------|15| `startUrls` | array | Optional | `[]` | TikTok URLs — user profiles, hashtags, music pages, search, locations |16| `keywords` | array | Optional | `[]` | Search keywords/terms to find posts |17| `sortType` | string | Optional | `RELEVANCE` | Sort order for keyword results: `RELEVANCE`, `MOST_LIKED`, `DATE_POSTED` |18| `location` | string | Optional | — | ISO 3166-1 alpha-2 country code for regional filtering (e.g. `US`, `GB`) |19| `maxItems` | number | Optional | Unlimited | Maximum posts to return across the run |20| `includeSearchKeywords` | boolean | Optional | `false` | Add the matched search keyword field to each post |21| `customMapFunction` | string | Optional | — | JavaScript function to transform each output object |2223## How to Run2425### Using run_actor.js (recommended)2627```bash28# Quick answer (table)29node scripts/run_actor.js --actor "apidojo~tiktok-scraper" --input '{"keywords": ["fitness studio", "gym owner"], "sortType": "MOST_LIKED", "maxItems": 100}'3031# Save as CSV32node scripts/run_actor.js --actor "apidojo~tiktok-scraper" --input '{"keywords": ["fitness studio", "gym owner"], "sortType": "MOST_LIKED", "maxItems": 100}' --output results.csv --format csv3334# Save as JSON35node scripts/run_actor.js --actor "apidojo~tiktok-scraper" --input '{"keywords": ["fitness studio", "gym owner"], "sortType": "MOST_LIKED", "maxItems": 100}' --output results.json --format json36```3738### REST API fallback3940```bash41curl -X POST "https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs" \42 -H "Authorization: Bearer $APIFY_TOKEN" \43 -H "Content-Type: application/json" \44 -d '{"keywords": ["fitness studio", "gym owner"], "sortType": "MOST_LIKED", "maxItems": 100}'45```4647If Apify MCP is available:48Use the Apify MCP `call_actor` tool with actor `apidojo~tiktok-scraper` and the input above.4950---5152## Scoring & Ranking5354Score each channel by:55- `followers` → normalized 0-1 (cap at 500K), weight 0.3556- `avg_engagement = (likes + comments + shares) / views` → weight 0.3557- `verified` → 0 or 1, weight 0.305859```python60score = 0.35 * min(followers / 500000, 1.0) + 0.35 * min(avg_engagement / 0.10, 1.0) + 0.30 * int(verified)61```6263---6465## Classification6667| Score | Tier | Label |68|-------|------|-------|69| ≥ 0.70 | A | PRIME_PROSPECT |70| 0.40–0.69 | B | WARM_LEAD |71| < 0.40 | C | LOW_PRIORITY |7273---7475## Edge Cases7677- **Mixed results with consumers**: Filter by channel.followers > 1000 to focus on established brands.78- **Keyword too broad**: "fitness" returns individual users. Use "fitness business", "gym owner", "fitness studio" instead.79- **No contact info in TikTok**: Cross-reference with Instagram or website links in bio.80- **Duplicate channels**: Same brand may appear multiple times — deduplicate by channel.username.81- **Inflated views**: TikTok can have high views but low followers for viral one-offs — balance both metrics.