Actor Competitor Scanner avatar

Actor Competitor Scanner

Pricing

$500.00 / 1,000 competitor scans

Go to Apify Store
Actor Competitor Scanner

Actor Competitor Scanner

Scan the Apify Store for competitor actors in your categories. Compare run volumes, user counts, and pricing. Calculate your market position percentile per category.

Pricing

$500.00 / 1,000 competitor scans

Rating

0.0

(0)

Developer

ryan clinton

ryan clinton

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

6 hours ago

Last modified

Share

ApifyForge Competitor Scan -- Store Market Intelligence

Scan the Apify Store for competitor actors in your categories, compare their metrics against yours, and understand your market position. ApifyForge Competitor Scan automatically detects which categories your actors belong to, fetches top competitors in each category from the Store, and produces a side-by-side comparison of user counts, run volumes, and pricing. It calculates your market position percentile and identifies the competitors getting the most traction. Built to power the competitive intelligence panel of the ApifyForge dashboard.

Why use ApifyForge Competitor Scan?

  • Know your competition. See who else is publishing actors in your categories and how their traffic compares to yours.
  • Market position percentile. Get a clear percentile ranking (0-100) showing where you stand relative to competitors in each category.
  • Pricing intelligence. See what competitors charge for PPE pricing so you can benchmark your own prices.
  • Auto-detect categories. Leave the categories field empty and the actor will automatically detect all categories from your published actors.
  • Cross-category analysis. If you publish actors in multiple categories, get a separate comparison for each one.
  • User and run benchmarks. Compare your average user count and run volume against category averages to identify where you outperform or underperform.
  • Dashboard-ready output. Structured JSON designed for direct integration with ApifyForge for competitive dashboards and trend tracking.

Key Features

  • Fetches all your actors and auto-detects their categories from the Apify Store
  • Scans the Store by category to find competitor actors
  • Filters out your own actors from competitor lists
  • Deduplicates competitors that appear in multiple categories
  • Extracts PPE pricing from competitor actor metadata
  • Computes per-category comparisons: your average vs. competitor average for users and runs
  • Calculates market position percentile based on 30-day user counts
  • Configurable: specify categories manually or let auto-detection handle it
  • Configurable competitor limit per category (default: 20, max: 100)

How to Use

  1. Go to ApifyForge Competitor Scan on the Apify Store.
  2. Click Try for free.
  3. Enter your Apify API Token.
  4. Optionally specify Categories to Scan (leave empty for auto-detection).
  5. Optionally adjust Max Competitors per Category (default: 20).
  6. Click Start.
  7. Wait for the run to complete (typically 30-120 seconds depending on category count).
  8. Review competitor data and market position in the Dataset tab.

Input Parameters

ParameterTypeRequiredDefaultDescription
apifyTokenstringYes--Your Apify API token. Find it at https://console.apify.com/settings/integrations
categoriesarray of stringsNoAuto-detectedApify Store categories to scan for competitors. Leave empty to auto-detect from your actors. Valid values: AI, DEVELOPER_TOOLS, SOCIAL_MEDIA, SEO_TOOLS, ECOMMERCE, etc.
maxCompetitorsPerCategoryintegerNo20Maximum number of competitor actors to fetch per category. Range: 5-100.

Input Examples

Auto-detect categories and scan (recommended for first run):

{
"apifyToken": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

Scan specific categories:

{
"apifyToken": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"categories": ["AI", "DEVELOPER_TOOLS", "SEO_TOOLS"]
}

Deep scan with more competitors per category:

{
"apifyToken": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"categories": ["SOCIAL_MEDIA"],
"maxCompetitorsPerCategory": 50
}

Output Example

{
"categoriesScanned": ["AI", "DEVELOPER_TOOLS", "SEO_TOOLS"],
"competitors": [
{
"name": "web-scraper",
"username": "apify",
"title": "Web Scraper",
"runs30d": 245000,
"users30d": 18500,
"totalUsers": 892000,
"ppePrice": 0.50,
"categories": ["DEVELOPER_TOOLS"]
},
{
"name": "google-search-scraper",
"username": "apify",
"title": "Google Search Results Scraper",
"runs30d": 189000,
"users30d": 14200,
"totalUsers": 654000,
"ppePrice": 0.25,
"categories": ["SEO_TOOLS", "DEVELOPER_TOOLS"]
},
{
"name": "instagram-scraper",
"username": "competitor_dev",
"title": "Instagram Profile Scraper",
"runs30d": 67000,
"users30d": 4300,
"totalUsers": 128000,
"ppePrice": null,
"categories": ["SOCIAL_MEDIA"]
}
],
"comparison": [
{
"category": "AI",
"userActorCount": 72,
"competitorCount": 20,
"avgCompetitorUsers": 340,
"avgCompetitorRuns": 5200,
"userAvgUsers": 18,
"userAvgRuns": 230,
"marketPosition": 35
},
{
"category": "DEVELOPER_TOOLS",
"userActorCount": 85,
"competitorCount": 20,
"avgCompetitorUsers": 1250,
"avgCompetitorRuns": 28000,
"userAvgUsers": 45,
"userAvgRuns": 480,
"marketPosition": 42
},
{
"category": "SEO_TOOLS",
"userActorCount": 15,
"competitorCount": 20,
"avgCompetitorUsers": 890,
"avgCompetitorRuns": 15000,
"userAvgUsers": 120,
"userAvgRuns": 2100,
"marketPosition": 58
}
],
"scannedAt": "2026-03-16T14:30:00.000Z"
}

Output Fields

FieldTypeDescription
categoriesScannedarrayList of Apify Store categories that were scanned
competitorsarrayAll competitor actors found, sorted by 30-day users descending. Deduplicated across categories.
competitors[].namestringActor name (slug)
competitors[].usernamestringPublisher's Apify username
competitors[].titlestringActor display title
competitors[].runs30dnumberNumber of runs in the last 30 days
competitors[].users30dnumberNumber of unique users in the last 30 days
competitors[].totalUsersnumberAll-time total user count
competitors[].ppePricenumber or nullPay-Per-Event price in USD, or null if no PPE pricing configured
competitors[].categoriesarrayApify Store categories this actor belongs to
comparisonarrayPer-category comparison between your actors and competitors
comparison[].categorystringCategory name
comparison[].userActorCountnumberNumber of your actors in this category
comparison[].competitorCountnumberNumber of competitor actors analyzed in this category
comparison[].avgCompetitorUsersnumberAverage 30-day user count for competitor actors
comparison[].avgCompetitorRunsnumberAverage 30-day run count for competitor actors
comparison[].userAvgUsersnumberAverage 30-day user count for your actors in this category
comparison[].userAvgRunsnumberAverage 30-day run count for your actors in this category
comparison[].marketPositionnumberYour market position percentile (0-100). Based on 30-day users of your best actor vs. all actors in the category. Higher is better.
scannedAtstringISO 8601 timestamp of when the scan was performed

Programmatic Access

Python

from apify_client import ApifyClient
client = ApifyClient("apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx")
run = client.actor("ryanclinton/apifyforge-competitor-scan").call(
run_input={
"apifyToken": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"categories": ["AI", "DEVELOPER_TOOLS"],
"maxCompetitorsPerCategory": 30
}
)
dataset_items = client.dataset(run["defaultDatasetId"]).list_items().items
scan = dataset_items[0]
print(f"Categories scanned: {', '.join(scan['categoriesScanned'])}")
print(f"Total competitors found: {len(scan['competitors'])}")
print("\nMarket position by category:")
for comp in scan["comparison"]:
print(f" {comp['category']}: {comp['marketPosition']}th percentile "
f"(your avg: {comp['userAvgUsers']} users vs competitor avg: {comp['avgCompetitorUsers']})")
print("\nTop 5 competitors by users:")
for c in scan["competitors"][:5]:
price = f"${c['ppePrice']}" if c["ppePrice"] else "free"
print(f" {c['username']}/{c['name']}: {c['users30d']} users, {c['runs30d']} runs, {price}")

JavaScript

import { ApifyClient } from "apify-client";
const client = new ApifyClient({
token: "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
});
const run = await client.actor("ryanclinton/apifyforge-competitor-scan").call({
apifyToken: "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
categories: ["AI", "DEVELOPER_TOOLS"],
maxCompetitorsPerCategory: 30,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const scan = items[0];
console.log(`Categories: ${scan.categoriesScanned.join(", ")}`);
console.log(`Competitors found: ${scan.competitors.length}`);
// Find underpriced opportunities
const cheapCompetitors = scan.competitors.filter(
(c) => c.ppePrice && c.ppePrice < 0.05 && c.users30d > 1000
);
console.log(`High-traffic, low-price competitors: ${cheapCompetitors.length}`);

cURL

# Start the competitor scan
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~apifyforge-competitor-scan/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"apifyToken": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx", "categories": ["AI", "DEVELOPER_TOOLS"]}'
# Fetch results from the default dataset
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN"

How It Works

ApifyForge Competitor Scan executes a multi-stage competitive intelligence pipeline:

  1. Actor enumeration. Calls GET /v2/acts?my=true with pagination to retrieve every actor in your account.

  2. Username resolution. Extracts your username from your actor list or falls back to GET /v2/users/me. Your username is used to filter your own actors out of competitor lists.

  3. Category detection. If no categories are specified in the input, the actor calls GET /v2/acts/{actorId} for each of your actors and collects all unique categories. This gives you automatic category coverage based on where you actually compete.

  4. Category-actor mapping. For each detected category, groups your actors that belong to that category. This enables per-category comparison of your metrics vs. competitors.

  5. Store scanning. For each category, calls GET /v2/store?category={CATEGORY} with pagination to fetch competitor actors. Fetches extra actors beyond the configured limit to account for filtering out your own actors.

  6. Competitor extraction. Filters out actors published by your username, deduplicates across categories (an actor appearing in multiple categories is only listed once), and extracts PPE pricing from the pricingInfos array.

  7. Comparison computation. For each category, computes:

    • Average 30-day users and runs for your actors vs. competitor actors
    • Market position percentile: ranks your best actor's user count against all actors (yours + competitors) in the category
  8. Output. Sorts competitors by 30-day users descending, pushes results to the default dataset, and charges one PPE event.

How Much Does It Cost?

ApifyForge Competitor Scan uses Pay-Per-Event pricing at $0.15 per scan.

ScenarioEventsCost
One-time competitive analysis1$0.15
Weekly monitoring (4x/month)4$0.60
Daily monitoring (30x/month)30$4.50

Platform compute costs also apply. A typical scan of 3-5 categories with 20 competitors each completes in under 2 minutes using 256 MB of memory.

Tips

  • Start with auto-detection. Leave the categories field empty on your first run to see which categories your actors fall into. You might discover you are competing in categories you did not expect.
  • Benchmark pricing. Use the ppePrice field from competitors to see the going rate in your categories. If competitors charge $0.25 and you charge $0.05, you may be underpricing.
  • Focus on market position. A market position of 50 means you are at the median. Below 30 means your actors are in the bottom third of the category -- consider improving descriptions, reliability, or SEO.
  • Track over time. Schedule monthly scans to see whether your market position is improving. New competitors enter the Store regularly, so staying static means falling behind.
  • Increase the competitor limit for deep dives. Set maxCompetitorsPerCategory to 50 or 100 for categories where you want exhaustive competitive coverage.
  • Combine with Quality Monitor. If your market position is low, run a Quality Monitor scan to identify which quality dimensions are dragging you down compared to competitors.

Limitations

  • Store API ordering. The Apify Store API returns actors in its default ordering, which may not perfectly align with "top competitors." The scan fetches extra actors to compensate but may miss some competitors in very crowded categories.
  • No historical competitor data. Each scan gives you a snapshot. To track competitor trends, schedule regular runs and analyze the dataset over time.
  • PPE pricing only. Only Pay-Per-Event pricing is extracted from competitors. Flat-rate, subscription, or free pricing models are not differentiated -- they all show as ppePrice: null.
  • Category limits. Very broad categories (like DEVELOPER_TOOLS) may have hundreds of actors. The maxCompetitorsPerCategory setting caps how many are analyzed.
  • Market position calculation. The percentile is based on your single best-performing actor in each category, not your average. This gives an optimistic view of your position.
  • API calls scale with categories. Scanning 10+ categories with high competitor limits generates many API calls. Keep category count reasonable or increase the timeout.

Frequently Asked Questions

What categories can I scan? Any valid Apify Store category: AI, AGENTS, AUTOMATION, DEVELOPER_TOOLS, ECOMMERCE, JOBS, LEAD_GENERATION, NEWS, SEO_TOOLS, SOCIAL_MEDIA, TRAVEL, VIDEOS, REAL_ESTATE, INTEGRATIONS, OTHER, OPEN_SOURCE, and more. Leave the field empty to auto-detect from your actors.

How is market position calculated? The market position is a percentile (0-100). It takes the 30-day user count of your best actor in the category, combines it with all competitor user counts, sorts them, and finds where your best actor ranks. A position of 75 means your best actor has more users than 75% of actors in that category.

Why are some competitors showing ppePrice: null? These competitors either offer their actors for free, use flat-rate pricing, or have not configured PPE pricing. The scan only extracts PPE pricing from the pricingInfos metadata.

Can I scan categories I do not have actors in? Yes. Specify the categories manually in the input. This is useful for market research before entering a new category. Your comparison metrics will show 0 for your side, but you will see competitor data and pricing.

Integration with ApifyForge Dashboard

This actor powers the competitive intelligence panel of the ApifyForge dashboard. When connected, competitor data is visualized with market position gauges per category, competitor leaderboards, pricing comparison charts, and trend analysis for market position changes over time. The dashboard highlights categories where you are underperforming relative to competitors and suggests specific improvements based on the gap. Schedule this actor to run monthly for ongoing competitive monitoring.