This is the whole cost model, assembled from Apify's own documentation, so you can forecast it instead of discovering it. Verified 1 October 2026 against apify.com/pricing and docs.apify.com, linked throughout.
The plans
| Plan | Monthly | Included usage | Max RAM | Max concurrent runs | CU price | Residential proxy |
|---|---|---|---|---|---|---|
| Free | $0 | $5 | 16 GB | 5 | $0.20 / CU | $8 / GB |
| Starter | $19 | $19 | 64 GB | 32 | $0.20 / CU | $8 / GB |
| Scale | $199 | $199 | 256 GB | 128 | $0.16 / CU | $7.50 / GB |
| Business | $999 | $999 | 512 GB | 256 | $0.13 / CU | $7 / GB |
Two small discrepancies between Apify's own pages, noted for accuracy rather than as a complaint: the pricing page lists 5 concurrent runs on Free while docs/limits says 25, and the pricing page lists 64 GB max RAM on Starter while docs/limits says 32,768 MB. Cite the pricing page as the customer facing figure, and be aware one of the two will eventually be corrected.
What you are actually metered on
Apify bills four usage categories plus Actor fees. Per the usage and resources docs, those categories are compute units, data transfer, proxy, and storage operations (key value store, dataset and request queue reads and writes).
Compute units, the one that surprises people
The formula is the single most important thing to understand:
> A compute unit is Memory (MB) x Duration (hours). 1024MB of memory for 1 hour equals 1 CU.
Read that again with a scraping workload in mind. Cost is driven by how long the run takes, not by how much data you received. Two runs returning identical business output bill differently if one spent longer retrying, waiting on a slow page, rendering JavaScript or getting blocked.
This is why Apify spend tracks target difficulty. When Instagram tightens something, your runs take longer, your CU burn rises, and your bill goes up while your output stays flat. Nothing is broken, that is the model working as designed.
It also means allocating more memory to make a run faster does not necessarily save money, because CU is the product of the two. Doubling memory to halve duration is cost neutral in theory, and worse in practice if the extra memory does not actually halve the time.
Data transfer
Metered separately. Ordinary for cloud infrastructure, easy to forget in a model.
Proxy bandwidth
Residential proxy is $7 to $8 per GB depending on plan, and datacenter IPs beyond the included pool run $0.60 to $1 per IP. Social platforms are precisely the targets that push you onto residential IPs, so for social scraping this is rarely optional.
Storage operations
Reads and writes against datasets, key value stores and request queues are counted. Individually trivial, material at volume.
Then the Actor charges you separately
On top of platform usage, each Actor sets its own price. The current model is pay per event, documented here: an event is a measurable action the Actor charges for, commonly one result. Developers keep 80% of revenue.
Two consequences that cause most of the confusion:
The headline price is the Business plan price. Every "from $1.50 / 1,000 results" on a Store listing is the best case tier. The same apify/instagram-scraper page shows $2.70 per 1,000 on Free against $1.50 on Business, which is 80% more for identical output. apify/instagram-hashtag-scraper shows $2.60 on Free, $2.30 on Starter and $1.90 on Business. So the cheap plan raises your unit cost, which inverts the usual intuition about committing to a bigger plan.
Platform costs may be charged on top of the per result fee. The monetization docs note that developers can optionally enable a "pay per event plus usage" toggle, passing platform usage through to you in addition to the per result price. Whether that applies is per Actor, which makes a blended cost estimate from listing pages unreliable.
Prepaid usage expires
From Apify's pricing FAQ, quoted directly: "Unused usage credits are not rolled over to the next billing cycle, and they expire at the end of the billing cycle."
So you pre buy capacity monthly, forfeit what you do not use, and pay overage when a target gets harder than expected. Paying users can continue past the allowance and are charged overage up to the limit configured in billing. Free users are blocked until the next cycle.
Overage limits are configurable in Billing then Limits in the Console, and that is worth setting on day one. On proactive alerting before you hit a threshold, I could not find any Apify primary source documenting it, so treat "Apify warns you mid cycle" as unverified either way and rely on your own limit instead.
The rental model retired on 1 October 2026
If your bill changed this month, start here. Apify's rental monetization docs state the timeline plainly:
- 1 April 2026: no new rental Actors could be published and existing rental prices were frozen
- 1 October 2026: rental Actors fully retired, all remaining Actors migrated to pay per usage pricing
Under the old model a developer could charge a flat monthly rent, for example a 7 day free trial then $30 a month, and you knew your cost. That option is gone. Anything you were renting is now metered. If you budgeted on a flat Actor rent, that line is now variable.
Storage retention, so you are not surprised twice
From Apify's own help and docs:
- Unnamed (default) storages expire after 7 days on Free and 31 days on standard paid plans
- Named storages are retained until you delete them
- On Free, storage usage docs state your 10 most recent runs are retained for 4 months
- Retention is extendable in Billing then Limits
A widely repeated "3 to 180 days configurable" range circulates in third party posts. I could not confirm it on any Apify page, so do not plan against it.
Other documented hard limits worth knowing from docs/limits: build timeout 1800 seconds, maximum log size 10,485,760 characters, maximum 10 metamorphs per run, and a 2,000 column cap on tabular XLSX and CSV exports.
Rate limits
Per the API docs, limits are per resource, meaning a single Actor, run, dataset or key value store:
- Default 60 requests per second per resource
- 35/s for request queue batch operations and list and lock head
- 100/s for key value store ZIP download
- 200/s for key value store CRUD and key listing
- 350/s for request queue CRUD and lock operations
- 400/s for running an Actor or task, metamorph, and pushing to a dataset
Exceeding returns 429 with {"error": {"type": "rate-limit-exceeded"}}. The documented client strategy is exponential backoff starting at 500ms with jitter, and both the JS and Python clients implement it transparently. Credit to Apify: these are generous limits and the clients handle backoff for you.
A worked forecast
Say you want 100,000 Instagram profiles a month.
Actor fees: apify/instagram-profile-scraper at the $1.60 per 1,000 floor is $160. On Free or Starter, more.
Compute: unknowable in advance from published figures, because CU is memory times duration and duration depends on Instagram's current posture. You have to measure it on your own workload, and remeasure when it changes.
Proxy: residential at $7 to $8 per GB, sized by how many bytes 100,000 profile fetches move, which again you measure.
Storage operations: 100,000 dataset writes plus reads.
Plan: you need a tier whose included usage covers the total, and the per result price falls as the tier rises, so the cheapest plan is often not the cheapest outcome.
The honest conclusion is that Apify's cost is measurable but not forecastable from documentation. You pilot it, observe real CU burn and proxy bytes, then extrapolate, and revisit whenever a target platform changes.
What a credit meter looks like instead
For contrast, not as a claim that it suits every job. The Roster API meters one thing: credits. A profile read is 1 credit, a search query returning up to 100 filtered records is 10 credits. Published plans are Starter $98 for 25,000 credits at 60 req/min, Growth $398 for 150,000 at 120 req/min, and Scale $998 for 500,000 at 300 req/min, with add on packs at 5K for $25, 25K for $125 and 100K for $500.
So 100,000 profile reads is 100,000 credits, which sits inside Growth with 50,000 credits spare. No compute dial, no proxy line, no storage operations, no per Actor fee, no tier dependent unit price. You can compute next month's bill from next month's expected request count.
The tradeoff is real and worth stating: a credit meter only works because the vendor fixed the scope. You get creator records from a maintained graph, not arbitrary scraping of any site you choose. Apify's variable cost buys genuine generality, including 78,000+ Actors, custom Actors you write yourself, and Crawlee which you can self host for free. If you need that generality, variable cost is the price of it and it is a fair trade.
If what you need is creator records, a fixed meter is the cheaper way to buy them, and the finance conversation is a lot shorter. The UGC Roster API exposes creator search, briefs, campaigns and payouts behind one key at UGCRoster.
See also the full Apify alternative breakdown, the migration guide, Scrape Creators pricing explained and how creator data APIs compare.
Docs at api.ugcroster.com/docs, reference at api.ugcroster.com/reference, keys at api.ugcroster.com/keys.
FAQ
What is an Apify compute unit?
Memory times duration. Apify's docs define 1 CU as 1024MB of memory running for 1 hour. Because duration is a factor, cost tracks how long a run takes rather than how much data it returns, so identical output can cost different amounts depending on retries, page load times and blocking. CU prices range from $0.20 on Free and Starter down to $0.13 on Business.
Why was my Apify bill higher than expected?
The most common causes, in rough order: the per result price you quoted was the Business plan rate and you are on a lower tier; compute units rose because the target got harder while output stayed flat; residential proxy bandwidth at $7 to $8 per GB was not in your model; prepaid usage expired unused and you then paid overage; or an Actor you rented was migrated to pay per usage when rental retired on 1 October 2026.
Do unused Apify credits roll over?
No. Apify's pricing FAQ states that unused usage credits are not rolled over and expire at the end of the billing cycle. Paying users can exceed the allowance and are charged overage up to the limit set in Billing then Limits. Free users are blocked until the next cycle.
How do I cap Apify spend?
Set a usage limit in Billing then Limits in the Apify Console. That is the documented control. I could not find Apify primary documentation of proactive mid cycle threshold alerts, so do not rely on being warned, set the hard limit yourself and monitor CU burn during any pilot.
What happened to Apify rental Actors?
They were retired. Apify's docs state no new rental Actors could be published from 1 April 2026, and that on 1 October 2026 rental Actors were fully retired and all remaining ones migrated to pay per usage pricing. Flat monthly Actor rent is no longer available, so former rental costs are now metered usage.
Is Apify cheaper than a creator data API?
For raw scraping volume it often is, especially on a Business plan where per result prices are lowest. For creator work the comparison changes shape, because Apify's cost is variable and per result while a creator API's is fixed and per record, and because a search that returns 100 filtered creators for 10 credits has no Apify equivalent you do not have to build. Compare total cost of the delivered feature, including the candidates you scrape and discard, rather than price per request.