Skip to content
Open
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ When the Playwright/Puppeteer version in your `package.json` differs from what's

:::

### Using `*` as version (alternative approach)
### Use `*` as version (alternative approach)

You may encounter older documentation or templates using `*` as the Playwright/Puppeteer version:

Expand Down Expand Up @@ -208,7 +208,7 @@ You can check out various optimization tips for Dockerfile in our [Performance](

:::

## Updating older Dockerfiles
## Update older Dockerfiles

All Apify base Docker images now use a non-root user to enhance security. This change requires updates to existing Actor `Dockerfile`s that use the `apify/actor-node`, `apify/actor-python`, `apify/actor-python-playwright`, or `apify/actor-python-selenium` images. This section provides guidance on resolving common issues that may arise during this migration.

Expand Down Expand Up @@ -293,7 +293,7 @@ You should remove these lines, as the new user is now `myuser`. Don't forget to
COPY --chown=myuser:myuser . ./
```

#### Installing dependencies that require root access
#### Install dependencies that require root access

The `root` user is still available in the Docker images. If you must run steps that require root access (like installing system packages with `apt` or `apk`), you can temporarily switch to the `root` user.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ If the calculation results in an error, the Actor will start with a fixed defaul

</Tabs>

### Testing expressions
### Test expressions

#### Use npm package

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,4 @@ It's possible to define custom error messages in sub-properties as well. For obj

## Best practices

Custom error messages can be useful in specific cases, but they aren't always necessary. In most situations, the default validation messages are clear enough and ensure consistency across the platform. Use custom messages only when they meaningfully improve clarityfor example, when the default message would expose an unreadable regular expression or fail to explain a non-obvious requirement.
Custom error messages can be useful in specific cases, but they aren't always necessary. In most situations, the default validation messages are clear enough and ensure consistency across the platform. Use custom messages only when they meaningfully improve clarity - for example, when the default message would expose an unreadable regular expression or fail to explain a non-obvious requirement.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ The Actor input schema file is used to:


To define an input schema for an Actor, set `input` field in the `.actor/actor.json` file to an input schema object (described below), or path to a JSON file containing the input schema object.
For backwards compatibility, if the `input` field is omitted, the system looks for an `INPUT_SCHEMA.json` file either in the `.actor` directory or the Actor's top-level directorybut note that this functionality is deprecated and might be removed in the future. The maximum allowed size for the input schema file is 500 kB.
For backwards compatibility, if the `input` field is omitted, the system looks for an `INPUT_SCHEMA.json` file either in the `.actor` directory or the Actor's top-level directory - but note that this functionality is deprecated and might be removed in the future. The maximum allowed size for the input schema file is 500 kB.

When you provide an input schema, the Apify platform will validate the input data passed to the Actor on start (via the API or Apify Console) to ensure compliance before starting the Actor.
If the input object doesn't conform the schema, the caller receives an error and the Actor is not started.
Expand Down Expand Up @@ -372,7 +372,7 @@ Properties:

| Property | Value | Required | Description |
|------------|-----------------------------------------------------|----------|-------------------------------------------------------------------------------|
| `type` | One of <ul><li>`integer`</li><li>`number`</li></ul> | Yes | Defines the type of the field either an integer or a floating-point number. |
| `type` | One of <ul><li>`integer`</li><li>`number`</li></ul> | Yes | Defines the type of the field - either an integer or a floating-point number. |
| `editor` | One of: <ul><li>`number`</li><li>`hidden`</li></ul> | No | Visual editor used for input field. |
| `maximum` | Integer or Number <br/>(based on the `type`) | No | Maximum allowed value. |
| `minimum` | Integer or Number <br/>(based on the `type`) | No | Minimum allowed value. |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ When a user runs the Actor in the Console, the UI will look like this:

![Video files in Output tab](images/output-schema-combination-example.png)

### Using container URL to display chat client
### Use container URL to display chat client

In this example, an Actor runs a web server that provides a chat interface to an LLM.
The conversation history is then stored in the dataset.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ slug: /actors/development/builds-and-runs

Actor **builds** and **runs** are fundamental concepts within the Apify platform. Understanding them is crucial for effective use of the platform.

## Building an Actor
## Build an Actor

When you start the build process for your Actor, you create a _build_. A build is a Docker image containing your source code and the required dependencies needed to run the Actor:

Expand All @@ -27,7 +27,7 @@ flowchart LR
AD -- "build process" --> Build
```

## Running an Actor
## Run an Actor

To create a _run_, you take your _build_ and start it with some input:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ To prevent data loss, long-running Actors should:

For short-running Actors, the risk of restarts and the cost of repeated runs are low, so you can typically ignore state persistence.

## Understanding migrations
## Understand migrations

A migration occurs when a process running on one server must stop and move to another. During this process:

Expand All @@ -45,7 +45,7 @@ Migrations don't follow a specific schedule. They can occur at any time due to t

By default, an Actor keeps its state in the server's memory. During a server switch, the run loses access to the previous server's memory. Even if data were saved on the server's disk, access to that would also be lost. Note that the Actor run's default dataset, key-value store and request queue are preserved across migrations, by state we mean the contents of runtime variables in the Actor's code.

## Implementing state persistence
## Implement state persistence

The [Apify SDKs](/sdk) handle state persistence automatically.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Set up continuous integration for your Actors using one of these methods:

Choose the method that best fits your workflow.

## Option 1: Trigger builds with a Webhook
## Option 1: Trigger builds with a webhook

1. Push your Actor to a GitHub repository.
1. Go to your Actor's detail page in Apify Console, click on the API tab in the top right, then select API Endpoints. Copy the **Build Actor** API endpoint URL. The format is as follows:
Expand Down
4 changes: 2 additions & 2 deletions sources/platform/actors/development/permissions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ To learn how to migrate your Actors to run under limited permissions, check out

:::

### Configuring Actor permissions level
### Configure Actor permissions level

You can set the permission level for your Actor in the Apify Console under its **Settings** tab. New Actors are configured to use limited permissions by default. Older Actors might still use full permissions until you update their configuration.

Expand All @@ -66,7 +66,7 @@ When possible, design your Actors to use limited permissions and request only th
:::


### Accessing user provided storages
### Access user provided storages

By default, limited-permissions Actors can't access user storages. However, they can access storages that users explicitly provide via the Actor input. To do so, use the input schema to add a storage picker and declare exactly which operations your Actor needs.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ The prompt guides AI coding assistants such as Antigravity, Cursor, Claude Code
1. Create directory: `mkdir my-new-actor`
1. Open the directory in _Antigravity_, _Cursor_, _Claude Code_, _VS Code with GitHub Copilot_, etc.
1. Copy the prompt above and paste it into your AI coding assistant (Agent or Chat)
1. Run it, and develop your first actor with the help of AI
1. Run it, and develop your first Actor with the help of AI

:::info Avoid copy-pasting

Expand All @@ -52,9 +52,9 @@ If you do not have Apify CLI installed, see the [installation guide](/cli/docs/i

The command above will guide you through Apify Actor initialization, where you select an Actor Template that works for you. The result is an initialized Actor (with AGENTS.md) ready for development.

## Use Apify MCP Server
## Use Apify MCP server

The Apify MCP Server has tools to search and fetch documentation. If you set it up in your AI editor, it will help you improve the generated code by providing additional context to the AI.
The Apify MCP server has tools to search and fetch documentation. If you set it up in your AI editor, it will help you improve the generated code by providing additional context to the AI.

:::info Use Apify MCP server configuration

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ Let's now deploy your Actor to the Apify platform, where you can run the Actor o
apify push
```

### Step 5: It's Time to Iterate!
### Step 5: It's time to iterate!

Good job! 🎉 You're ready to develop your Actor. You can make changes to your Actor and implement your use case.

Expand Down
4 changes: 2 additions & 2 deletions sources/platform/actors/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ category: platform
slug: /actors
---

**Learn how to run, develop, and publish Apify Actors serverless cloud programs for web data extraction and workflow automation.**
**Learn how to run, develop, and publish Apify Actors - serverless cloud programs for web data extraction and workflow automation.**

import Card from "@site/src/components/Card";
import CardGrid from "@site/src/components/CardGrid";
Expand Down Expand Up @@ -61,7 +61,7 @@ Build Actors to automate tasks, scrape data, or create custom workflows. The Api

Ready to start? Check out the [Actor development documentation](/platform/actors/development).

## Running Actors
## Run Actors

You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](../collaboration/access_rights.md) them with other people, [publish](./publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize/index.mdx).

Expand Down
2 changes: 1 addition & 1 deletion sources/platform/actors/publishing/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ To ensure long-term quality and improve your chances of successfully monetizing

If you decide to make your Actor's code publicly available on [GitHub](https://github.com), code quality becomes even more crucial, as your Actor may be the first experience some users have with Apify.

### Handling breaking changes
### Handle breaking changes

While refactoring and updating your Actor's code is encouraged, be cautious of making changes that could break the Actor for existing users. If you plan to introduce breaking change, please contact us at [community@apify.com](mailto:community@apify.com) beforehand, and we'll assist you in communicating the change to your users.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ While optional, we recommend offering progressively lower prices for higher disc

Your platform costs are also lower for these higher tier, which helps maintain healthy profit margins. This is further detailed in the [Computing your costs for PPE and PPR Actors](#computing-your-costs-for-ppe-and-ppr-actors) section.

## Implementing discount tiers
## Implement discount tiers

By default, we advise against setting excessively high prices for _FREE_ tier users, as this can limit the ability to evaluate your Actor thoroughly. However, in certain situations, such as protecting your Actor from fraudulent activity or excessive use of your internal APIs, a higher price for _FREE_ tier users might be justified.

Expand Down
4 changes: 2 additions & 2 deletions sources/platform/actors/running/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ And you can use the export button at the bottom left to export the data in multi

And that's it! Now you can get back to the Actor's input, play with it, and try out more of the [Apify Actors](https://apify.com/store) or [build your own](./development).

## Running via Apify API
## Run via Apify API

Actors can also be invoked using the Apify API by sending an HTTP POST request to the [Run Actor](/api/v2/#/reference/actors/run-collection/run-actor) endpoint, such as:

Expand All @@ -66,7 +66,7 @@ An Actor's input and its content type can be passed as a payload of the POST req

> To learn more about this, read the [Run an Actor or task and retrieve data via API](/academy/api/run-actor-and-retrieve-data-via-api) tutorial.

## Running programmatically
## Run programmatically

Actors can also be invoked programmatically from your own applications or from other Actors.

Expand Down
2 changes: 1 addition & 1 deletion sources/platform/actors/running/input_and_output.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ As part of the input, you can also specify run options such as [Build](../develo

:::info Dynamic memory

If the Actor is configured by developer to use [dynamic memory](../development/actor_definition/dynamic_actor_memory/index.md), the system will calculate the optimal memory allocation based on your input. In this case, the **Memory** option acts as an override if you set it, the calculated value will be ignored.
If the Actor is configured by developer to use [dynamic memory](../development/actor_definition/dynamic_actor_memory/index.md), the system will calculate the optimal memory allocation based on your input. In this case, the **Memory** option acts as an override - if you set it, the calculated value will be ignored.

:::

Expand Down
6 changes: 3 additions & 3 deletions sources/platform/actors/running/runs_and_builds.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@ flowchart LR
| FAILED | terminal | Run failed |
| TIMING-OUT | transitional | Timing out now |
| TIMED-OUT | terminal | Timed out |
| ABORTING | transitional | Being aborted by the user |
| ABORTED | terminal | Aborted by the user |
| ABORTING | transitional | Being aborted by the user |
| ABORTED | terminal | Aborted by the user |


### Aborting runs
Expand Down Expand Up @@ -127,6 +127,6 @@ Apify securely stores your ten most recent runs indefinitely, ensuring your reco

**Actor builds** are deleted only when they are _not tagged_ and have not been used for over 90 days.

## Sharing
## Share

Share your Actor runs with other Apify users via the [access rights](../../collaboration/index.md) system.
16 changes: 8 additions & 8 deletions sources/platform/actors/running/store.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ All Actors in [Apify Store](https://apify.com/store) fall into one of the four p

1. [**Rental**](#rental-actors) - to continue using the Actor after the trial period, you must rent the Actor from the developer and pay a flat monthly fee in addition to the costs associated with the platform usage that the Actor generates.
2. [**Pay per result**](#pay-per-result) - you do not pay for platform usage the Actor generates and instead just pay for the results it produces.
3. [**Pay per event**](#pay-per-event) - you pay for specific events the Actor creator defines, such as generating a single result or starting the Actor. Most Actors include platform usage in the price, but some may charge it separately check the Actor's pricing for details.
3. [**Pay per event**](#pay-per-event) - you pay for specific events the Actor creator defines, such as generating a single result or starting the Actor. Most Actors include platform usage in the price, but some may charge it separately - check the Actor's pricing for details.
4. [**Pay per usage**](#pay-per-usage) - you can run the Actor and you pay for the platform usage the Actor generates.

### Rental Actors
Expand All @@ -39,7 +39,7 @@ Most rental Actors have a _free trial_ period. The length of the trial is displa
After a trial period, a flat monthly _Actor rental_ fee is automatically subtracted from your prepaid platform usage in advance for the following month. Most of this fee goes directly to the developer and is paid on top of the platform usage generated by the Actor. You can read more about our motivation for releasing rental Actors in [this blog post](https://blog.apify.com/make-regular-passive-income-developing-web-automation-actors-b0392278d085/) from Apify's CEO Jan Čurn.


#### Rental Actors - Frequently Asked Questions
#### Rental Actors - Frequently asked questions

##### Can I run rental Actors via API or the Apify client?

Expand Down Expand Up @@ -92,7 +92,7 @@ This makes it transparent and easy to estimate upfront costs. If you have any fe

<!-- TODO - add a bit about the ability to set the maximum limits Actor should return -->

#### Pay per result Actors - Frequently Asked Questions
#### Pay per result Actors - Frequently asked questions

##### How do I know an Actor is paid per result?

Expand All @@ -106,7 +106,7 @@ No, the Actor is free to run. You only pay for the results.

##### What happens when I interact with the dataset after the run finishes?

Under the **pay per result** model, all platform costs generated _during the run of an Actor_ are not charged towards your account; you pay for the results instead. After the run finishes, any interactions with the default dataset storing the results, such as reading the results or writing additional data, will incur the standard platform usage costs. But do not worry, in the vast majority of cases, you only want to read the result from the dataset and that costs near to nothing.
Under the **pay per result** model, all platform costs generated _during the run of an Actor_ are not charged towards your account; you pay for the results instead. After the run finishes, any interactions with the default dataset storing the results, such as reading the results or writing additional data, will incur the standard platform usage costs. But do not worry - in the vast majority of cases, you only want to read the result from the dataset and that costs near to nothing.

##### Do I pay for the storage of results on the Apify platform?

Expand Down Expand Up @@ -149,9 +149,9 @@ Most pay per event Actors include platform usage in the event price. However, so

:::

#### Pay per event Actors - Frequently Asked Questions
#### Pay per event Actors - Frequently asked questions

#### How do I know Actor is paid per events?
#### How do I know an Actor is paid per events?

You will see that the Actor is paid per events next to the Actor name.

Expand All @@ -173,7 +173,7 @@ You would still pay for the long term storage of results, same as for pay per re

#### Do I need to pay for platform usage with pay per event Actors?

In most cases, no the majority of pay per event Actors include [platform usage](./usage_and_resources.md) in the event price, so you only pay for the events. However, some Actors may charge platform usage separately, in addition to the event costs. Always check the pricing section on the Actor's pageit clearly states whether platform usage is included or not.
In most cases, no - the majority of pay per event Actors include [platform usage](./usage_and_resources.md) in the event price, so you only pay for the events. However, some Actors may charge platform usage separately, in addition to the event costs. Always check the pricing section on the Actor's page - it clearly states whether platform usage is included or not.

![Pay per event with usage not included in Apify Store](./images/store/pay_per_event_and_usage_example_actor.png)

Expand Down Expand Up @@ -211,7 +211,7 @@ _For more information on platform usage cost see the [usage and resources](./usa

:::

## Reporting issues with Actors
## Report issues with Actors

Each Actor has an **Issues** tab in Apify Console. There, you can open an issue (ticket) and chat with the Actor's author, platform admins,
and other users of this Actor. Please feel free to use the tab to ask any questions, request new features, or give feedback. Alternatively, you can
Expand Down
Loading