Skip to content

Commit d532341

Browse files
docs: First round of reviews
1 parent 707fc4f commit d532341

File tree

5 files changed

+50
-31
lines changed

5 files changed

+50
-31
lines changed

sources/platform/actors/publishing/monetize/index.mdx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,15 @@ For a detailed comparison of pricing models from the perspective of your users,
3030
The following table compares the two main pricing models available for monetizing your Actors:
3131

3232
| Feature/Category | Rental pricing | Pay-per-result (PPR) | Pay-per-event (PPE) |
33-
|-------------------------|-------------------------------|------------------------------|-------------------------------|
34-
| Revenue scalability | Capped at monthly fee | Unlimited, scales with usage | Unlimited, scales with usage |
35-
| AI/MCP compatibility | ❌ Not compatible | ✅ Fully compatible | ✅ Fully compatible |
36-
| User cost predictability| Confusing (rental + usage) | Clear, transparent pricing | Clear, transparent pricing |
37-
| Tiered pricing support | ❌ Single price only | ✅ Store discounts available | ✅ Store discounts available |
38-
| Marketing boost* | Standard visibility | Priority store placement | Priority store placement |
39-
| Commission opportunities| Standard 20% | Promotional 0% periods | Promotional 0% periods |
40-
| Custom event billing | Not available | Not available | ✅ Charge for any event |
33+
|-------------------------|-------------------------------|-------------------------------|-------------------------------|
34+
| Revenue scalability | Capped at monthly fee | Unlimited, scales with usage | Unlimited, scales with usage |
35+
| AI/MCP compatibility | ❌ Not compatible | ✅ Fully compatible | ✅ Fully compatible |
36+
| User cost predictability| Confusing (rental + usage) | Clear, transparent pricing | Clear, transparent pricing |
37+
| Store discounts | ❌ Single price only | ✅ Store discounts available | ✅ Store discounts available |
38+
| Marketing boost* | Standard visibility | Priority store placement | Priority store placement |
39+
| Commission opportunities| Standard 20% | Standard 20% | Promotional 0% periods |
40+
| Custom event billing | Not available | Not available | ✅ Charge for any event |
4141
| Per-result billing | Not available | ✅ Charge per dataset item | Optional (via event) |
42-
| Flat monthly fee | ✅ Yes | Not available | Not available |
4342

4443
## Setting up monetization
4544

sources/platform/actors/publishing/monetize/pay_per_event.mdx

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import TabItem from '@theme/TabItem';
1414

1515
The pay-per-event pricing model offers a flexible monetization option for Actors on Apify Store. Unlike pay per result, PPE allows you to charge users based on specific events triggered programmatically by your Actor's code.
1616

17-
PPE lets you define pricing for individual events. You can charge for specific events directly from your Actor by calling the [PPE charging API](/api/v2/post-charge-run), or through [JS](/sdk/js/reference/class/Actor#charge)/[Python](/sdk/python/reference/class/Actor#charge) SDK Common events include Actor start, dataset item creation, and external API calls.
17+
PPE lets you define pricing for individual events. You can charge for specific events directly from your Actor using the [JS](/sdk/js/reference/class/Actor#charge)/[Python](/sdk/python/reference/class/Actor#charge) SDK, or by calling the [PPE charging API](/api/v2/post-charge-run) directly. Common events include Actor start, dataset item creation, and external API calls.
1818

1919
The details on how your cost is computed can be found in [Example of a pay-per-event pricing model](#example-of-a-pay-per-event-pricing-model).
2020

@@ -315,21 +315,16 @@ Try to limit the number of events. Fewer events make it easier for users to unde
315315

316316
### Make events produce visible results
317317

318-
Try to make your event have tangible artifacts that users can see and understand (this might not be possible when using external APIs). Each charged event should produce something concrete in the user's dataset.
318+
For Actors that produce data, events should map to something concrete in the user's dataset or storage.
319319

320-
Good examples:
320+
However, we acknowledge that some events don't produce tangible results (such as running AI workflows or processing external API calls). This flexibility is what makes pay-per-event pricing powerful. It gives you the freedom to charge for special operations, complex workflows, and unique value propositions.
321+
322+
Examples:
321323

322324
- _"scraped-product" event_: Each charge adds one product record to the dataset
323325
- _"processed-image" event_: Each charge adds one processed image to the dataset
324326
- _"extracted-review" event_: Each charge adds one review to the dataset
325-
326-
Avoid charging for:
327-
328-
- Internal processing steps that don't produce visible results
329-
- API calls that don't generate user-visible data
330-
- Setup or configuration steps
331-
332-
This helps users understand exactly what they're paying for and builds trust in your pricing model.
327+
- _"ai-analysis" event_: Each charge processes one document through an AI workflow (no tangible output, but valuable processing)
333328

334329
### Use idempotency keys to prevent double charges
335330

@@ -342,23 +337,24 @@ You make your Actor pay-per-event and set the following pricing:
342337
- _"actor-start" event_: $0.10 per start
343338
- _"scraped-product" event_: $0.01 per product
344339
- _"scraped-product-detail" event_: $0.05 per detail
340+
- _"ai-analysis" event_: $0.15 per analysis
345341

346342
During the first month, three users use your Actor:
347343

348-
- _User 1 (paid plan)_: Starts Actor 5 times, scrapes 1,000 products, makes 50 product details
349-
- Charges: 5 × $0.10 + 1,000 × $0.01 + 50 × $0.05 = $0.50 + $10.00 + $2.50 = $13.00
350-
- _User 2 (paid plan)_: Starts Actor 2 times, scrapes 500 products, makes 20 product details
351-
- Charges: 2 × $0.10 + 500 × $0.01 + 20 × $0.05 = $0.20 + $5.00 + $1.00 = $6.20
352-
- _User 3 (free plan)_: Starts Actor 1 time, scrapes 100 products, makes 5 product details
353-
- Charges: 1 × $0.10 + 100 × $0.01 + 5 × $0.05 = $0.10 + $1.00 + $0.25 = $1.35
344+
- _User 1 (paid plan)_: Starts Actor 5 times, scrapes 1,000 products, makes 50 product details, runs 30 AI analyses
345+
- Charges: 5 × $0.10 + 1,000 × $0.01 + 50 × $0.05 + 30 × $0.15 = $0.50 + $10.00 + $2.50 + $4.50 = $17.50
346+
- _User 2 (paid plan)_: Starts Actor 2 times, scrapes 500 products, makes 20 product details, runs 10 AI analyses
347+
- Charges: 2 × $0.10 + 500 × $0.01 + 20 × $0.05 + 10 × $0.15 = $0.20 + $5.00 + $1.00 + $1.50 = $7.70
348+
- _User 3 (free plan)_: Starts Actor 1 time, scrapes 100 products, makes 5 product details, runs 3 AI analyses
349+
- Charges: 1 × $0.10 + 100 × $0.01 + 5 × $0.05 + 3 × $0.15 = $0.10 + $1.00 + $0.25 + $0.45 = $1.80
354350

355-
Let's say the underlying platform usage for the first user is $2.50, for the second $1.20, and for the third $0.30.
351+
Let's say the underlying platform usage for the first user is $3.20, for the second $1.50, and for the third $0.40.
356352

357353
Your profit is computed only from the first two users, since they are on Apify paid plans. The revenue breakdown is:
358354

359-
- _Total revenue_: $13.00 + $6.20 = $19.20
360-
- _Total underlying cost_: $2.50 + $1.20 = $3.70
361-
- _Your profit_: 80% of revenue minus costs = 0.8 × $19.20 - $3.70 = $11.66
355+
- _Total revenue_: $17.50 + $7.70 = $25.20
356+
- _Total underlying cost_: $3.20 + $1.50 = $4.70
357+
- _Your profit_: 80% of revenue minus costs = 0.8 × $25.20 - $4.70 = $15.46
362358

363359
## PPE event names
364360

sources/platform/actors/publishing/monetize/pay_per_result.mdx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ In this model, you set a price per 1,000 results. Users are charged based on the
1616

1717
The details on how your cost is computed can be found in [Example of a pay-per-result pricing model](#example-of-a-pay-per-result-pricing-model).
1818

19+
:::tip Additional benefits
20+
21+
Actors that implement pay-per-result pricing receive additional benefits, including increased visibility in the Apify Store and enhanced discoverability for users looking for monetized solutions.
22+
23+
:::
24+
1925
## Pay-per-result (PPR) vs. pay-per-event (PPE)
2026

2127
Unlike PPR, which charges based on the number of results produced, PPE lets you define pricing for individual events. You can charge for specific events directly from your Actor by calling the PPE charging API. Common events include Actor start, dataset item creation, and external API calls.
@@ -175,6 +181,12 @@ Test your Actor with various result volumes to determine optimal pricing. Start
175181

176182
Throughout all testing, monitor platform usage costs for each test run to calculate the true cost per result. This cost analysis is crucial for setting profitable pricing that covers your expenses while remaining competitive in the market.
177183

184+
:::tip Use Actor analytics for cost estimation
185+
186+
Check the **cost per 1000 results** chart in your Actor's analytics in Apify Console. This chart is computed from all runs of both paying and free users, giving you a comprehensive view of platform usage costs across different usage patterns. Use this data to better estimate the adequate price for your Actor.
187+
188+
:::
189+
178190
### Push at least one "error item" to the dataset
179191

180192
In PPR Actors, users are only charged when your Actor produces results in the dataset. If your Actor encounters invalid input or finds no results, it should still push at least one item to the dataset to ensure the user is charged for the attempt.

sources/platform/actors/publishing/monetize/pricing_and_costs.mdx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ When you monetize your Actor in Standby mode using pay per event mode only, you
5151
:::
5252

5353

54-
## How to attract larger customers of PPE and PPR Actors
54+
## Discount tiers and pricing strategy
5555

5656
Each user running your PPE or PPR Actor belongs to a discount tier:
5757

@@ -65,8 +65,14 @@ While optional, we recommend offering progressively lower prices for higher disc
6565

6666
Your platform costs are also lower for these higher tier, which helps maintain healthy profit margins. This is further detailed in the [Computing your costs for PPE and PPR Actors](#computing-your-costs-for-ppe-and-ppr-actors) section.
6767

68+
## Implementing discount tiers
69+
6870
By default, we advise against setting excessively high prices for _FREE_ tier users, as this can limit the ability to evaluate your Actor thoroughly. However, in certain situations, such as protecting your Actor from fraudulent activity or excessive use of your internal APIs, a higher price for _FREE_ tier users might be justified.
6971

7072
During an Actor run, you can identify the user's discount tier through Actor run environment variables or by querying user data via the Apify API. This capability allows you to offer premium features or differentiated service levels to users in higher discount tiers.
7173

74+
## Additional benefits and enterprise tiers
75+
76+
Actors that implement tiered pricing also receive additional benefits like enhanced visibility in the Apify Store, making your Actor more discoverable to potential users.
77+
7278
In addition to the standard tiers, Apify provides further tiers specifically for enterprise customers, including _PLATINUM_ and _DIAMOND_ tiers. If you are interested in offering enterprise-level services and attracting major clients, please contact us.

sources/platform/actors/publishing/monetize/rental.mdx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ sidebar_position: 1
77

88
**Learn how to monetize your Actor with the rental pricing model, offering users a free trial and a flat monthly fee, and understand how profit is calculated and the limitations of this approach.**
99

10+
:::warning Rental is becoming a legacy pricing model
11+
12+
Rental-priced Actors are harder to use from MCP and AI platforms. Switch to pay-per-event pricing for better adoption.
13+
14+
:::
15+
1016
---
1117

1218
With the rental model, you can specify a free trial period and a monthly rental price. After the trial, users with an [Apify paid plan](https://apify.com/pricing) can continue using your Actor by paying the monthly fee. You can receive 80% of the total rental fees collected each month.

0 commit comments

Comments
 (0)