Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -66,26 +66,6 @@ If you want more details about PPE pricing, refer to our [PPE documentation](/pl

:::

### Pay-per-result pricing model

![pay per result model example](images/ppr-model.png)

- _How it works_: you charge users based on the number of results your Actor generates. You earn 80% of the revenue minus platform usage costs.
- _Profit calculation_: `profit = (0.8 * revenue) - platform usage costs`
- _Cost breakdown_:
- Compute unit: $0.3 per CU
- Residential proxies: $13 per GB
- SERPs proxy: $3 per 1,000 SERPs
- Data transfer (external): $0.20 per GB
- Dataset storage: $1 per 1,000 GB-hours
- _Example_: you set a price of $1 per 1,000 results. Two users generate 50,000 and 20,000 results, paying $50 and $20, respectively. If the platform usage costs are $5 and $2, your profit is $49.

:::info Pay-per-result details

If you want more details about PPR pricing, refer to our [PPR documentation](/platform/actors/publishing/monetize/pay-per-result).

:::

### Rental pricing model

<RentalSunset/>
Expand Down Expand Up @@ -115,15 +95,16 @@ If you want more details about rental pricing, refer to our [rental pricing docu

### Changing monetization

Some monetization updates are applied immediately. However, significant pricing changes require a 14-day notice period.
Monetization changes fall into two categories:

- _Non-significant changes_ (take effect immediately): decreasing prices, removing events, updating descriptions
- _Significant changes_ (require a 14-day notice period): increasing prices, adding new paid events, changing the pricing model

Significant changes include:
When you submit a significant change, your users are notified and the current pricing stays active for 14 days. You can only make significant changes **once per month** per Actor, and you **cannot cancel** a planned change on your own - you need to contact [Apify support](https://apify.com/contact).

- Increasing prices
- Adding a new paid pricing event (PPE)
- Changing the pricing model
This means roughly one month passes between your first significant change and when you can make the next one. Plan your pricing carefully before committing.

You can make these significant changes only once per month.
For full details, refer to the [monetization change rules](/platform/actors/publishing/monetize#change-monetization).

### Tracking and promotion

Expand All @@ -148,13 +129,11 @@ Apify Store is like any other marketplace, so take a look at your competition th

Learn more about what makes a good readme here: [How to create an Actor README](/academy/actor-marketing-playbook/actor-basics/how-to-create-an-actor-readme)

### Pay-per-event (PPE), pay-per-result (PPR), or rental
### Choose pay-per-event (PPE)

Pay-per-event (PPE) gives you the most flexibility and growth potential. You can charge for any meaningful event your Actor performs (for example, page scraped, browser page opened, or an external API call). This makes costs predictable for users, lets you model value precisely, and is fully compatible with AI and MCP-based integrations.

Rental pricing allows you to charge a monthly fee for your Actor and users cover their own platform usage.

Pay-per-result (PPR) charges users based on the number of items your Actor adds to the dataset. This model works best when each dataset item represents clear value to the user - like scraped product listings, extracted contact information, or processed documents.
Rental pricing is being sunset (see the [rental documentation](/platform/actors/publishing/monetize/rental) for the timeline) and is no longer recommended for new Actors.

:::tip Additional benefits

Expand All @@ -164,9 +143,12 @@ Actors that implement PPE receive additional benefits, including increased visib

To estimate pricing, run a few test runs and review the statistics in the Actor [**Analytics**](https://console.apify.com/actors?tab=analytics) tab.


### Adapt when needed

Don’t be afraid to experiment with pricing, especially at the start. You can monitor your results in the dashboard and adjust if necessary.
Don’t be afraid to experiment with pricing, especially at the start. You can monitor your results in the dashboard and adjust if necessary. You can also choose to [pass platform usage costs to users](/platform/actors/publishing/monetize/pay-per-event#pass-platform-usage-to-users) while you’re still figuring out the right price.

To estimate pricing, run a few test runs and review the statistics in the Actor [**Analytics**](https://console.apify.com/actors?tab=analytics) tab.

Keep an eye on SEO as well. If you monitor the volume of the keywords your Actor is targeting as well as how well your Actor's page is ranking for those keywords, you can estimate the number of people who actually end up trying your tool (aka conversion rate). If your keywords are getting volume, but conversions are lower than expected, it might point to a few issues It could be due to your pricing, a verbose README, or complex input. If users are bouncing right away, it makes sense to check out your pricing and your closest competitors to see where adjustments might help.

Expand All @@ -184,15 +166,15 @@ Example of useful pricing estimates from the **Analytics** tab:

:::tip Use emails!

📫 Don't forget to set an email sequence to warn and remind your users about pricing changes. Learn more about emailing your users here: [Emails to Actor users]
📫 Don't forget to set an email sequence to warn and remind your users about pricing changes. Learn more about emailing your users here: [Emails to Actor users](/academy/actor-marketing-playbook/interact-with-users/emails-to-actor-users)

:::

## Resources

- Learn about [incentives behind monetization](https://apify.com/partners/actor-developers)
- Detailed guide to [setting up monetization models](https://docs.apify.com/academy/get-most-of-actors/monetizing-your-actor)
- Guide to [publishing Actors](https://docs.apify.com/platform/actors/publishing)
- Detailed guide to [setting up monetization models](/platform/actors/publishing/monetize)
- Guide to [publishing Actors](/platform/actors/publishing)
- Watch our webinar on how to [build, publish and monetize Actors](https://www.youtube.com/watch?v=4nxStxC1BJM)
- Read a blog post from our CEO on the [reasoning behind monetizing Actors](https://blog.apify.com/make-regular-passive-income-developing-web-automation-actors-b0392278d085/)
- Learn about the [Creator plan](https://apify.com/pricing/creator-plan), which allows you to create and freely test your own Actors for $1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,7 @@ Actors on Apify Store can be public or private:

## How Actor monetization works (briefly)

You can monetize your Actors using three different pricing models:

- Pay for usage: charge based on how much the Actor is used.
- Pay per result: the price is based on the number of results produced, with the first few free.
- Pay per event: the price is based on specific events triggered by the Actor.
- Monthly billing: set a fixed monthly rental rate for using the Actor.
You can monetize your Actors using pay-per-event pricing, where users pay for specific events triggered by the Actor.

For detailed information on which pricing model might work for your Actor, refer to [How Actor monetization works](/academy/actor-marketing-playbook/store-basics/how-actor-monetization-works).

Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Once set, the page URL should not be changed. Because of those two important rea

If you absolutely have to change the URL, you will have to communicate that fact to your users.

💡 Learn more about the easiest ways to communicate with your users: [Emails to Actor users]
💡 Learn more about the easiest ways to communicate with your users: [Emails to Actor users](/academy/actor-marketing-playbook/interact-with-users/emails-to-actor-users)

## How and where to set the Actor URL

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ While most Actors on our marketplace are web scrapers or crawlers, there are eve
By publishing your service or project at [Apify Store](https://apify.com/store) your project will benefit from:

1. _Expanded reach_: Your tool instantly becomes available to Apify's user community and connects with popular automation platforms like [Make](https://www.make.com), [n8n](https://n8n.io/), and [Zapier](https://zapier.com/).
2. _Multiple monetization paths_: Choose from flexible pricing models (monthly subscriptions, pay-per-result, or pay-per-event).
2. _Multiple monetization paths_: Choose from flexible pricing models (pay-per-event or monthly subscriptions).
3. _AI integration_: Your Actor can serve as a tool for AI agents through Apify's MCP (Model Context Protocol) server, creating new use cases and opportunities while you earn 80% of all revenues.

:::tip Open-Source Benefits
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ A common situation in web scraping that's out of your control.

Inform users about the reason for changes and how the changes impact them and the Actor + give them a date when the change takes effect.

### 3. Actor changing its payment model (from rental to pay-per-result, for example)
### 3. Actor changing its payment model (e.g. changing pay-per-event pricing)

Email 1 (before the change, warning about deprecation).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Now that the Issues tab is public and on the web, it also serves other goals:

Check out how the team behind the **Apollo.io leads scraper** manages their [Issues tab](https://apify.com/curious_coder/apollo-io-scraper/issues/open) for a great example of professional responses and quick problem-solving.

Note that this Actor is a rental, so users expect a high-quality service.
Note that this is a paid Actor, so users expect a high-quality service.

![issues tab example](images/issues-tab-example.png)

Expand Down
2 changes: 1 addition & 1 deletion sources/academy/build-and-publish/why_publish.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Public Actors require higher standards than private ones. Since users depend on

### When you need to change things

If you need to make breaking changes to your Actor, contact [community@apify.com](mailto:community@apify.com) beforehand. Major pricing changes require 14-day notice and are limited to once per month. The platform helps communicate changes to your users.
If you need to make breaking changes to your Actor, contact [community@apify.com](mailto:community@apify.com) beforehand. Significant pricing changes require a 14-day notice period and are limited to once per month. The platform helps communicate changes to your users.

## Getting started

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ Actor `name`, `version`, `buildTag`, and `environmentVariables` are currently on
| `storages.dataset` | Optional | You can define the schema of the items in your dataset under the `storages.dataset` field. This can be either an embedded object or a path to a JSON schema file. [Read more](/platform/actors/development/actor-definition/dataset-schema) about Actor dataset schemas. |
| `defaultMemoryMbytes` | Optional | Specifies the default amount of memory in megabytes to be used when the Actor is started. Can be an integer or a [dynamic memory expression string](./dynamic_actor_memory/index.md). |
| `minMemoryMbytes` | Optional | Specifies the minimum amount of memory in megabytes required by the Actor to run. Requires an _integer_ value. If both `minMemoryMbytes` and `maxMemoryMbytes` are set, then `minMemoryMbytes` must be equal or lower than `maxMemoryMbytes`. Refer to the [Usage and resources](https://docs.apify.com/platform/actors/running/usage-and-resources#memory) for more details about memory allocation. |
| `maxMemoryMbytes` | Optional | Specifies the maximum amount of memory in megabytes required by the Actor to run. It can be used to control the costs of run, especially when developing pay per result Actors. Requires an _integer_ value. Refer to the [Usage and resources](https://docs.apify.com/platform/actors/running/usage-and-resources#memory) for more details about memory allocation. |
| `maxMemoryMbytes` | Optional | Specifies the maximum amount of memory in megabytes required by the Actor to run. It can be used to control the costs of run. Requires an _integer_ value. Refer to the [Usage and resources](https://docs.apify.com/platform/actors/running/usage-and-resources#memory) for more details about memory allocation. |
| `usesStandbyMode` | Optional | Boolean specifying whether the Actor will have [Standby mode](../programming_interface/actor_standby.md) enabled. |
| `webServerSchema` | Optional | Defines an OpenAPI v3 schema for the web server running in the Actor. This can be either an embedded object or a path to a JSON schema file. Use this when your Actor starts its own HTTP server and you want to describe its interface. |
| `webServerMcpPath` | Optional | The HTTP endpoint path where the Actor exposes its MCP (Model Context Protocol) server functionality. When set, the Actor is recognized as an MCP server. For example, setting `"/mcp"` designates the `/mcp` endpoint as the MCP interface. This path becomes part of the Actor's stable URL when [Standby mode](../programming_interface/actor_standby.md) is enabled. |
Binary file not shown.
Binary file not shown.
8 changes: 2 additions & 6 deletions sources/platform/actors/publishing/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,9 @@ Publishing your Actor on Apify Store transforms your code, eliminating tradition
- Multiple payment options with automated billing & transactions
- Minimal marketing efforts required due to marketplace presence

Packaging your software as an Actor allows you to launch new SaaS product faster and earn income through various monetization models that match your Actor's value proposition like:
Packaging your software as an Actor allows you to launch new SaaS product faster and earn income through monetization that matches your Actor's value proposition.

- Fixed rental fee for continuous access
- Pay-per-result for usage-based pricing
- Pay-per-event for specific operations

To learn more visit our [Actors in Store](https://docs.apify.com/platform/actors/running/actors-in-store#pricing-models) page.
To learn more visit our [Actors in Store](https://docs.apify.com/platform/actors/running/actors-in-store#pricing-models) page.

## Maintain public Actors

Expand Down
Loading
Loading