How Apify calculates your revenue, cost and profit
Apify’s Insights page shows Costs, Revenue, Profit and Margin. None of those words mean quite what a first read suggests: Revenue is not what your customers paid, and Cost is not everything the runs cost you. Here is each figure, in the order Apify computes it.
The five numbers, in order
| # | Figure | What it is |
|---|---|---|
| 1 | Charged to customers | What your users actually paid. Apify does not display this on its own. |
| 2 | Commission | Apify’s 20% share, taken off the charged amount. |
| 3 | Revenue | What is left for you. This is what the page labels Revenue. |
| 4 | Costs | Apify platform usage, for paying users’ runs only. |
| 5 | Profit | Revenue minus Costs. Roughly your payout. |
1. What your customers are charged
Under pay-per-event, each run accrues a charge per billable event: one for the run starting, one per dataset item, one per whatever custom events you defined, each at the price in your listing. Under pay-per-result it is simpler still, results multiplied by your price per 1,000.
That total is the gross charge. It is what appears on your customer’s Apify invoice, and it is the figure most creators picture when they think “revenue”. It is not what Apify pays you, and the Insights page never shows it on its own.
2. Apify’s commission
For pay-per-result and pay-per-event actors, Apify takes 20% of the gross charge.
The base matters, and it is easy to get wrong. The commission is calculated on the gross amount, before any platform cost is subtracted, not on what is left after costs. Apify’s own documentation describes the payout as the platform costs “plus a 20% commission”, which describes the same result from the other end: both deductions come out of the gross charge, and the order you subtract them in does not change the total.
Apify’s rental pricing model is a different arrangement with a different split, so the arithmetic here applies to the two usage-based models only.
3. Revenue means your share, not the charge
This is the single most misread figure on the page. Revenue on the Insights page is the gross charge after Apify’s commission, which is to say your share.
So an actor that charged customers $1,000 in a month shows Revenue of $800, not $1,000. If you have been reconciling against your own event counts and prices and finding Apify consistently 20% light, this is why.
4. Costs means Apify platform usage, for paying users only
Costs is what Apify charged you to run the actor: compute units, proxy traffic, storage, data transfer. Two rules decide what lands in it.
- Only paying users’ runs bill you. When someone on the free tier runs your actor, Apify absorbs the platform cost. It does not appear in Costs, and those runs generate no revenue either. Apify states this on the Insights page itself, and it is why the run count behind your Costs figure can be far lower than the run count you see elsewhere in the Console.
- It is only Apify’s own infrastructure. If your actor calls an LLM, a paid API or a third-party proxy, Apify has no way of knowing and that spend is not in this number. See below.
5. Profit and margin
Profit is Revenue minus Costs, and is approximately what you are paid out:
profit = (charged - commission) - platformCost
margin = profit / revenueMargin is profit over Revenue, so it is measured against your post-commission share, not against what customers paid. That is why healthy actors routinely show margins in the high nineties: the commission has already been taken out of the denominator, leaving only platform cost to drag it down.
Worked example
Say your actor charges customers $1,000 over a month and uses $50 of Apify platform resources serving those paying users.
| Charged to customers | $1,000 |
| Apify commission (20%) | -$200 |
| Revenue (shown on Insights) | $800 |
| Costs (platform usage) | -$50 |
| Profit | $750 |
| Margin | 93.75% |
The margin is 93.75% rather than 75% because it is measured against the $800 you keep, not the $1,000 your customers paid.
Why your numbers may still not tie out
Even with the formula right, the figures move:
- The current month is provisional. Apify says so at the top of the page. Customers who never pay their invoice, or who obtain a refund, are removed later, so this month’s revenue can fall.
- Today is live. The current day updates continuously and is not settled.
- The payout invoice is the final word. The monthly invoice is what is actually paid; Insights is a running estimate up to that point.
- Discounts. If you run promotions, the discount filter at the top of the page changes what is included.
- Free-tier runs are missing everywhere. Neither their revenue (zero) nor their platform cost appears, so run counts will not reconcile against Costs.
Apify’s cost figure is not your full cost
The Costs column covers Apify’s infrastructure and nothing else. For a modern actor that is often the smaller half of the bill. If your actor calls OpenAI or Anthropic, pays for residential proxies, or hits a metered third-party API, none of it reaches Apify’s books, and the Profit figure on the Insights page is overstated by exactly that amount.
Track your AI and API spend alongside it
Apify Hub records what your runs spend outside Apify. Report each charge from inside the run with one call and it is folded into your profit and margin next to Apify’s own cost, broken down per source:
import { withAnalytics, trackCost } from '@apifyhub/analytics';
await withAnalytics({ apifyHubKey: process.env.APIFYHUB_KEY }, async () => {
const completion = await openai.chat.completions.create({ /* ... */ });
trackCost('openai', 0.0032);
const page = await fetch(proxiedUrl);
trackCost('proxy-provider', 0.0004);
});Your dashboard then shows a Costs panel with the spend per source, and a margin that accounts for the money Apify cannot see.
Start tracking your true margin
Where to go next
- How to tell if an Apify user is paying — the flag that decides whether a run bills you at all.
- Add free-tier limits to your actor — cap the runs that earn nothing.
- Apify Pricing Calculator — turn a target margin into listing prices.
Spotted a bug, or want a guide on something else?
support@mail.apifyhub.com