Actor Portfolio Analytics
Pricing
$100.00 / 1,000 fleet analyzeds
Actor Portfolio Analytics
Aggregate stats, trends, and forecasting across your entire Apify actor portfolio. Connect your API token for instant fleet-wide visibility into runs, users, revenue, and health.
Pricing
$100.00 / 1,000 fleet analyzeds
Rating
0.0
(0)
Developer

ryan clinton
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
9 hours ago
Last modified
Categories
Share
ApifyForge Fleet Analytics -- Full Account Dashboard
Get a complete, data-driven overview of your entire Apify actor portfolio in a single API call. ApifyForge Fleet Analytics scans every actor in your account, pulls run statistics from the Apify Store API, computes failure rates from recent run history, estimates monthly revenue from PPE pricing, and packages everything into a structured JSON report. Whether you manage 5 actors or 500, this tool gives you the numbers you need to make informed decisions about what to build, fix, or deprecate.
Why use ApifyForge Fleet Analytics?
- One call, full picture. Instead of clicking through dozens of actor dashboards, get aggregated stats for your entire fleet in a single structured output.
- Revenue estimation. Automatically calculates estimated monthly revenue by multiplying each actor's 30-day run volume by its Pay-Per-Event price.
- Failure detection. Identifies actors with failure rates above 10% by sampling the last 100 runs and filtering to the 30-day window.
- Stale actor identification. Flags actors with zero runs in the last 30 days so you can decide whether to update or deprecate them.
- Category breakdown. Shows how your actors are distributed across Apify Store categories so you can spot gaps or overconcentration.
- Top performers. Ranks your actors by run volume and user count so you know which ones are carrying your portfolio.
- Dashboard-ready output. Designed to feed directly into the ApifyForge dashboard for visualization and trend tracking.
Key Features
- Fetches all actors from your account via paginated API calls (handles accounts with 100+ actors)
- Enriches data with Apify Store statistics (users, runs, builds)
- Pulls actor detail endpoint for PPE pricing configuration
- Samples last 100 runs per actor to compute actual success/failure rates over 30 days
- Computes weighted fleet-wide success rate (weighted by run volume so high-traffic actors count more)
- Identifies top 10 actors by runs and by users
- Estimates monthly revenue from PPE pricing multiplied by 30-day run counts
- Outputs a single comprehensive JSON object to the default dataset
How to Use
- Go to ApifyForge Fleet Analytics on the Apify Store.
- Click Try for free.
- Enter your Apify API Token (find it at Settings > Integrations).
- Click Start.
- Wait for the run to complete (typically 30-120 seconds depending on fleet size).
- View the results in the Dataset tab, or download as JSON.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
apifyToken | string | Yes | -- | Your Apify API token. Used to authenticate all API calls. Find it at https://console.apify.com/settings/integrations |
Input Examples
Standard analysis of your full fleet:
{"apifyToken": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
Using the actor via API with a saved token:
{"apifyToken": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
Output Example
{"totalActors": 211,"publicActors": 198,"privateActors": 13,"totalRuns30d": 48523,"totalUsers30d": 1247,"totalUsers7d": 389,"successRate": 97.3,"topActorsByRuns": [{ "name": "google-maps-scraper", "id": "abc123", "runs30d": 8421 },{ "name": "linkedin-scraper", "id": "def456", "runs30d": 5102 },{ "name": "amazon-product-api", "id": "ghi789", "runs30d": 3890 },{ "name": "twitter-scraper", "id": "jkl012", "runs30d": 2744 },{ "name": "youtube-channel-scraper", "id": "mno345", "runs30d": 2301 }],"topActorsByUsers": [{ "name": "google-maps-scraper", "id": "abc123", "users30d": 312 },{ "name": "linkedin-scraper", "id": "def456", "users30d": 198 },{ "name": "amazon-product-api", "id": "ghi789", "users30d": 145 },{ "name": "twitter-scraper", "id": "jkl012", "users30d": 89 },{ "name": "youtube-channel-scraper", "id": "mno345", "users30d": 76 }],"categoryBreakdown": {"DEVELOPER_TOOLS": 85,"AI": 72,"SOCIAL_MEDIA": 28,"SEO_TOOLS": 15,"ECOMMERCE": 11},"actorsWithNoRuns30d": [{ "name": "legacy-email-validator", "id": "xyz001", "lastRunAt": "2025-11-15T10:30:00.000Z" },{ "name": "old-rss-parser", "id": "xyz002", "lastRunAt": "2025-12-01T08:00:00.000Z" }],"actorsWithHighFailRate": [{ "name": "unstable-scraper", "id": "fail01", "failRate": 34.5, "runs30d": 29 },{ "name": "broken-api-wrapper", "id": "fail02", "failRate": 18.2, "runs30d": 11 }],"estimatedMonthlyRevenue": 4821.50,"analyzedAt": "2026-03-16T14:30:00.000Z"}
Output Fields
| Field | Type | Description |
|---|---|---|
totalActors | number | Total number of actors in your account |
publicActors | number | Number of actors published publicly on the Apify Store |
privateActors | number | Number of private (unlisted) actors |
totalRuns30d | number | Aggregate run count across all actors in the last 30 days |
totalUsers30d | number | Aggregate unique user count across all actors in the last 30 days |
totalUsers7d | number | Aggregate unique user count across all actors in the last 7 days |
successRate | number | Fleet-wide weighted success rate (percentage, weighted by run volume) |
topActorsByRuns | array | Top 10 actors ranked by 30-day run count. Each entry has name, id, runs30d. |
topActorsByUsers | array | Top 10 actors ranked by 30-day unique user count. Each entry has name, id, users30d. |
categoryBreakdown | object | Map of Apify Store category names to the number of your actors in each category |
actorsWithNoRuns30d | array | Actors with zero runs in the last 30 days. Each entry has name, id, and optional lastRunAt timestamp. |
actorsWithHighFailRate | array | Actors with >10% failure rate and at least 5 recent runs. Each entry has name, id, failRate (percentage), and runs30d. |
estimatedMonthlyRevenue | number | Estimated total monthly revenue in USD, calculated as SUM(runs30d * ppePrice) for all actors with PPE pricing |
analyzedAt | string | ISO 8601 timestamp of when the analysis was performed |
Programmatic Access
Python
from apify_client import ApifyClientclient = ApifyClient("apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx")run = client.actor("ryanclinton/apifyforge-fleet-analytics").call(run_input={"apifyToken": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"})dataset_items = client.dataset(run["defaultDatasetId"]).list_items().itemsanalytics = dataset_items[0]print(f"Total actors: {analytics['totalActors']}")print(f"30-day runs: {analytics['totalRuns30d']}")print(f"Success rate: {analytics['successRate']}%")print(f"Estimated revenue: ${analytics['estimatedMonthlyRevenue']}")for actor in analytics["topActorsByRuns"][:5]:print(f" {actor['name']}: {actor['runs30d']} runs")
JavaScript
import { ApifyClient } from "apify-client";const client = new ApifyClient({token: "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",});const run = await client.actor("ryanclinton/apifyforge-fleet-analytics").call({apifyToken: "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",});const { items } = await client.dataset(run.defaultDatasetId).listItems();const analytics = items[0];console.log(`Total actors: ${analytics.totalActors}`);console.log(`30-day runs: ${analytics.totalRuns30d}`);console.log(`Success rate: ${analytics.successRate}%`);console.log(`Estimated revenue: $${analytics.estimatedMonthlyRevenue}`);
cURL
# Start the actor runcurl -X POST "https://api.apify.com/v2/acts/ryanclinton~apifyforge-fleet-analytics/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"apifyToken": "apify_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"}'# Fetch results from the default dataset (use the defaultDatasetId from the run response)curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN"
How It Works
ApifyForge Fleet Analytics executes a multi-stage pipeline to build your fleet overview:
-
Actor enumeration. Calls
GET /v2/acts?my=truewith pagination (100 per page) to retrieve every actor in your account. This returns basic metadata including name, ID, public/private status, and summary stats. -
Username resolution. Extracts your username from the first actor record, or falls back to the
GET /v2/users/meendpoint if needed. The username is required to query the Store API. -
Store enrichment. Calls
GET /v2/store?username=YOUR_USERNAMEwith pagination to pull Apify Store statistics. Store stats include more granular user counts (7-day, 30-day) and run counts that may differ from the actor list endpoint. -
Detail fetching. For each actor, calls
GET /v2/acts/{actorId}to retrieve full details including PPE pricing configuration, categories, and tagged builds. This is the only endpoint that exposespricingInfos. -
Run sampling. For each actor, fetches the last 100 runs via
GET /v2/acts/{actorId}/runs?limit=100&desc=true. Filters to runs started within the last 30 days and computes success/failure rates. Actors with >10% failure rate and at least 5 runs are flagged. -
Aggregation. Computes fleet-wide totals (runs, users, categories), weighted success rate, estimated revenue, and identifies stale actors (zero runs in 30 days). Ranks actors by runs and users to surface the top 10.
-
Output. Pushes the complete analytics object to the default dataset and charges one PPE event.
How Much Does It Cost?
ApifyForge Fleet Analytics uses Pay-Per-Event pricing at $0.10 per analysis.
| Scenario | Events | Cost |
|---|---|---|
| One-time fleet overview | 1 | $0.10 |
| Weekly monitoring (4x/month) | 4 | $0.40 |
| Daily monitoring (30x/month) | 30 | $3.00 |
In addition to the PPE charge, standard Apify platform compute costs apply based on memory usage and runtime. A typical analysis of 200+ actors completes in under 2 minutes using 256 MB of memory.
Tips
- Schedule regular runs. Set up a daily or weekly schedule to track trends over time. Each run creates a new dataset entry, giving you historical data for your ApifyForge dashboard.
- Investigate high-fail actors first. The
actorsWithHighFailRatearray is sorted by failure rate. Fix these to improve your fleet-wide success rate and prevent user churn. - Revenue gaps. Compare
actorsWithNoRuns30dagainst the rest. Actors with zero runs but historical traffic may need updated descriptions or bug fixes to regain users. - Category strategy. Use
categoryBreakdownto see where you are concentrated. Diversifying across categories reduces dependency on a single market segment. - Cross-reference with Quality Monitor. Pair fleet analytics with the ApifyForge Quality Monitor to correlate quality scores with run volume and revenue.
Limitations
- Run sampling limit. Only the last 100 runs per actor are sampled. For actors with very high run volumes, the 30-day failure rate may not reflect all runs.
- Revenue is estimated. Revenue calculations use
runs30d * ppePriceas a proxy. Actual revenue depends on event-level billing, which may differ from 1:1 run-to-event ratios for some actors. - Store stats lag. Apify Store statistics may be cached and lag behind real-time data by up to 24 hours.
- Single account only. This actor analyzes one Apify account per run. Multi-account analysis requires separate runs with different tokens.
- API rate limits. For very large fleets (500+ actors), the actor makes hundreds of API calls and may take several minutes. The 5-minute timeout is usually sufficient for up to 300 actors.
Frequently Asked Questions
How long does a fleet analysis take? Typically 30-120 seconds for 50-200 actors. Each actor requires 2-3 API calls (detail + runs + optional store), so a fleet of 200 actors makes roughly 400-600 API calls. The 5-minute timeout is generous for most accounts.
Is my API token stored anywhere?
No. Your API token is used only during the run to make authenticated API calls. It is not logged, stored, or transmitted to any third party. The token is marked as isSecret in the input schema, meaning Apify redacts it from logs.
Can I use this with a free Apify account? Yes. The actor works with any Apify account that has a valid API token. However, free accounts may have fewer actors and lower API rate limits.
How does the weighted success rate work? The fleet-wide success rate is weighted by run volume. An actor with 10,000 runs and 99% success rate contributes more to the fleet score than an actor with 5 runs and 50% success rate. This prevents low-traffic actors from disproportionately skewing the fleet health metric.
Integration with ApifyForge Dashboard
This actor is one of five data sources that power the ApifyForge dashboard. When connected to your ApifyForge account, fleet analytics data is automatically visualized with trend charts, actor rankings, revenue projections, and health indicators. Schedule this actor to run daily and the dashboard will show historical trends, letting you track growth and spot issues before they become problems.