From 803f9d6dbd6aba47aba5dea23656908a6bca47b6 Mon Sep 17 00:00:00 2001 From: patrikbraborec Date: Wed, 17 Dec 2025 09:42:10 +0100 Subject: [PATCH 01/14] docs: Add more info about free users --- .../development/programming_interface/status_messages.md | 8 ++++++++ sources/platform/actors/publishing/monetize/index.mdx | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/sources/platform/actors/development/programming_interface/status_messages.md b/sources/platform/actors/development/programming_interface/status_messages.md index 832b8f9188..0d5aea0a4c 100644 --- a/sources/platform/actors/development/programming_interface/status_messages.md +++ b/sources/platform/actors/development/programming_interface/status_messages.md @@ -76,3 +76,11 @@ async def main(): + +## Communicating limitations + +If your Actor has specific limitations for users on the Apify free plan (e.g., restricted features, limited results), it is crucial to communicate these clearly to avoid confusion. + +- **Status messages**: Use `setStatusMessage` or the exit message to explain why a run finished early or failed (e.g., "Daily limit for free plan reached. Upgrade to continue."). +- **Avoid false errors**: Do not return generic system errors or fail the run in a way that looks like a platform issue. This frustrates users and makes troubleshooting difficult. +- **Documentation**: Clearly state any limitations in your Actor's `README` and input schema descriptions so users know what to expect before running the Actor. diff --git a/sources/platform/actors/publishing/monetize/index.mdx b/sources/platform/actors/publishing/monetize/index.mdx index 1c0df062ce..55653f27c0 100644 --- a/sources/platform/actors/publishing/monetize/index.mdx +++ b/sources/platform/actors/publishing/monetize/index.mdx @@ -40,6 +40,14 @@ The following table compares the two main pricing models available for monetizin | Custom event billing | Not available | Not available | ✅ Charge for any event | | Per-result billing | Not available | ✅ Charge per dataset item | Optional (via event; automatic via `apify-default-dataset-item`) | +## Handling free users + +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: + +- **Communicate upfront**: Clearly state any limitations in your Actor's `README` and input schema. Users should know about restrictions _before_ they run the Actor. +- **Graceful exits**: If a free user hits a limit, do not 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"). +- **Avoid confusion**: Never make a policy restriction look like a bug or platform error. + ## Setting up monetization 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. From 911fa3cf942bff0a46dbef363e9c6dc0f2cc9dec Mon Sep 17 00:00:00 2001 From: patrikbraborec Date: Wed, 17 Dec 2025 09:46:01 +0100 Subject: [PATCH 02/14] docs: Fix lint errors --- .../actors/development/programming_interface/status_messages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/development/programming_interface/status_messages.md b/sources/platform/actors/development/programming_interface/status_messages.md index 0d5aea0a4c..dcf809d709 100644 --- a/sources/platform/actors/development/programming_interface/status_messages.md +++ b/sources/platform/actors/development/programming_interface/status_messages.md @@ -15,7 +15,7 @@ import TabItem from '@theme/TabItem'; Each Actor run has a status, represented by the `status` field. The following table describes the possible values: |Status|Type|Description| -|--- |--- |--- | +|---|---|---| |`READY`|initial|Started but not allocated to any worker yet| |`RUNNING`|transitional|Executing on a worker| |`SUCCEEDED`|terminal|Finished successfully| From 449bebac8595d432cefc8b5de41759fedf906103 Mon Sep 17 00:00:00 2001 From: patrikbraborec Date: Wed, 17 Dec 2025 09:50:48 +0100 Subject: [PATCH 03/14] docs: Fix lint errors --- .../actors/publishing/monetize/index.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sources/platform/actors/publishing/monetize/index.mdx b/sources/platform/actors/publishing/monetize/index.mdx index 55653f27c0..53f3d4b11a 100644 --- a/sources/platform/actors/publishing/monetize/index.mdx +++ b/sources/platform/actors/publishing/monetize/index.mdx @@ -29,16 +29,16 @@ For a detailed comparison of pricing models from the perspective of your users, The following table compares the two main pricing models available for monetizing your Actors: -| Feature/Category | Rental | Pay-per-result (PPR) | Pay-per-event (PPE) | -|-------------------------|-------------------------------|-------------------------------|-------------------------------| -| Revenue scalability | Capped at monthly fee | Unlimited, scales with usage | Unlimited, scales with usage | -| AI/MCP compatibility | ❌ Not compatible | ✅ Fully compatible | ✅ Fully compatible | -| User cost predictability| Unpredictable (rental + usage) | Predictable | Predictable | -| Store discounts | ❌ Single price only | ✅ Store discounts available | ✅ Store discounts available | -| Marketing boost | Standard visibility | Standard visibility | Priority store placement | -| Commission opportunities| Standard 20% | Standard 20% | Standard 20% | -| Custom event billing | Not available | Not available | ✅ Charge for any event | -| Per-result billing | Not available | ✅ Charge per dataset item | Optional (via event; automatic via `apify-default-dataset-item`) | +| Feature/Category | Rental | Pay-per-result (PPR) | Pay-per-event (PPE) | +|--------------------------|--------------------------------|-------------------------------|------------------------------------------------------------------| +| Revenue scalability | Capped at monthly fee | Unlimited, scales with usage | Unlimited, scales with usage | +| AI/MCP compatibility | ❌ Not compatible | ✅ Fully compatible | ✅ Fully compatible | +| User cost predictability | Unpredictable (rental + usage) | Predictable | Predictable | +| Store discounts | ❌ Single price only | ✅ Store discounts available | ✅ Store discounts available | +| Marketing boost | Standard visibility | Standard visibility | Priority store placement | +| Commission opportunities | Standard 20% | Standard 20% | Standard 20% | +| Custom event billing | Not available | Not available | ✅ Charge for any event | +| Per-result billing | Not available | ✅ Charge per dataset item | Optional (via event; automatic via `apify-default-dataset-item`) | ## Handling free users From 51f609418d5ae6e5516b3708d61f6112919288c0 Mon Sep 17 00:00:00 2001 From: patrikbraborec Date: Wed, 17 Dec 2025 09:54:26 +0100 Subject: [PATCH 04/14] docs: Change position of text --- .../actors/publishing/monetize/index.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sources/platform/actors/publishing/monetize/index.mdx b/sources/platform/actors/publishing/monetize/index.mdx index 53f3d4b11a..54f17b49c6 100644 --- a/sources/platform/actors/publishing/monetize/index.mdx +++ b/sources/platform/actors/publishing/monetize/index.mdx @@ -40,14 +40,6 @@ The following table compares the two main pricing models available for monetizin | Custom event billing | Not available | Not available | ✅ Charge for any event | | Per-result billing | Not available | ✅ Charge per dataset item | Optional (via event; automatic via `apify-default-dataset-item`) | -## Handling free users - -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: - -- **Communicate upfront**: Clearly state any limitations in your Actor's `README` and input schema. Users should know about restrictions _before_ they run the Actor. -- **Graceful exits**: If a free user hits a limit, do not 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"). -- **Avoid confusion**: Never make a policy restriction look like a bug or platform error. - ## Setting up monetization 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. @@ -108,6 +100,14 @@ If no action is taken, the payout will be automatically approved on the 14th, wi 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. +## Handling free users + +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: + +- **Communicate upfront**: Clearly state any limitations in your Actor's `README` and input schema. Users should know about restrictions _before_ they run the Actor. +- **Graceful exits**: If a free user hits a limit, do not 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"). +- **Avoid confusion**: Never make a policy restriction look like a bug or platform error. + ## Actor analytics Monitor your Actors' performance through the [Actor Analytics](https://console.apify.com/actors/insights/analytics) dashboard under **Development > Insights > Analytics**. From 33584267b2b97400fa9d51dd3255645ac9fa8838 Mon Sep 17 00:00:00 2001 From: patrikbraborec Date: Wed, 17 Dec 2025 10:16:51 +0100 Subject: [PATCH 05/14] docs: Fix formatting --- .../development/programming_interface/status_messages.md | 6 +++--- sources/platform/actors/publishing/monetize/index.mdx | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sources/platform/actors/development/programming_interface/status_messages.md b/sources/platform/actors/development/programming_interface/status_messages.md index dcf809d709..1800374c92 100644 --- a/sources/platform/actors/development/programming_interface/status_messages.md +++ b/sources/platform/actors/development/programming_interface/status_messages.md @@ -81,6 +81,6 @@ async def main(): If your Actor has specific limitations for users on the Apify free plan (e.g., restricted features, limited results), it is crucial to communicate these clearly to avoid confusion. -- **Status messages**: Use `setStatusMessage` or the exit message to explain why a run finished early or failed (e.g., "Daily limit for free plan reached. Upgrade to continue."). -- **Avoid false errors**: Do not return generic system errors or fail the run in a way that looks like a platform issue. This frustrates users and makes troubleshooting difficult. -- **Documentation**: Clearly state any limitations in your Actor's `README` and input schema descriptions so users know what to expect before running the Actor. +- Status messages: Use `setStatusMessage` or the exit message to explain why a run finished early or failed (e.g., "Daily limit for free plan reached. Upgrade to continue."). +- Avoid false errors: Do not return generic system errors or fail the run in a way that looks like a platform issue. This frustrates users and makes troubleshooting difficult. +- Documentation: Clearly state any limitations in your Actor's `README` and input schema descriptions so users know what to expect before running the Actor. diff --git a/sources/platform/actors/publishing/monetize/index.mdx b/sources/platform/actors/publishing/monetize/index.mdx index 54f17b49c6..0864f3da38 100644 --- a/sources/platform/actors/publishing/monetize/index.mdx +++ b/sources/platform/actors/publishing/monetize/index.mdx @@ -104,9 +104,9 @@ If the monthly profit does not meet these thresholds, as per our [Terms & Condit 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: -- **Communicate upfront**: Clearly state any limitations in your Actor's `README` and input schema. Users should know about restrictions _before_ they run the Actor. -- **Graceful exits**: If a free user hits a limit, do not 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"). -- **Avoid confusion**: Never make a policy restriction look like a bug or platform error. +- Communicate upfront: Clearly state any limitations in your Actor's `README` and input schema. Users should know about restrictions _before_ they run the Actor. +- Graceful exits: If a free user hits a limit, do not 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"). +- Avoid confusion: Never make a policy restriction look like a bug or platform error. ## Actor analytics From 9b6c3233b11058e31582ee8cf4e0e112f148d3a4 Mon Sep 17 00:00:00 2001 From: Patrik Braborec Date: Mon, 5 Jan 2026 12:32:55 +0100 Subject: [PATCH 06/14] Update sources/platform/actors/development/programming_interface/status_messages.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Lukáš Křivka --- .../actors/development/programming_interface/status_messages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/development/programming_interface/status_messages.md b/sources/platform/actors/development/programming_interface/status_messages.md index 1800374c92..5dab8dad13 100644 --- a/sources/platform/actors/development/programming_interface/status_messages.md +++ b/sources/platform/actors/development/programming_interface/status_messages.md @@ -81,6 +81,6 @@ async def main(): If your Actor has specific limitations for users on the Apify free plan (e.g., restricted features, limited results), it is crucial to communicate these clearly to avoid confusion. -- Status messages: Use `setStatusMessage` or the exit message to explain why a run finished early or failed (e.g., "Daily limit for free plan reached. Upgrade to continue."). +- Status messages: Use `Actor.setStatusMessage` or `Actor.exit` message to explain why a run finished early or failed (e.g., "Daily limit for free plan reached. Upgrade to continue."). - Avoid false errors: Do not return generic system errors or fail the run in a way that looks like a platform issue. This frustrates users and makes troubleshooting difficult. - Documentation: Clearly state any limitations in your Actor's `README` and input schema descriptions so users know what to expect before running the Actor. From eab28a61127630286cc04abcaf07b4e44e78d664 Mon Sep 17 00:00:00 2001 From: Patrik Braborec Date: Mon, 5 Jan 2026 12:33:04 +0100 Subject: [PATCH 07/14] Update sources/platform/actors/development/programming_interface/status_messages.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Lukáš Křivka --- .../actors/development/programming_interface/status_messages.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/platform/actors/development/programming_interface/status_messages.md b/sources/platform/actors/development/programming_interface/status_messages.md index 5dab8dad13..82caf435d6 100644 --- a/sources/platform/actors/development/programming_interface/status_messages.md +++ b/sources/platform/actors/development/programming_interface/status_messages.md @@ -83,4 +83,6 @@ If your Actor has specific limitations for users on the Apify free plan (e.g., r - Status messages: Use `Actor.setStatusMessage` or `Actor.exit` message to explain why a run finished early or failed (e.g., "Daily limit for free plan reached. Upgrade to continue."). - Avoid false errors: Do not return generic system errors or fail the run in a way that looks like a platform issue. This frustrates users and makes troubleshooting difficult. + - Wrong: API usage is limited to 10 results + - Right: This Actor only allows up to 10 results for free users. Upgrade to a paid plan to receive unlimited results. - Documentation: Clearly state any limitations in your Actor's `README` and input schema descriptions so users know what to expect before running the Actor. From 1d922474c2029e8072d9b7cef7b59ec26e2e9693 Mon Sep 17 00:00:00 2001 From: Patrik Braborec Date: Mon, 5 Jan 2026 12:33:11 +0100 Subject: [PATCH 08/14] Update sources/platform/actors/development/programming_interface/status_messages.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Lukáš Křivka --- .../actors/development/programming_interface/status_messages.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/platform/actors/development/programming_interface/status_messages.md b/sources/platform/actors/development/programming_interface/status_messages.md index 82caf435d6..68bfd79b3d 100644 --- a/sources/platform/actors/development/programming_interface/status_messages.md +++ b/sources/platform/actors/development/programming_interface/status_messages.md @@ -86,3 +86,5 @@ If your Actor has specific limitations for users on the Apify free plan (e.g., r - Wrong: API usage is limited to 10 results - Right: This Actor only allows up to 10 results for free users. Upgrade to a paid plan to receive unlimited results. - Documentation: Clearly state any limitations in your Actor's `README` and input schema descriptions so users know what to expect before running the Actor. + - 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. + - 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)`. From 4be9fa8c009858bf1d91e9e118fb568ea7d5ba02 Mon Sep 17 00:00:00 2001 From: Patrik Braborec Date: Mon, 5 Jan 2026 15:01:04 +0100 Subject: [PATCH 09/14] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- .../development/programming_interface/status_messages.md | 8 ++++---- sources/platform/actors/publishing/monetize/index.mdx | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sources/platform/actors/development/programming_interface/status_messages.md b/sources/platform/actors/development/programming_interface/status_messages.md index 68bfd79b3d..0c99aa13cf 100644 --- a/sources/platform/actors/development/programming_interface/status_messages.md +++ b/sources/platform/actors/development/programming_interface/status_messages.md @@ -77,14 +77,14 @@ async def main(): -## Communicating limitations +## Communicate limitations -If your Actor has specific limitations for users on the Apify free plan (e.g., restricted features, limited results), it is crucial to communicate these clearly to avoid confusion. +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. - Status messages: Use `Actor.setStatusMessage` or `Actor.exit` message to explain why a run finished early or failed (e.g., "Daily limit for free plan reached. Upgrade to continue."). -- Avoid false errors: Do not return generic system errors or fail the run in a way that looks like a platform issue. This frustrates users and makes troubleshooting difficult. +- 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. - Wrong: API usage is limited to 10 results - Right: This Actor only allows up to 10 results for free users. Upgrade to a paid plan to receive unlimited results. - Documentation: Clearly state any limitations in your Actor's `README` and input schema descriptions so users know what to expect before running the Actor. - 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. - - 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)`. + - 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)`. diff --git a/sources/platform/actors/publishing/monetize/index.mdx b/sources/platform/actors/publishing/monetize/index.mdx index 0864f3da38..4afab20a8e 100644 --- a/sources/platform/actors/publishing/monetize/index.mdx +++ b/sources/platform/actors/publishing/monetize/index.mdx @@ -100,12 +100,12 @@ If no action is taken, the payout will be automatically approved on the 14th, wi 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. -## Handling free users +## Handle free users -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: +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: - Communicate upfront: Clearly state any limitations in your Actor's `README` and input schema. Users should know about restrictions _before_ they run the Actor. -- Graceful exits: If a free user hits a limit, do not 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"). +- 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"). - Avoid confusion: Never make a policy restriction look like a bug or platform error. ## Actor analytics From bd090d0d42db005b9b07efd6b07eacea5442f1d4 Mon Sep 17 00:00:00 2001 From: Patrik Braborec Date: Mon, 5 Jan 2026 15:05:19 +0100 Subject: [PATCH 10/14] Update sources/platform/actors/publishing/monetize/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/publishing/monetize/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/publishing/monetize/index.mdx b/sources/platform/actors/publishing/monetize/index.mdx index 4afab20a8e..76ed014ced 100644 --- a/sources/platform/actors/publishing/monetize/index.mdx +++ b/sources/platform/actors/publishing/monetize/index.mdx @@ -123,7 +123,7 @@ The analytics dashboard allows you to select specific Actors and view key metric All metrics can be exported as JSON for custom analysis and reporting. -## Promoting your Actor +## Promote your Actor Create search-engine-optimized descriptions and README files to improve search engine visibility. Share your Actor on multiple channels: From 3810a23ad5156fc3469d2f41d107e8159fdb8a61 Mon Sep 17 00:00:00 2001 From: Patrik Braborec Date: Mon, 5 Jan 2026 15:05:29 +0100 Subject: [PATCH 11/14] Update sources/platform/actors/publishing/monetize/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/publishing/monetize/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/publishing/monetize/index.mdx b/sources/platform/actors/publishing/monetize/index.mdx index 76ed014ced..04963fc581 100644 --- a/sources/platform/actors/publishing/monetize/index.mdx +++ b/sources/platform/actors/publishing/monetize/index.mdx @@ -40,7 +40,7 @@ The following table compares the two main pricing models available for monetizin | Custom event billing | Not available | Not available | ✅ Charge for any event | | Per-result billing | Not available | ✅ Charge per dataset item | Optional (via event; automatic via `apify-default-dataset-item`) | -## Setting up monetization +## Set up monetization 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. ![Monetization section](../images/monetization-section.png) From f1defba0cc1116111f18b99803547753ccbcf565 Mon Sep 17 00:00:00 2001 From: Patrik Braborec Date: Mon, 5 Jan 2026 15:05:40 +0100 Subject: [PATCH 12/14] Update sources/platform/actors/publishing/monetize/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/publishing/monetize/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/publishing/monetize/index.mdx b/sources/platform/actors/publishing/monetize/index.mdx index 04963fc581..89ccfa12ad 100644 --- a/sources/platform/actors/publishing/monetize/index.mdx +++ b/sources/platform/actors/publishing/monetize/index.mdx @@ -61,7 +61,7 @@ Follow the monetization wizard to configure your pricing model. -### Changing monetization +### Change monetization 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. From 037f84f7548c5ac192948a18f89b15f369dbcde9 Mon Sep 17 00:00:00 2001 From: patrikbraborec Date: Mon, 5 Jan 2026 15:41:22 +0100 Subject: [PATCH 13/14] fix: Fix markdown list indentation in status_messages.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrected nested list item indentation to use 2 spaces instead of 4-5 spaces to comply with MD007 markdown linting rules. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- .../development/programming_interface/status_messages.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sources/platform/actors/development/programming_interface/status_messages.md b/sources/platform/actors/development/programming_interface/status_messages.md index 0c99aa13cf..41ec2ef91f 100644 --- a/sources/platform/actors/development/programming_interface/status_messages.md +++ b/sources/platform/actors/development/programming_interface/status_messages.md @@ -83,8 +83,8 @@ If your Actor has specific limitations for users on the Apify free plan (e.g., r - Status messages: Use `Actor.setStatusMessage` or `Actor.exit` message to explain why a run finished early or failed (e.g., "Daily limit for free plan reached. Upgrade to continue."). - 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. - - Wrong: API usage is limited to 10 results - - Right: This Actor only allows up to 10 results for free users. Upgrade to a paid plan to receive unlimited results. + - Wrong: API usage is limited to 10 results + - Right: This Actor only allows up to 10 results for free users. Upgrade to a paid plan to receive unlimited results. - Documentation: Clearly state any limitations in your Actor's `README` and input schema descriptions so users know what to expect before running the Actor. - - 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. - - 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)`. + - 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. + - 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)`. From 5a0f2af398915653f0d9f5c91ecd13b5b0e3c583 Mon Sep 17 00:00:00 2001 From: Patrik Braborec Date: Tue, 6 Jan 2026 16:33:54 +0100 Subject: [PATCH 14/14] Update sources/platform/actors/development/programming_interface/status_messages.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Lukáš Křivka --- .../actors/development/programming_interface/status_messages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/development/programming_interface/status_messages.md b/sources/platform/actors/development/programming_interface/status_messages.md index 41ec2ef91f..6d904732e8 100644 --- a/sources/platform/actors/development/programming_interface/status_messages.md +++ b/sources/platform/actors/development/programming_interface/status_messages.md @@ -81,7 +81,7 @@ async def main(): 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. -- Status messages: Use `Actor.setStatusMessage` or `Actor.exit` message to explain why a run finished early or failed (e.g., "Daily limit for free plan reached. Upgrade to continue."). +- 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."). - 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. - Wrong: API usage is limited to 10 results - Right: This Actor only allows up to 10 results for free users. Upgrade to a paid plan to receive unlimited results.