Between November 3 and 4, 2026 (UTC), we pulled 107,156 Actors across 8,714 authors from the public Apify Store API. Just 101 authors (1.2%) accounted for 80.1% of summed 30-day Actor users, while 56.3% of Actors had 1 user and 18.1% had 0. Nine days later, the catalog had grown to 119,113 listings. On November 15, 2026, GET /v2/store moves to a new search backend that breaks standard pagination and drops several stats fields.
This post reports the full-catalog numbers and a matched cohort of recent launches, then a Python script that keeps working after November 15.
User concentration across 107,156 Actors
Apify's Store catalog expanded rapidly in 2026. In our November 4 snapshot (107,156 Actors fetched out of 108,603 reported by the API), an estimated 90.5% (96,953) of existing Actors were created in 2026, including 29,161 in October alone. An estimated 81% of authors (7,021 of 8,714) published their first Actor in 2026; this estimate probably overcounts new authors, because we took each author's oldest listed Actor as their first.
By November 13, 2026 (02:08 UTC), a fresh public API check showed 119,113 total catalog entries, an increase of 10,510 listings in 9 days, or roughly 1,168 new entries per day.
Usage has not spread evenly across that supply. In the November 4 snapshot:
30-day users (totalUsers30Days) | Actors | Share |
|---|---|---|
0 | 19,352 | 18.06% |
1 | 60,302 | 56.27% |
2-9 | 21,361 | 19.93% |
10-99 | 5,164 | 4.82% |
100-999 | 838 | 0.78% |
1,000+ | 139 | 0.13% |
Only 5.73% of Actors reached 10 or more 30-day users, and 0.91% reached 100 or more.
A totalUsers30Days of 1 needs care. Apify runs automated daily health checks on Store Actors with prefilled inputs. In the November 4 data, Actors with 0 or 1 30-day users had a median of 28 and 27 runs per 30 days, matching one automated check per day. The public data cannot distinguish an outside user from the author or from that check.
At the author level, concentration is even sharper:
- The top
1.16%of authors (101of8,714) accounted for80.12%of all 30-day Actor-user pairs (1,033,771out of1,290,301). The author Gini coefficient was0.969. - Excluding 6 official Apify and staff accounts (
188Actors,28.8%of total 30-day users), the top 20 independent authors held48.0%of remaining 30-day users, and the top 100 held72.4%(November 6 analysis of the November 4 snapshot). - Publishing volume alone does not put an author in the top tier. Middle-tier authors (
478accounts holding the next15%of users) published a median of50Actors compared with43for top-tier authors, yet had a median of24830-day users per author compared with3,040in the top tier (14.89%of total users vs.80.12%). Meanwhile, the top 20 independent authors had a median of22Actors,21of them with 30-day users.
Category supply vs. demand
Because an Actor can belong to multiple categories, comparing each category's share of total users against its share of Actors (user share / Actor share) shows where supply is crowded relative to demand.
In the November 4 full-catalog data (13 of 25 categories, chosen by size and ratio):
| Category | Actors | 30-day users | Demand / supply ratio | Actors with 10+ users |
|---|---|---|---|---|
SOCIAL_MEDIA | 14,962 | 701,552 | 3.89x | 15.60% |
OPEN_SOURCE | 1,167 | 45,753 | 3.26x | 4.03% |
VIDEOS | 5,148 | 188,177 | 3.04x | 12.26% |
TRAVEL | 3,750 | 78,280 | 1.73x | 6.05% |
LEAD_GENERATION | 33,448 | 538,554 | 1.34x | 7.79% |
AI | 13,775 | 189,574 | 1.14x | 5.83% |
SEO_TOOLS | 7,587 | 81,103 | 0.89x | 6.81% |
JOBS | 9,492 | 99,936 | 0.87x | 6.39% |
AUTOMATION | 37,609 | 372,447 | 0.82x | 6.41% |
ECOMMERCE | 17,915 | 131,731 | 0.61x | 5.97% |
DEVELOPER_TOOLS | 29,880 | 192,990 | 0.54x | 4.73% |
BUSINESS | 12,525 | 24,047 | 0.16x | 2.25% |
| (no category) | 12,957 | 24,912 | 0.16x | 1.64% |
Our November 13 sample uses cumulative totalUsers rather than 30-day users, and over-represents popular Actors, so read it as a cross-check. In that sample the four highest-ratio categories of the full data are also above parity: SOCIAL_MEDIA 2.30x on 3,557 Actors, OPEN_SOURCE 10.05x on 65, VIDEOS 2.50x on 1,000, and TRAVEL 2.11x on 565 (the last two sit outside the top 12 by Actor count plotted in Figure 2). Uncategorized listings (0.03x) and BUSINESS (0.07x) sit near the bottom. Leaving categories blank goes with low usage: only 1.64% of uncategorized Actors in the full catalog reached 10+ users. After November 15 the category values themselves change (see the list below), so category counts before and after the switch are not directly comparable.
What differs in a matched cohort of recent launches
Actors created between August 12 and October 11, 2026, split into 701 that reached at least 20 30-day users and 1,326 matched controls with 3 or fewer users (same primary function and creation month). One large difference was the audience of the author's other Actors: measured on November 10, their combined 30-day users had a median of 1,370 for the winners' authors and 180 for the controls' authors, while the winners' authors listed a median of 92 Actors against 113. We report this as a correlation; the audience was measured after launch, so it may partly follow from the winners.
What breaks on November 15, 2026 in GET /v2/store
If you run scripts against https://api.apify.com/v2/store (or apify-client), Apify's October 30, 2026 changelog says the endpoint moves to a new search backend on November 15, 2026. Most of these changes return 200 OK, so loops can break without an error:
- Passing
searchcaps results at 100 items on one page.limitdrops from1,000to100,offsetis ignored without an error, and there is no second page.totalandcountalso change meaning whensearchis present: both equal the number of items returned (<= 100), not total matches. Any loop written aswhile offset < total:stops after one page. -
sortByis ignored on all calls. PassingsortBy=popularityorsortBy=newestreturns200 OKwithout error, yet results return in relevance order (withsearch) or default Store order (withoutsearch). - Top-level rating and bookmark fields disappear.
bookmarkCount,actorReviewCount, andactorReviewRatingare removed from the top level of each item. Ratings remain understats.actorReviewRatingandstats.actorReviewCount. - Build and 30-day run histograms are removed from
stats.stats.bookmarkCount,stats.publicActorRunStats30Days,stats.totalBuilds,stats.totalMetamorphs, andstats.lastRunStartedAtare dropped. - User-window fields become optional.
stats.totalRuns,stats.totalUsers7Days,stats.totalUsers30Days, andstats.totalUsers90Daysmay be absent, whilestats.totalUsersstays. Several item fields, includinguserFullName,notice,badgeandisWhiteListedForAgenticPayments, may also be absent, andcurrentPricingInfokeeps onlypricingModelplus event prices. - Category values change.
categorytakes comma-separated category IDs (an Actor must match all of them), categories are assigned automatically from a larger list, and an unknown value returns400. Old keys such asSOCIAL_MEDIAstill work, but the same key can return different Actors, so category counts before and after November 15 are not directly comparable.
As of November 13, 2026 (02:08 UTC), GET /v2/store still returned the old schema: isVerified and readmeSummary were absent, and stats.totalUsers30Days was present on all sampled items.
How to keep counting after November 15
Listings without search keep limit/offset paging and accurate total counts. In our own tests before the switch, a single query stopped returning items past offset 15,000; we have not confirmed that window on the new backend, so keep each query below it. To keep tracking the Store:
- Drop
searchandsortByfrom catalog crawls. Usecategory,username, orpricingModelfilters to slice a catalog under the offset window, and sort locally. After November 15 category IDs and assignments change, so category-based slices are not comparable across the switch. - Read ratings from
stats.actorReviewRatingandstats.actorReviewCount. - Base cross-switch series on
stats.totalUsers(or fall back to it whenstats.totalUsers30Daysis absent), and avoid indexing directly intopublicActorRunStats30Days.
Here is the paging core from our reproducible script (analyze_store.py):
offset, seen_ids, items = 0, set(), [] while len(items) < max_items and offset < 15000: batch_limit = min(1000, max_items - len(items), 15000 - offset) params = { "limit": batch_limit, "offset": offset, "includeUnrunnableActors": "true", # full catalog count } resp = session.get("https://api.apify.com/v2/store", params=params, timeout=30) resp.raise_for_status() payload = resp.json().get("data") or {} batch = payload.get("items") or [] if not batch: break for it in batch: aid = it.get("id") if aid and aid not in seen_ids: seen_ids.add(aid) items.append(it) offset += len(batch) if len(batch) < batch_limit: break time.sleep(0.6) # stay under 2 req/s The full script also retries 429 and 5xx responses and enforces --delay between requests; this excerpt is the paging core.
Running this on November 13 with --max-items 15000 made 15 requests, reported catalog_total_reported = 119,113, and returned 13,990 distinct Actors across 2,082 authors. 1,010 rows repeated an Actor already seen, most likely because the Store order shifted while we paged; the same shift can also skip Actors, so the 15 pages held 13,990 distinct Actors rather than a clean top 15,000. In that slice, 21 authors (1%) held 67.48% of cumulative totalUsers (10,713,587), and 95.39% (13,345) of sampled Actors were priced per event versus 4.61% (645) free.
Figure 1: Not the full catalog: cumulative-user buckets and cumulative author concentration curve from a 13,990-Actor public API sample collected on November 13, 2026 (02:08 UTC, catalog total 119,113). Source: analyze_store.py.
Figure 2: Demand-to-supply ratio across the top 12 categories by count in the November 13, 2026 sample (n = 13,990). Source: out/category_summary.csv.
Scope and limitations
- Sample bias in the 15-page run: in our tests,
GET /v2/storereturned at most15,000items per query in Store order, and the quickreproscript stops at that window, so it over-represents active Actors:32.69%of sampled Actors had10or more 30-day users, against5.73%in the full107,156-Actor harvest from November 4. To cover more of the catalog after November 15, slice the crawl with the filters the changelog recommends (category, username, pricingModel) and keep each slice under the window. - Actor-user sums: author totals sum per-Actor user counts, so one developer running two Actors by the same author is counted twice.
- Correlations only: the 30-to-90-day cohort numbers are observational comparisons.
The full reproducible Python script, sample CSVs, and charts are at github.com/kizukidata/apify-store-analysis.
We publish Actors on the Apify Store as Kizuki, so we are not a neutral party.
Sources
- Full-catalog snapshot (
107,156Actors,8,714authors): collected between2026-11-03and2026-11-04 UTCfrom publicGET /v2/store,/v2/users/{u}, and/v2/acts/{id}. - Author ranking (excluding
6official/staff accounts): computed2026-11-06from the2026-11-04snapshot. - Early-traction cohort (
701vs.1,326Actors created2026-08-12to2026-10-11): collected2026-11-10 UTC. - Live Store sample (
13,990Actors, catalog total119,113): collected2026-11-13 02:08 UTCviaanalyze_store.py. - API migration details: Apify Store API changelog (
2026-10-30), apify.com/change-log/apify-store-api.
Disclosure: This article was created with the help of AI; we checked the data, code, and links against the sources above.

