What is Apify, and when it is the wrong tool
Apify runs small cloud programs called Actors, keeps their results in datasets and bills you for the run. Here is one run from input to export, a count of how Store Actors charge, and the cases where I would pick something else.
You need data from a website every week, the site has no API you can use, and you do not want to keep a scraper alive on your own server. Apify exists for that job. I run 26 Actors on it, so this page explains the platform the way I use it: one run from input to export, then what the public Store data says about how Actors charge you.
One run, from input to export
From input to export: one Actor run
Apify docs · 2026-10-23- Input · a JSON object with the Actor's settings, set in the Console, sent through the API or attached to a schedule
- Actor run · the platform runs the Actor as a serverless program and keeps its log and status
- Dataset · the run writes its results as items to a default dataset, one item per row
- Export · download the dataset as JSON, CSV, XML, Excel, HTML table, RSS or JSONL, or read it through the API
An Actor is a serverless program that takes a JSON input, does one job and can write structured output. You start it from the web Console, through the API or the command line, or on a schedule written as a cron expression. Each start is a run, with its own log and status.
The results go to the run's default dataset, one item per row. You can download a dataset as JSON, CSV, XML, Excel, an HTML table, RSS or JSONL, or read it through the API. The detail that is easy to miss: unnamed datasets expire after 7 days unless otherwise specified, so a scheduled job should save or forward its results instead of relying on the run history.
The same run is what you pay for. Depending on the Actor, you pay for the compute resources it used, for events the Actor's developer defined, or for both. The pricing guide on this site works through those models with a calculator.
How Store Actors charge, counted
Pricing models in a sample of Apify Store
Data table
| Item | Actors in the sample |
|---|---|
| pay per event | 7,720 |
| pay per event + usage | 1,773 |
| pay per usage | 436 |
Apify Store lists the public Actors. On 2026-10-23 the public Store API, with its default filters, reported about 96,000 Actors; two requests on the same day returned 95,926 and 96,241. The default filters leave out Actors that cannot be run. The page at offset 15,000 came back empty, and the script stops at the first empty page, so a full count by pricing model is not possible this way.
What the API does allow is a sample. The first 15 pages sorted by popularity returned 12,509 records; after removing 2,580 that appeared on more than one page, 9,929 unique Actors were left. In that sample, 7,720 charge pay per event, 1,773 pay per event + usage, and 436 pay per usage, which is the API's FREE model: no Actor fee, only the platform usage.
So about 78% of the sample charges per event, another 18% per event plus platform usage, and about 4% only for platform usage. Everything the API lists by default looks different on that last point.
Filtered by model, the same API with its default filters reported 7,322 Actors with the FREE model and 88,472 with pay per event. Pay per usage is therefore a larger share of everything the API lists by default than of the popular Actors. These numbers do not tell me why; they only say that the Actor you find first is most likely priced per event.
The request behind the chart, and the rule that sorts each record into a model:
curl -s 'https://api.apify.com/v2/store?limit=1000&offset=0&sortBy=popularity'
currentPricingInfo.pricingModel = PAY_PER_EVENT
and isPPEPlatformUsagePaidByUser = true → pay per event + usage
currentPricingInfo.pricingModel = PAY_PER_EVENT → pay per event
currentPricingInfo.pricingModel = FREE → pay per usage
The repository keeps only the three counts. The raw response lists Actor and developer names, and none of them belong on this page.
When Apify is the wrong tool
I would not reach for it when the site already offers an official API that returns the same data; calling it directly removes a layer between you and the data. I would not use it for a one-off grab of a few pages either, because a browser and a copy-paste finish before the first run is configured.
The free plan is also a hard ceiling, not a soft one. It includes $5 of usage a month and blocks runs when that is spent, instead of billing more. That is fine for a weekly job and wrong for anything that must run on a deadline. If that weekly job starts from n8n, the n8n executions are a separate bill; the n8n pricing calculator covers that side.
What I tested and what is untested
The Store numbers come from requests the agent sent to the public API on 2026-10-23, without a token. The 2,580 records that came back twice suggest the popularity order shifted between requests; a sample taken on another day will not match exactly. I did not run an Actor for this page, so the run described above follows the documentation, not a logged run.
Drafted with an agent from the repository and the owner's notes; measurements in this page were run by the agent on 2026-10-23.
Reviewed by David S on 2026-10-25.