Skip to main content

Monetize your Actor

Learn how you can monetize your web scraping and automation projects by publishing Actors to users in Apify Store.


Apify Store allows you to monetize your web scraping and automation projects by publishing them as paid Actors. This guide explains the available pricing models and how to get started.

Pricing models

Actors in Apify Store can be published under one of the following pricing models:

  1. Free: Users can run the Actor without any additional charges beyond the platform usage costs generated by the Actor.
  2. Rental: Users pay for the platform usage costs. However, after a trial period, they need to pay a flat monthly fee to the developer to continue using the Actor.
  3. Pay per result (PPR): Users don't pay for the platform usage costs. Instead, they pay the developer based on the number of results produced by the Actor.
  4. Pay per event (PPE): Users don't pay for the platform usage cost the Actor generates. Instead, they pay based on specific events that are programmatically triggered from the Actor's source code. These events are defined by the developer and can include actions such as generating a single result or starting an Actor.

Rental pricing model

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 can continue using your Actor by paying the monthly fee. You can receive 80% of the total rental fees collected each month.

Example - rental pricing model

You make your Actor rental with 7-day free trial and then $30/month. During the first calendar month, three users start to use your Actor:

  1. First user, on the Apify paid plan, starts the free trial on the 15th
  2. Second user, on the Apify paid plan, starts the free trial on the 25th
  3. Third user, on the Apify free plan, starts the free trial on the 20th

The first user pays their first rent 7 days after the free trial, i.e., on the 22nd of the month. The second user only starts paying the rent next month. The third user is on the Apify free plan, so after the free trial ends on the 27th of the month, they are not charged and cannot use the Actor further until they get a paid plan. Your profit is computed only from the first user. They were charged $30, so 80% of this goes to you, i.e., 0.8 * 30 = $24.

Pay-per-result pricing model

In this model, you set a price per 1,000 results. Users are charged based on the number of results your Actor produces. Your profit is calculated as 80% of the revenue minus platform usage costs. The formula is:

(0.8 * revenue) - costs = profit

Pay-per-result unit pricing for cost computation

ServiceUnit price
Compute unit$0.4 / CU
Residential proxies$13 / GB
SERPs proxy$3 / 1,000 SERPs
Data transfer - external$0.20 / GB
Data transfer - internal$0.05 / GB
Dataset - reads$0.0004 / 1,000 reads
Dataset - writes$0.005 / 1,000 writes
Key-value store - reads$0.005 / 1,000 reads
Key-value store - writes$0.05 / 1,000 writes
Key-value store - lists$0.05 / 1,000 lists
Request queue - reads$0.004 / 1,000 reads
Request queue - writes$0.02 / 1,000 writes

Only revenue and cost for Apify customers on paid plans are taken into consideration when computing your profit. Users on free plans are not reflected there.

Read more about Actors on Apify Store and different pricing models from the perspective of your users in the Store documentation.

Example - pay-per-result pricing model

You make your Actor pay-per-result and set the price to be $1/1,000 results. During the first month, two users on Apify paid plans use your Actor to get 50,000 and 20,000 results, costing them $50 and $20, respectively. Let's say the underlying platform usage for the first user is $5 and for the second $2. A third user, this time on an Apify free plan, uses the Actor to get 5,000 results, with underlying platform usage of $0.5.

Your profit is computed only from the first two users, since they are on Apify paid plans. The revenue for the first user is $50 and for the second $20, i.e., total revenue is $70. The total underlying cost is $5 + $2 = $7. Since your profit is 80% of the revenue minus the cost, it would be 0.8 * 70 - 7 = $49.

Best practices for PPR Actors

To ensure profitable operation:

  • Set memory limits in your actor.json file to control platform usage costs
  • Implement the ACTOR_MAX_PAID_DATASET_ITEMS check to prevent excess result generation
  • Test your Actor with various result volumes to determine optimal pricing

Pay-per-event pricing model

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.

PPE vs. PPR

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.

For a detailed comparison of pricing models, refer to our user-facing documentation.

How is profit computed

Your profit is calculated as follows:

profit = (0.8 * revenue) - platform costs

where:

  • Revenue: The amount charged for events via the PPE API or through JS/Python SDK. You receive 80% of this revenue.
  • Platform costs: The underlying platform usage costs for running the Actor, are calculated using the same unit pricing as PPR.

Only paid user activity is included in profit calculations.

How to set pricing for PPE

  1. Understand your costs: Analyze resource usage (e.g CPU, memory, proxies, external APIs) and identify cost drivers
  2. Define clear events: break your Actor's functionality into measurable, chargeable events.
  3. Common use cases:
    1. For scraping: combine Actor start and dataset items pricing to reflect setup and per-result cost.
    2. Beyond scraping: Account for integrations with external systems or external API calls.
  4. External API costs: Account for additional processing costs.
  5. Test your pricing: Run your Actor and analyze cost-effectiveness using a special dataset.
  6. Communicate value: Ensure pricing reflects the value provided and is competitive.

Best practices for PPE Actors

  • Set memory limits in your actor.json file to control platform usage costs
  • Avoid duplicate charges by not calling the start Actor event during migration.
  • Ensure users are not charged beyond their set maximum. The ChargingManager or our SDKs (JS and Python) can handle this logic.
  • Use idempotency keys in API calls to prevent double charges.
  • Try to limit the number of events. Fewer events make it easier for users to understand your pricing.
  • Try to make your event have tangible artifacts that users can see and understand (this might not be possible when using external APIs) i.e:
    • Get a record
    • Save it to a dataset
    • etc.
ChargingManager usage

Use our ChargingManager or SDKs (JS and, Python or use apify actor charge 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.

You can also choose not to use it, but then you must handle API integration and possible edge cases manually. You can use ChargingManager code as a reference.

Setting up monetization

Navigate to your Actor page in Apify Console, choose the Actor that you want to monetize, and select the Publication tab. Monetization section Open the Monetization section and complete your billing and payment details. Set up monetization Choose the pricing model for your Actor. Monetization wizard Follow the monetization wizard to configure your pricing model.

rental moentization wizard

Changing 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. Any changes made to an already published Actor will take 14 days to come into effect, so that the users of your Actor have time to prepare.

Frequency of monetization adjustments

Be aware that you can change the monetization setting of each Actor only once per month. For further information and guidelines, please refer to our Terms & Conditions

Payouts and analytics

Payout invoices are generated automatically on the 14th of each month. Review your invoice in the Settings > Payout section within one week. If not approved by the 20th, the system will auto-approve on the 21st.

Track your Actor's performance through:

  • The payout section for financial records
  • Actor Analytics (Actors > Development > Analytics) for usage statistics

Promoting your Actor

Create serach-engine-optimized descriptions and README files to improve search engine visibility. Share your Actor on multiple channels:

  • Post on Reddit, Quora, and social media platforms
  • Create tutorial videos demonstrating key features
  • Publish articles about your Actor on relevant websites
  • Consider creating a product showcase on platforms like Product Hunt

Remember to tag Apify in your social media posts for additional exposure. Effective promotion can significantly impact your Actor's success, differentiating between those with many paid users and those with few to none.

Learn more about promoting your Actor in the Apify's marketing playbook.