What is PPE (Pay Per Event)?

Apify PPE (Pay Per Event) is a usage-based pricing model where the actor developer defines billable events and sets the price for each event. ApifyForge tracks PPE pricing data across Apify actors in its actor directory at apifyforge.com/actors, with common price points ranging from $0.01-0.10 per result for data extraction, $0.02-0.05 per page for web scraping, and $0.10-1.00 per report for complex intelligence products. As of March 2026, PPE is the standard monetization model for the Apify Store, replacing the older rental pricing model.

Last updated: by ApifyForge

How PPE (Pay Per Event) works

PPE matters because it aligns developer incentives with user outcomes. Users only pay for what they actually receive, which increases trust and adoption. According to Apify's documentation, developers earn 80% of PPE revenue after Apify subtracts the platform compute costs from each run. This revenue share model means that a popular actor processing 100,000 events per month at $0.05 each generates $5,000 in gross revenue and $4,000 for the developer. PPE replaced the older rental pricing model (flat monthly fee for unlimited usage), which Apify is sunsetting in October 2026. All new monetized actors should use PPE pricing. The ApifyForge Cost Calculator at apifyforge.com/tools/cost-calculator helps developers estimate PPE revenue across different usage tiers.

To configure PPE pricing, navigate to your actor in the Apify Console, go to the Monetization tab, and define your event types with their prices. Each event type has a name (e.g., 'result-scraped'), a display name shown to users (e.g., 'Result scraped'), and a price in USD. In your actor code, charge events using Actor.charge({ eventName: 'result-scraped', count: results.length }). This call tells Apify to bill the user for the specified number of events at the configured price. You can also set PPE pricing via the Apify API: PUT /v2/acts/{actorId} with the pricingModel field set to your event definitions.

Code example: import { Actor } from 'apify'; Actor.main(async () => { const results = await scrapeProducts(input.url); await Actor.pushData(results); await Actor.charge({ eventName: 'product-scraped', count: results.length }); }); This charges the user for each product scraped after the data is safely pushed to the dataset. Always push data to the dataset before calling Actor.charge() — if the actor crashes after charging but before pushing data, the user pays for nothing, gets a refund request, and the actor's Store Quality Score drops.

Common PPE pricing mistakes: (1) Charging before delivering results — always push data first, then charge. (2) Overpricing commodity data — if 10 other actors scrape the same website at $0.02 per result, pricing yours at $0.10 kills adoption. Research competitor pricing on the Apify Store and on ApifyForge's comparison pages before setting prices. (3) Ignoring the 14-day rule — PPE pricing changes require a 14-day notice period and can only be modified once per month, so research pricing upfront.

When deciding between PPE and free actors, consider the audience. Free actors with compute-only costs work well for open-source tools and developer utilities where maximum adoption matters. PPE actors work best for data products where each result has clear monetary value to the user — lead lists, price monitoring data, competitive intelligence, and enrichment services.

PPE interacts with Compute Units: users pay both PPE charges (for the value delivered) and compute costs (for the infrastructure used). A well-optimized actor minimizes compute costs while maximizing PPE revenue — for example, using CheerioCrawler instead of PlaywrightCrawler when possible reduces compute costs by 5-10x without affecting PPE revenue. Monitor PPE earnings in the Apify Console under the Earnings tab, which shows revenue per actor, per day, and per user. Related concepts: Compute Unit, Actor, Actor Run, Store Quality Score.

Frequently asked questions about PPE (Pay Per Event)

How much do PPE actors cost on Apify?

PPE prices vary by actor type. Simple data extraction actors charge $0.01-0.10 per result, web scraping actors charge $0.02-0.05 per page, and complex intelligence products charge $0.10-1.00 per report. Users also pay compute costs (approximately $0.25 per compute unit) on top of PPE charges. ApifyForge tracks real-time PPE pricing across Apify actors at apifyforge.com/actors.

How much revenue do Apify actor developers earn from PPE?

According to Apify's documentation, developers earn 80% of PPE revenue after Apify subtracts platform compute costs from each run. A popular actor processing 100,000 events per month at $0.05 each generates $5,000 in gross revenue and approximately $4,000 for the developer. The ApifyForge Cost Calculator at apifyforge.com/tools/cost-calculator helps estimate earnings across different usage tiers.

What is the difference between PPE and rental pricing on Apify?

PPE (Pay Per Event) charges users per result delivered, while rental pricing charges a flat monthly fee for unlimited usage. Apify is sunsetting the rental model in October 2026, making PPE the standard for all new monetized actors. PPE aligns developer incentives with user outcomes because users only pay for results they receive.

How do I set up PPE pricing for my Apify actor?

Navigate to your actor in the Apify Console, go to the Monetization tab, and define event types with their prices. Each event type has a name (e.g., 'result-scraped'), a display name, and a price in USD. In your code, call Actor.charge({ eventName: 'result-scraped', count: results.length }) after pushing data to the dataset. PPE pricing changes require a 14-day notice period and can only be modified once per month.

Should I make my Apify actor free or use PPE pricing?

Free actors with compute-only costs work well for open-source tools and developer utilities where maximum adoption matters. PPE actors work best for data products where each result has clear monetary value — lead lists, price monitoring, competitive intelligence, and enrichment services. Research competitor pricing on the Apify Store and on ApifyForge comparison pages before choosing.

What are common PPE pricing mistakes to avoid?

The three most common PPE mistakes are: (1) charging before delivering results — always push data to the dataset first, then call Actor.charge(), or users get refunds and your Store Quality Score drops; (2) overpricing commodity data — if competitors scrape the same site at $0.02 per result, pricing at $0.10 kills adoption; (3) ignoring the 14-day rule — PPE pricing changes require 14 days notice and only one change per month.

Related ApifyForge resources

Related Apify terms