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 (101 of 8,714) accounted for 80.12% of all 30-day Actor-user pairs (1,033,771 out of 1,290,301). The author Gini coefficient was 0.969.
  • Excluding 6 official Apify and staff accounts (188 Actors, 28.8% of total 30-day users), the top 20 independent authors held 48.0% of remaining 30-day users, and the top 100 held 72.4% (November 6 analysis of the November 4 snapshot).
  • Publishing volume alone does not put an author in the top tier. Middle-tier authors (478 accounts holding the next 15% of users) published a median of 50 Actors compared with 43 for top-tier authors, yet had a median of 248 30-day users per author compared with 3,040 in the top tier (14.89% of total users vs. 80.12%). Meanwhile, the top 20 independent authors had a median of 22 Actors, 21 of 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:

  1. Passing search caps results at 100 items on one page. limit drops from 1,000 to 100, offset is ignored without an error, and there is no second page. total and count also change meaning when search is present: both equal the number of items returned (<= 100), not total matches. Any loop written as while offset < total: stops after one page.
  2. sortBy is ignored on all calls. Passing sortBy=popularity or sortBy=newest returns 200 OK without error, yet results return in relevance order (with search) or default Store order (without search).
  3. Top-level rating and bookmark fields disappear. bookmarkCount, actorReviewCount, and actorReviewRating are removed from the top level of each item. Ratings remain under stats.actorReviewRating and stats.actorReviewCount.
  4. Build and 30-day run histograms are removed from stats. stats.bookmarkCount, stats.publicActorRunStats30Days, stats.totalBuilds, stats.totalMetamorphs, and stats.lastRunStartedAt are dropped.
  5. User-window fields become optional. stats.totalRuns, stats.totalUsers7Days, stats.totalUsers30Days, and stats.totalUsers90Days may be absent, while stats.totalUsers stays. Several item fields, including userFullName, notice, badge and isWhiteListedForAgenticPayments, may also be absent, and currentPricingInfo keeps only pricingModel plus event prices.
  6. Category values change. category takes comma-separated category IDs (an Actor must match all of them), categories are assigned automatically from a larger list, and an unknown value returns 400. Old keys such as SOCIAL_MEDIA still 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 search and sortBy from catalog crawls. Use category, username, or pricingModel filters 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.actorReviewRating and stats.actorReviewCount.
  • Base cross-switch series on stats.totalUsers (or fall back to it when stats.totalUsers30Days is absent), and avoid indexing directly into publicActorRunStats30Days.

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.

Apify Store user distribution and author concentration, cumulative totalUsers sample of 13,990 Actors, November 13, 2026

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.

Category demand to supply ratio, top 12 categories by count, November 13, 2026

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/store returned at most 15,000 items per query in Store order, and the quick repro script stops at that window, so it over-represents active Actors: 32.69% of sampled Actors had 10 or more 30-day users, against 5.73% in the full 107,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,156 Actors, 8,714 authors): collected between 2026-11-03 and 2026-11-04 UTC from public GET /v2/store, /v2/users/{u}, and /v2/acts/{id}.
  • Author ranking (excluding 6 official/staff accounts): computed 2026-11-06 from the 2026-11-04 snapshot.
  • Early-traction cohort (701 vs. 1,326 Actors created 2026-08-12 to 2026-10-11): collected 2026-11-10 UTC.
  • Live Store sample (13,990 Actors, catalog total 119,113): collected 2026-11-13 02:08 UTC via analyze_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.