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/development/programming_interface/status_messages.md
+13-1Lines changed: 13 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ import TabItem from '@theme/TabItem';
15
15
Each Actor run has a status, represented by the `status` field. The following table describes the possible values:
16
16
17
17
|Status|Type|Description|
18
-
|---|---|---|
18
+
|---|---|---|
19
19
|`READY`|initial|Started but not allocated to any worker yet|
20
20
|`RUNNING`|transitional|Executing on a worker|
21
21
|`SUCCEEDED`|terminal|Finished successfully|
@@ -76,3 +76,15 @@ async def main():
76
76
77
77
</TabItem>
78
78
</Tabs>
79
+
80
+
## Communicate limitations
81
+
82
+
If your Actor has specific limitations for users on the Apify free plan (e.g., restricted features, limited results), communicate these clearly to avoid confusion.
83
+
84
+
- Status messages: Use `Actor.setStatusMessage` or `Actor.exit` message to explain why a run finished early or failed (e.g., "This Actor has a special daily limit for free plan users. This was set by the Actor developer, not Apify. Upgrade to continue.").
85
+
- Provide clear error messages: Don't return generic system errors or fail the run in a way that looks like a platform issue. This frustrates users and makes troubleshooting difficult.
86
+
- Wrong: API usage is limited to 10 results
87
+
- Right: This Actor only allows up to 10 results for free users. Upgrade to a paid plan to receive unlimited results.
88
+
- Documentation: Clearly state any limitations in your Actor's `README` and input schema descriptions so users know what to expect before running the Actor.
89
+
- General restrictions (like limiting the number of results) must be explained in the top-level input schema description that renders above the input editor UI.
90
+
- Feature-specific limitations must be included in the title of an input field. The title must include explanation in parenthesis such as `(paying users only)` or `(limited for free users)`. E.g. `Max comments (paying users only)`.
| Store discounts | ❌ Single price only | ✅ Store discounts available | ✅ Store discounts available|
38
+
| Marketing boost | Standard visibility | Standard visibility | Priority store placement|
39
+
| Commission opportunities| Standard 20% | Standard 20% | Standard 20%|
40
+
| Custom event billing | Not available | Not available | ✅ Charge for any event|
41
+
| Per-result billing | Not available| ✅ Charge per dataset item | Optional (via event; automatic via `apify-default-dataset-item`) |
42
+
43
+
## Set up monetization
44
44
45
45
Navigate to your [Actor page](https://console.apify.com/actors?tab=my) in Apify Console, choose the Actor that you want to monetize, and select the Publication tab.
@@ -61,7 +61,7 @@ Follow the monetization wizard to configure your pricing model.
61
61
</TabItem>
62
62
</Tabs>
63
63
64
-
### Changing monetization
64
+
### Change monetization
65
65
66
66
You can change the monetization setting of your Actor by using the same wizard as for the setup in the **Monetization** section of your Actor's **Publication** tab.
67
67
@@ -100,6 +100,14 @@ If no action is taken, the payout will be automatically approved on the 14th, wi
100
100
101
101
If the monthly profit does not meet these thresholds, as per our [Terms & Conditions](https://apify.com/store-terms-and-conditions), the funds will roll over to the next month until the threshold is reached.
102
102
103
+
## Handle free users
104
+
105
+
When monetizing your Actor, you might want to limit features or usage for users on the Apify free plan. If you choose to do this, you _must_ handle it transparently:
106
+
107
+
- Communicate upfront: Clearly state any limitations in your Actor's `README` and input schema. Users should know about restrictions _before_ they run the Actor.
108
+
- Graceful exits: If a free user hits a limit, don't crash the Actor or return a system error. Instead, exit gracefully with a clear [status message](/platform/actors/development/programming-interface/status-messages#communicating-limitations) explaining the limit (e.g., "Free tier limit reached").
109
+
- Avoid confusion: Never make a policy restriction look like a bug or platform error.
110
+
103
111
## Actor analytics
104
112
105
113
Monitor your Actors' performance through the [Actor Analytics](https://console.apify.com/actors/insights/analytics) dashboard under **Development > Insights > Analytics**.
@@ -115,7 +123,7 @@ The analytics dashboard allows you to select specific Actors and view key metric
115
123
116
124
All metrics can be exported as JSON for custom analysis and reporting.
117
125
118
-
## Promoting your Actor
126
+
## Promote your Actor
119
127
120
128
Create search-engine-optimized descriptions and README files to improve search engine visibility. Share your Actor on multiple channels:
0 commit comments