You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: sources/platform/actors/publishing/monetize/pay_per_event.mdx
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,7 +53,7 @@ An Actor's negative net profit does not affect the positive profit of another Ac
53
53
54
54
## Best practices for PPE Actors
55
55
56
-
Use our SDKs (JS and, Python or use [`apify actor charge`](/cli/docs/next/reference#apify-actor-charge-eventname) when using our Apify CLI) to simplify PPE implementation into your Actor. This tool can handle pricing, usage tracking, idempotency keys, API errors, and, event charging via an API.
56
+
Use our SDKs ([JS](/sdk/js/) and, [Python](/sdk/python/) or use [`apify actor charge`](/cli/docs/next/reference#apify-actor-charge-eventname) when using our Apify CLI) to simplify PPE implementation into your Actor. This tool can handle pricing, usage tracking, idempotency keys, API errors, and, event charging via an API.
57
57
58
58
You can also choose not to use it, but then you must handle API integration and possible edge cases manually.
59
59
@@ -237,7 +237,7 @@ async def main():
237
237
238
238
### Respect user spending limits
239
239
240
-
Finish the Actor run once charging reaches user-configured Maximum cost per run. Apify SDKs (JS and Python) return `ChargeResult` that helps determine when to finish.
240
+
Finish the Actor run once charging reaches user-configured maximum cost per run. Apify SDKs (JS and Python) return `ChargeResult` that helps determine when to finish.
241
241
242
242
The `eventChargeLimitReached` property checks if the current event type can be charged more. If you have multiple event types, analyze the `chargeableWithinLimit` property to see if other events can still be charged before stopping the Actor.
243
243
@@ -326,6 +326,12 @@ Examples:
326
326
-_`extracted-review` event_: Each charge adds one review to the dataset
327
327
-_`ai-analysis` event_: Each charge processes one document through an AI workflow (no tangible output, but valuable processing)
328
328
329
+
:::note Additional context
330
+
331
+
You can display a status message or push a record to the dataset to inform users about non-data actions performed by your Actor. This helps users understand what actions were charged for, even if those actions do not produce tangible output.
332
+
333
+
:::
334
+
329
335
### Use idempotency keys to prevent double charges
330
336
331
337
If you're not using the Apify SDKs (JS/Python), you need to handle idempotency (ensuring the same operation produces the same result when called multiple times) manually to prevent charging the same event multiple times.
Copy file name to clipboardExpand all lines: sources/platform/actors/publishing/monetize/rental.mdx
-6Lines changed: 0 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,12 +7,6 @@ sidebar_position: 1
7
7
8
8
**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.**
9
9
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
-
16
10
---
17
11
18
12
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