Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
2acb9c6
docs: Add links to correct monetization docs
patrikbraborec Sep 22, 2025
659aab5
docs: Fix vale error
patrikbraborec Sep 22, 2025
700fe94
docs: Improve PPE examples, and add PPR vs PPE section
patrikbraborec Sep 24, 2025
37bc453
docs: Improve synthetic start docs
patrikbraborec Sep 24, 2025
217d341
docs: Remove PPR store visibility
patrikbraborec Sep 24, 2025
f493b6a
docs: Synthetic start event improvements
patrikbraborec Sep 24, 2025
ee82af0
docs: Fix lint errors
patrikbraborec Sep 24, 2025
ba9a158
docs: Fix lint errors
patrikbraborec Sep 24, 2025
b0c5662
docs: Fix lint errors
patrikbraborec Sep 24, 2025
91246ae
docs: Remove unncessary sentence
patrikbraborec Sep 24, 2025
db2abc1
docs: Improve sentece regarding to free compute
patrikbraborec Sep 24, 2025
b0bef86
Update apify-api/openapi/paths/actor-runs/actor-runs@{runId}@charge.yaml
patrikbraborec Sep 24, 2025
27d5fd5
docs: update actor tagged builds manually (#1945)
lewis-wow Sep 25, 2025
96ec0ca
fix: remove unused dependencies from `package.json` (#1953)
Copilot Sep 29, 2025
2accfa7
docs: improve text for arge charge for invalid input
patrikbraborec Sep 29, 2025
ca3a611
Update sources/platform/actors/publishing/monetize/pay_per_event.mdx
patrikbraborec Sep 29, 2025
ee8dd3b
Update sources/platform/actors/publishing/monetize/pay_per_event.mdx
patrikbraborec Sep 29, 2025
4f8fda3
docs: Improve docs based on feedback
patrikbraborec Sep 29, 2025
9649ded
docs: remove unused example
patrikbraborec Sep 29, 2025
82b0ffb
docs: Fix broken link
patrikbraborec Sep 29, 2025
a87138b
Apply suggestions from code review
patrikbraborec Sep 30, 2025
0aac4f1
Update sources/platform/actors/publishing/monetize/pay_per_event.mdx
patrikbraborec Sep 30, 2025
8e25c8f
docs: Add signature query parameter to docs of relevant endpoints (#1…
Pijukatel Sep 29, 2025
39be029
chore(deps): update dependency typescript to v5.9.3
renovate[bot] Oct 1, 2025
148ca1a
docs: Improve Academy text regarding to Rental, PPR and PPE (#1947)
patrikbraborec Oct 1, 2025
6cf2de2
docs: Rebase and PR comments
patrikbraborec Oct 1, 2025
8c5b826
docs: Make example italic
patrikbraborec Oct 1, 2025
f287cf8
docs: Improve API docs
patrikbraborec Oct 1, 2025
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 @@ -50,3 +50,24 @@ properties:
oneOf:
- nullable: true
- $ref: ./DefaultRunOptions.yaml
taggedBuilds:
type: object
description: |
Object containing the Actor's tagged builds, where the key is the tag name (e.g., _latest_) and the value is an object containing the build ID.
The object you provide will completely overwrite all existing tagged builds for the Actor.

- To create or reassign a tag: Include it in the object with the desired `buildId`.
- To remove a specific tag: Submit the object without that tag's key.
- To remove all tags: Provide an empty object: `{}`.
- If this field is omitted or `null`, the existing tags will not be changed.
nullable: true
additionalProperties:
type: object
required:
- buildId
properties:
buildId:
type: string
example:
latest:
buildId: z2EryhbfhgSyqj6Hn
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ post:
The event you are charging for must be one of the configured events in your Actor. If the Actor is not set up as pay per event, or if the event is not configured,
the endpoint will return an error. The endpoint must be called from the Actor run itself, with the same API token that the run was started with.

For more details about pay-per-event (PPE) pricing, see our [PPE documentation](/platform/actors/publishing/monetize/pay-per-event).

operationId: PostChargeRun
parameters:
- name: runId
Expand Down
345 changes: 0 additions & 345 deletions package-lock.json

Large diffs are not rendered by default.

12 changes: 0 additions & 12 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,12 @@
"devDependencies": {
"@apify/eslint-config": "^1.0.0",
"@apify/tsconfig": "^0.1.0",
"@rsbuild/plugin-styled-components": "^1.1.0",
"@types/react": "^19.0.0",
"babel-plugin-styled-components": "^2.1.4",
"cross-env": "^7.0.3",
"eslint": "^9.32.0",
"eslint-plugin-json": "^4.0.1",
"eslint-plugin-markdown": "^5.1.0",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^5.2.0",
"fs-extra": "^11.1.1",
"globals": "^16.0.0",
"globby": "^14.0.0",
"markdownlint": "^0.38.0",
"markdownlint-cli": "^0.45.0",
"patch-package": "^8.0.0",
Expand All @@ -75,27 +69,21 @@
"@docusaurus/preset-classic": "^3.8.1",
"@docusaurus/theme-common": "^3.8.1",
"@docusaurus/theme-mermaid": "^3.8.1",
"@docusaurus/utils": "^3.8.1",
"@giscus/react": "^3.0.0",
"@mdx-js/react": "^3.0.1",
"@redocly/cli": "^1.27.1",
"@signalwire/docusaurus-plugin-llms-txt": "^1.2.1",
"ajv": "^8.17.1",
"clsx": "^2.0.0",
"docusaurus-plugin-image-zoom": "^3.0.1",
"docusaurus-plugin-openapi-docs": "^4.3.7",
"docusaurus-theme-openapi-docs": "^4.3.7",
"form-data": "^4.0.0",
"github-buttons": "^2.28.0",
"postcss-preset-env": "^10.0.0",
"prism-react-renderer": "^2.4.0",
"prop-types": "^15.8.1",
"proxy-from-env": "^1.1.0",
"raw-loader": "^4.0.2",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-github-btn": "^1.4.0",
"search-insights": "2.17.3",
"styled-components": "6.1.19",
"unist-util-visit": "^5.0.0"
},
Expand Down
6 changes: 6 additions & 0 deletions sources/academy/ai/ai-agents.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,12 @@ Common issues and solutions:

Apify's pay-per-event (PPE) pricing model allows charging users based on specific triggered events through the API or SDKs.

:::info How pay-per-event pricing works

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

:::

### Step 1: Define chargeable events

You can configure charges for events like the Actor starting, a task completing successfully, or custom events such as specific API calls.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,11 @@ Monetizing your Actor on the Apify platform involves several key steps:
- 2nd user starts their trial but pays next month.
- 3rd user on a free plan finishes the trial without upgrading to a paid plan and can’t use the Actor further.

Learn more about the rental pricing model in our [documentation](/platform/actors/publishing/monetize#rental-pricing-model).
:::info Rental pricing details

If you want more details about rental pricing, please refer to our [rental pricing documentation](/platform/actors/publishing/monetize/rental).

:::

### Pay-per-result pricing model

Expand All @@ -49,7 +53,11 @@ Learn more about the rental pricing model in our [documentation](/platform/actor
- 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.

Learn more about the pay-per-result pricing model in our [documentation](/platform/actors/publishing/monetize#pay-per-result-pricing-model).
:::info Pay-per-result details

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

:::

### Pay-per-event pricing model

Expand Down Expand Up @@ -77,7 +85,11 @@ Learn more about the pay-per-result pricing model in our [documentation](/platfo
- This comes up to $1.625 of total revenue
- That means if platform usage costs are $0.365 for user A and $0.162 for user B your profit is $4.748

Learn more about the pay-per-event pricing model in our [documentation](/platform/actors/publishing/monetize#pay-per-event-pricing-model).
:::info Pay-per-event details

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

:::

## Setting up monetization

Expand All @@ -104,7 +116,7 @@ The easiest way to understand your tool's value is to look around. Are there sim

Try competitor tools yourself (to assess the value and the quality they provide), check their SEO (to see how much traffic they get), and note ballpark figures. Think about what your Actor can do that competitors might be missing.

Also, remember that your Actor is a package deal with the Apify platform. So all the platform's features automatically transfer onto your Actor and its value. Scheduling, monitoring runs, ways of exporting data, proxies, and integrations can all add value to your Actor (on top of its own functionalities). Be sure to factor this into your tool's value proposition and communicate that to the potential user.
Also, remember that your Actor is a package deal with the Apify platform. All the platform's features automatically transfer onto your Actor and its value. Scheduling, monitoring runs, ways of exporting data, proxies, and integrations can all add value to your Actor (on top of its own functionalities). Be sure to factor this into your tool's value proposition and communicate that to the potential user.

### Do research in Apify Store

Expand All @@ -114,7 +126,7 @@ Learn more about what makes a good readme here: [How to create an Actor README](

### Rental, pay-per-result (PPR), or pay-per-event (PPE)

Rental pricing is technically easier: you set the rental fee, and the user covers their CU usage. So all you have to define is how much you want to charge the users. With pay-per-result, you’ll need to include both CU usage and your margin. So you have to calculate how much the average run is going to cost for the user + define how much you want to charge them.
Rental pricing is technically easier: you set the rental fee, and the user covers their CU usage. All you have to define is how much you want to charge the users. With pay-per-result, you’ll need to include both CU usage and your margin. You have to calculate how much the average run is going to cost for the user + define how much you want to charge them.

To figure out the average cost per run for users, just run a few test runs and look at the statistics in the Actor [**Analytics**](https://console.apify.com/actors?tab=analytics) tab.

Expand Down
2 changes: 1 addition & 1 deletion sources/platform/actors/publishing/monetize/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ The following table compares the two main pricing models available for monetizin
| 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 | Priority store placement | Priority store placement |
| Marketing boost | Standard visibility | Standard visibility | Priority store placement |
| Commission opportunities| Standard 20% | Standard 20% | Promotional 0% periods |
| Custom event billing | Not available | Not available | ✅ Charge for any event |
| Per-result billing | Not available | ✅ Charge per dataset item | Optional (via event) |
Expand Down
Loading
Loading