diff --git a/sources/platform/actors/development/actor_definition/actor_json.md b/sources/platform/actors/development/actor_definition/actor_json.md index c8a42af095..3786f3c9cb 100644 --- a/sources/platform/actors/development/actor_definition/actor_json.md +++ b/sources/platform/actors/development/actor_definition/actor_json.md @@ -79,7 +79,7 @@ Actor `name`, `version`, `buildTag`, and `environmentVariables` are currently on | `environmentVariables` | Optional | A map of environment variables to be used during local development. These variables will also be applied to the Actor when deployed on the Apify platform. For more details, see the [environment variables](/cli/docs/vars) section of the Apify CLI documentation. | | `dockerfile` | Optional | The path to the Dockerfile to be used for building the Actor on the platform. If not specified, the system will search for Dockerfiles in the `.actor/Dockerfile` and `Dockerfile` paths, in that order. Refer to the [Dockerfile](./docker.md) section for more information. | | `dockerContextDir` | Optional | The path to the directory to be used as the Docker context when building the Actor. The path is relative to the location of the `actor.json` file. This property is useful for monorepos containing multiple Actors. Refer to the [Actor monorepos](../deployment/source_types.md#actor-monorepos) section for more details. | -| `readme` | Optional | The path to the README file to be used on the platform. If not specified, the system will look for README files in the `.actor/README.md` and `README.md` paths, in that order of preference. Check out [Apify Marketing Playbook to learn how to write a quality README files](https://apify.notion.site/How-to-create-an-Actor-README-759a1614daa54bee834ee39fe4d98bc2) guidance. | +| `readme` | Optional | The path to the README file to be used on the platform. If not specified, the system will look for README files in the `.actor/ACTOR.md`, `.actor/README.md`, root `README.md`, and root `README` paths, in that order of preference. Check out [Apify Marketing Playbook to learn how to write a quality README files](https://apify.notion.site/How-to-create-an-Actor-README-759a1614daa54bee834ee39fe4d98bc2) guidance. | | `input` | Optional | You can embed your [input schema](./input_schema/index.md) object directly in `actor.json` under the `input` field. You can also provide a path to a custom input schema. If not provided, the input schema at `.actor/INPUT_SCHEMA.json` or `INPUT_SCHEMA.json` is used, in this order of preference. You can also use the `inputSchema` alias interchangeably. | | `output` | Optional | You can embed your [output schema](./output_schema/index.md) object directly in `actor.json` under the `output` field. You can also provide a path to a custom output schema. [Read more](/platform/actors/development/actor-definition/output-schema) about Actor output schemas. You can also use the `outputSchema` alias interchangeably. | | `changelog` | Optional | The path to the CHANGELOG file displayed in the Information tab of the Actor in Apify Console next to Readme. If not provided, the CHANGELOG at `.actor/CHANGELOG.md` or `CHANGELOG.md` is used, in this order of preference. Your Actor doesn't need to have a CHANGELOG but it is a good practice to keep it updated for published Actors. | diff --git a/sources/platform/actors/development/actor_definition/docker.md b/sources/platform/actors/development/actor_definition/docker.md index 18f8c48156..9f74a3f14f 100644 --- a/sources/platform/actors/development/actor_definition/docker.md +++ b/sources/platform/actors/development/actor_definition/docker.md @@ -152,20 +152,15 @@ To use a custom `Dockerfile`, you can either: If no `Dockerfile` is provided, the system uses the following default: ```dockerfile -FROM apify/actor-node:24 - -COPY --chown=myuser:myuser package*.json ./ +FROM apify/actor-node:20 -RUN npm --quiet set progress=false \ - && npm install --only=prod --no-optional \ - && echo "Installed NPM packages:" \ - && (npm list --only=prod --no-optional --all || true) \ - && echo "Node.js version:" \ - && node --version \ - && echo "NPM version:" \ - && npm --version +# Copy all files and directories from the directory to the Docker image +COPY . ./ -COPY --chown=myuser:myuser . ./ +# Install NPM packages, skip optional and development dependencies to keep the image small, +# avoid logging too much and show the dependency tree +RUN npm install --quiet --only=prod --no-optional \ + && (npm list || true) ``` For more information about `Dockerfile` syntax and commands, see the [Dockerfile reference](https://docs.docker.com/reference/dockerfile/). diff --git a/sources/platform/actors/development/actor_definition/dynamic_actor_memory/index.md b/sources/platform/actors/development/actor_definition/dynamic_actor_memory/index.md index 89ce713ff9..3b0a456247 100644 --- a/sources/platform/actors/development/actor_definition/dynamic_actor_memory/index.md +++ b/sources/platform/actors/development/actor_definition/dynamic_actor_memory/index.md @@ -142,6 +142,7 @@ After the expression is evaluated, the memory value goes through these steps: - 900 → 1024 MB - 3,600 → 4096 MB +1. The value is capped to the maximum Actor memory allowed by your subscription plan. If an expression requests more memory than your plan allows, the run gets the plan limit instead, even when the requested value is below 32 GB. 1. If the Actor has minimum or maximum memory limits defined (`minMemoryMbytes` / `maxMemoryMbytes`), the value is adjusted to stay within those limits. 1. The value is adjusted to stay within platform limits (128 MB to 32 GB). diff --git a/sources/platform/actors/development/actor_definition/input_schema/secret_input.md b/sources/platform/actors/development/actor_definition/input_schema/secret_input.md index 89c360b17f..74f414730e 100644 --- a/sources/platform/actors/development/actor_definition/input_schema/secret_input.md +++ b/sources/platform/actors/development/actor_definition/input_schema/secret_input.md @@ -78,7 +78,7 @@ If you read the `INPUT` key from the Actor run's default key-value store directl ## Encryption mechanism -The encryption mechanism used for encrypting the secret input fields is the same dual encryption as in [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy#/media/File:PGP_diagram.svg). The secret input field is encrypted using a random key, using the `aes-256-gcm` cipher, and then the key is encrypted using a 2048-bit RSA key. +The encryption mechanism used for encrypting the secret input fields is the same dual encryption as in [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy#/media/File:PGP_diagram.svg). The secret input field is encrypted using a random key, using the `aes-256-ctr` cipher, and then the key is encrypted using a 2048-bit RSA key. The RSA key is unique for each combination of user and Actor, ensuring that no Actor can decrypt input intended for runs of another Actor by the same user, and no user can decrypt input runs of the same Actor by a different user. This isolation of decryption keys enhances the security of sensitive input data. diff --git a/sources/platform/actors/development/actor_definition/output_schema/index.md b/sources/platform/actors/development/actor_definition/output_schema/index.md index 96694a4d10..70da5636f1 100644 --- a/sources/platform/actors/development/actor_definition/output_schema/index.md +++ b/sources/platform/actors/development/actor_definition/output_schema/index.md @@ -70,20 +70,20 @@ The output schema defines the collections of keys and their properties. It allow ### Output schema object definition -| Property | Type | Required | Description | -|-----------------------------------|-------------------------------|----------|-----------------------------------------------------------------------------------------------------------------| -| `actorOutputSchemaVersion` | integer | true | Specifies the version of output schema structure document.
Currently only version 1 is available. | -| `title` | string | true | Title of the schema | -| `description` | string | false | Description of the schema | -| `properties` | Object | true | An object where each key is an output ID and its value is an Output object definition (see below). | +| Property | Type | Required | Description | +|----------------------------|---------|----------|--------------------------------------------------------------------------------------------------------| +| `actorOutputSchemaVersion` | integer | true | Specifies the version of output schema structure document.
Currently only version 1 is available. | +| `title` | string | true | Title of the schema | +| `description` | string | false | Description of the schema | +| `properties` | Object | true | An object where each key is an output ID and its value is an Output object definition (see below). | ### Output object definition -| Property | Type | Required | Description | -|----------------|--------------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------| -| `title` | string | true | The output's title, shown in the run's output tab if there are multiple outputs and in API as key for the generated output URL. | -| `description` | string | false | A description of the output. Only used when reading the schema (useful for LLMs). | -| `template` | string | true | Defines a URL template that generates the output link using `{{variable}}` syntax. See [How templates work](#how-templates-work) for details. | +| Property | Type | Required | Description | +|---------------|--------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `title` | string | true | The output's title, shown in the run's output tab if there are multiple outputs. In the API response, the generated output URL is keyed by the property name (output ID), not by `title`. | +| `description` | string | false | A description of the output. Only used when reading the schema (useful for LLMs). | +| `template` | string | true | Defines a URL template that generates the output link using `{{variable}}` syntax. See [How templates work](#how-templates-work) for details. | ### Available template variables @@ -91,7 +91,7 @@ The output schema defines the collections of keys and their properties. It allow |-----------------------------------------|--------|------------------------------------------------------------------------------------------------------------------| | `links` | object | Contains quick links to most commonly used URLs | | `links.publicRunUrl` | string | Public run url in format `https://console.apify.com/view/runs/:runId` | -| `links.consoleRunUrl` | string | Console run url in format `https://console.apify.com/actors/runs/:runId` | +| `links.consoleRunUrl` | string | Console run url in format `https://console.apify.com/actors/:actorId/runs/:runId` | | `links.apiRunUrl` | string | API run url in format `https://api.apify.com/v2/actor-runs/:runId` | | `links.apiDefaultDatasetUrl` | string | API url of default dataset in format `https://api.apify.com/v2/datasets/:defaultDatasetId` | | `links.apiDefaultKeyValueStoreUrl` | string | API url of default key-value store in format `https://api.apify.com/v2/key-value-stores/:defaultKeyValueStoreId` | diff --git a/sources/platform/actors/development/actor_definition/web_server_schema/index.md b/sources/platform/actors/development/actor_definition/web_server_schema/index.md index cf13896e1b..0052d9d903 100644 --- a/sources/platform/actors/development/actor_definition/web_server_schema/index.md +++ b/sources/platform/actors/development/actor_definition/web_server_schema/index.md @@ -2,13 +2,13 @@ title: Web server schema sidebar_label: Web server schema sidebar_position: 7 -description: Attach an OpenAPI specification to your Actor to enable the interactive Standby tab in Apify Console and Apify Store, where you can browse and test endpoints. +description: Attach an OpenAPI specification to your Actor to enable the interactive Endpoints tab in Apify Console and Apify Store, where you can browse and test endpoints. slug: /actors/development/actor-definition/web-server-schema --- -The `webServerSchema` field in `.actor/actor.json` attaches an [OpenAPI 3.x](https://spec.openapis.org/oas/v3.0.3) specification to your Actor. You can define the schema for any Actor that exposes an HTTP server. When you enable [standby mode](/platform/actors/development/programming-interface/standby), Apify Console and Apify Store render an interactive **Standby** tab on the Actor's detail page. From there you can browse endpoints, inspect request and response schemas, and send requests directly from the browser. +The `webServerSchema` field in `.actor/actor.json` attaches an [OpenAPI 3.x](https://spec.openapis.org/oas/v3.0.3) specification to your Actor. You can define the schema for any Actor that exposes an HTTP server. When you enable [standby mode](/platform/actors/development/programming-interface/standby), Apify Console and Apify Store render an interactive **Endpoints** tab on the Actor's detail page. From there you can browse endpoints, inspect request and response schemas, and send requests directly from the browser. -![Apify Console showing the Standby tab with the Endpoints section rendered from the Actor's OpenAPI spec](../images/console-standby-openapi-swagger.png) +![Apify Console showing the Endpoints tab rendered from the Actor's OpenAPI spec](../images/console-standby-openapi-swagger.png) ## Define the web server schema @@ -92,7 +92,7 @@ Follow the standard [OpenAPI 3.x format](https://spec.openapis.org/oas/latest.ht The build process validates `webServerSchema`, similar to other Actor schemas like [input schema](/platform/actors/development/actor-definition/input-schema) and [dataset schema](/platform/actors/development/actor-definition/dataset-schema). If the spec is malformed, the build fails with a validation error. -Once deployed, the **Standby** tab appears automatically on the Actor's detail page when you enable [standby mode](/platform/actors/development/programming-interface/standby). It renders your spec with [Swagger UI](https://swagger.io/tools/swagger-ui/) and handles authentication automatically - Actor users can send requests without configuring API tokens. +Once deployed, the **Endpoints** tab appears automatically on the Actor's detail page when you enable [standby mode](/platform/actors/development/programming-interface/standby). It renders your spec with [Swagger UI](https://swagger.io/tools/swagger-ui/) and handles authentication automatically - Actor users can send requests without configuring API tokens. :::note Servers field is overwritten @@ -102,7 +102,7 @@ Your `servers` array is replaced with the Actor's standby URL at display time. C ## Related fields -| Field | Description | -| --- | --- | -| `usesStandbyMode` | Must be `true` for the **Standby** tab to appear. See [standby mode](/platform/actors/development/programming-interface/standby). | -| `webServerSchema` | The OpenAPI spec that powers the **Standby** tab. Defined in [`.actor/actor.json`](/platform/actors/development/actor-definition/actor-json) as an inline object or a path to a JSON file. | +| Field | Description | +|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `usesStandbyMode` | Must be `true` for the **Endpoints** tab to appear. See [standby mode](/platform/actors/development/programming-interface/standby). | +| `webServerSchema` | The OpenAPI spec that powers the **Endpoints** tab. Defined in [`.actor/actor.json`](/platform/actors/development/actor-definition/actor-json) as an inline object or a path to a JSON file. | diff --git a/sources/platform/actors/development/deployment/continuous_integration.md b/sources/platform/actors/development/deployment/continuous_integration.md index 4a6ec15eee..a3f5c4fb6d 100644 --- a/sources/platform/actors/development/deployment/continuous_integration.md +++ b/sources/platform/actors/development/deployment/continuous_integration.md @@ -143,8 +143,8 @@ When using the webhook approach, the Actor must have its source set to a Git rep ::: 1. Go to your Actor's detail page in Apify Console. -1. Go to the **API** tab. -1. Select **API Endpoints** and copy the **Build Actor** API endpoint URL: +1. Select the **API** dropdown button. +1. Select **API endpoints** and copy the **Build Actor** API endpoint URL: ```text https://api.apify.com/v2/actors/YOUR-ACTOR-NAME/builds?token=YOUR-TOKEN-HERE&version=0.0&tag=latest&waitForFinish=60 diff --git a/sources/platform/actors/development/deployment/source_types.md b/sources/platform/actors/development/deployment/source_types.md index fa3d535123..40e05edc8b 100644 --- a/sources/platform/actors/development/deployment/source_types.md +++ b/sources/platform/actors/development/deployment/source_types.md @@ -69,7 +69,7 @@ Remember that each key can only be used once per Git hosting service (GitHub, Bi ### Actor monorepos -To manage multiple Actors in a single repository, use the `dockerContextDir` property in the [Actor definition](/platform/actors/development/actor-definition/actor-json) to set the Docker context directory (if not provided then the repository root is used). In the Dockerfile, copy both the Actor's source and any shared code into the Docker image. +To manage multiple Actors in a single repository, use the `dockerContextDir` property in the [Actor definition](/platform/actors/development/actor-definition/actor-json) to set the Docker context directory (if not provided, the Actor's source directory - the directory selected as the Actor's root - is used). In the Dockerfile, copy both the Actor's source and any shared code into the Docker image. To enable sharing Dockerfiles between multiple Actors, the Actor build process passes the `ACTOR_PATH_IN_DOCKER_CONTEXT` build argument to the Docker build. It contains the relative path from `dockerContextDir` to the directory selected as the root of the Actor in Apify Console (the "directory" part of the Actor's git URL). diff --git a/sources/platform/actors/development/index.md b/sources/platform/actors/development/index.md index 3c14545181..b007ca83e8 100644 --- a/sources/platform/actors/development/index.md +++ b/sources/platform/actors/development/index.md @@ -8,7 +8,7 @@ slug: /actors/development This section will guide you through the whole story of [Actor](../index.mdx) development. -You can follow chapters sequentially from [Quick start](/platform/actors/development/quick-start), where you learn how to create your first Actor in just a few minutes, through the more technical sections describing the whole Actor model, up to the [Performance](/sources/platform/actors/development/performance.md) section, where you learn how to fine-tune your Actor to get the most out of the Apify platform. +You can follow chapters sequentially from [Quick start](/platform/actors/development/quick-start), where you learn how to create your first Actor in just a few minutes, through the more technical sections describing the whole Actor model, up to the [Performance](/platform/actors/development/performance) section, where you learn how to fine-tune your Actor to get the most out of the Apify platform. import Card from "@site/src/components/Card"; import CardGrid from "@site/src/components/CardGrid"; diff --git a/sources/platform/actors/development/performance.md b/sources/platform/actors/development/performance.md index 9f6770be26..a54db7351a 100644 --- a/sources/platform/actors/development/performance.md +++ b/sources/platform/actors/development/performance.md @@ -22,7 +22,7 @@ When you build a Docker image, Docker caches the layers that haven't changed. Th Consider the following Dockerfile: ```dockerfile -FROM apify/actor-node:16 +FROM apify/actor-node:24 COPY package*.json ./ diff --git a/sources/platform/actors/development/programming_interface/container_web_server.md b/sources/platform/actors/development/programming_interface/container_web_server.md index 7e061ecb0f..bf131a4de4 100644 --- a/sources/platform/actors/development/programming_interface/container_web_server.md +++ b/sources/platform/actors/development/programming_interface/container_web_server.md @@ -22,7 +22,7 @@ The container web server provides a way how to connect to one specific Actor run You can find the container URL in three locations: -- In the web application, on the Actor run details page as the **Container URL** field. +- In the web application, on the Actor run details page as the **Live view URL** field. - In the API as the `containerUrl` property of the [Run object](/api/v2/actor-run-get). - In the Actor run's container as the `ACTOR_WEB_SERVER_URL` environment variable. diff --git a/sources/platform/actors/development/programming_interface/environment_variables.md b/sources/platform/actors/development/programming_interface/environment_variables.md index d457b1bd11..b344d5356d 100644 --- a/sources/platform/actors/development/programming_interface/environment_variables.md +++ b/sources/platform/actors/development/programming_interface/environment_variables.md @@ -32,30 +32,31 @@ System variables apply only to Actor runs and are never passed to builds - not e Variables prefixed with `ACTOR_` are defined by the [Actor specification](https://whitepaper.actor/#environment-variables). They describe the run's execution context - identifiers, default storages, resource limits, and timing - and aren't specific to the Apify platform. -| Environment variable | Description | -| -------------------- | ----------- | -| `ACTOR_ID` | ID of the Actor. | -| `ACTOR_FULL_NAME` | Full technical name of the Actor, in the format `owner-username/actor-name`. | -| `ACTOR_RUN_ID` | ID of the Actor run. | -| `ACTOR_DEFAULT_DATASET_ID` | Unique identifier for the default dataset associated with the current Actor run. | -| `ACTOR_DEFAULT_KEY_VALUE_STORE_ID` | Unique identifier for the default key-value store associated with the current Actor run. | -| `ACTOR_DEFAULT_REQUEST_QUEUE_ID` | Unique identifier for the default request queue associated with the current Actor run. | -| `ACTOR_INPUT_KEY` | Key of the record in the default key-value store that holds the [Actor input](/platform/actors/running/input-and-output#input). | -| `ACTOR_STORAGES_JSON` | JSON-encoded unique identifiers of storages associated with the current Actor run, e.g. `{ "keyValueStores": { "default": "" }, "datasets": { "default": "" }, "requestQueues": { "default": "" } }`. | -| `ACTOR_MEMORY_MBYTES` | Size of memory allocated for the Actor run, in megabytes. Can be used to optimize memory usage or finetuning of low-level external libraries. | -| `ACTOR_MAX_TOTAL_CHARGE_USD` | For pay-per-event Actors, the user-set limit on run cost. Do not exceed this limit. | -| `ACTOR_PERMISSION_LEVEL` | [Permission level](../../running/permissions.md) the Actor is run under (`LIMITED_PERMISSIONS` or `FULL_PERMISSIONS`). This determines what resources in the user’s account the Actor can access. | -| `ACTOR_RESTART_ON_ERROR` | If **1**, the Actor run will be restarted if it fails. | -| `ACTOR_STARTED_AT` | Date when the Actor was started. | -| `ACTOR_TIMEOUT_AT` | Date when the Actor will time out. | -| `ACTOR_BUILD_ID` | ID of the Actor build used in the run. | -| `ACTOR_BUILD_NUMBER` | Build number of the Actor build used in the run. | -| `ACTOR_BUILD_TAGS` | A comma-separated list of tags of the Actor build used in the run. Note that this environment variable is assigned at the time of start of the Actor and doesn't change over time, even if the assigned build tags change. | -| `ACTOR_TASK_ID` | ID of the Actor task. Empty if Actor is run outside of any task, e.g. directly using the API. | -| `ACTOR_WEB_SERVER_URL` | Unique public URL for accessing the Actor run web server from the outside world. | -| `ACTOR_WEB_SERVER_PORT` | TCP port for the Actor to start an HTTP server on. This server can be used to receive external messages or expose monitoring and control interfaces. The server also receives messages from the [Actor Standby](/platform/actors/development/programming-interface/standby) mode. | -| `ACTOR_STANDBY_URL` | URL for accessing web servers of Actor runs in the [Actor Standby](/platform/actors/development/programming-interface/standby) mode. | -| `ACTOR_EVENTS_WEBSOCKET_URL` | Websocket URL where Actor may listen for [events](/platform/actors/development/programming-interface/system-events) from Actor platform. | +| Environment variable | Description | +|------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `ACTOR_ID` | ID of the Actor. | +| `ACTOR_FULL_NAME` | Full technical name of the Actor, in the format `owner-username/actor-name`. | +| `ACTOR_RUN_ID` | ID of the Actor run. | +| `ACTOR_DEFAULT_DATASET_ID` | Unique identifier for the default dataset associated with the current Actor run. | +| `ACTOR_DEFAULT_KEY_VALUE_STORE_ID` | Unique identifier for the default key-value store associated with the current Actor run. | +| `ACTOR_DEFAULT_REQUEST_QUEUE_ID` | Unique identifier for the default request queue associated with the current Actor run. | +| `ACTOR_INPUT_KEY` | Key of the record in the default key-value store that holds the [Actor input](/platform/actors/running/input-and-output#input). | +| `ACTOR_STORAGES_JSON` | JSON-encoded unique identifiers of storages associated with the current Actor run, e.g. `{ "keyValueStores": { "default": "" }, "datasets": { "default": "" }, "requestQueues": { "default": "" } }`. | +| `ACTOR_MEMORY_MBYTES` | Size of memory allocated for the Actor run, in megabytes. Can be used to optimize memory usage or finetuning of low-level external libraries. | +| `ACTOR_MAX_TOTAL_CHARGE_USD` | For pay-per-event Actors, the user-set limit on run cost. Do not exceed this limit. | +| `ACTOR_MAX_PAID_DATASET_ITEMS` | For pay-per-result Actors, the user-set limit on the number of dataset items to charge for. Empty if not set. | +| `ACTOR_PERMISSION_LEVEL` | [Permission level](../../running/permissions.md) the Actor is run under (`LIMITED_PERMISSIONS` or `FULL_PERMISSIONS`). This determines what resources in the user’s account the Actor can access. | +| `ACTOR_RESTART_ON_ERROR` | If **1**, the Actor run will be restarted if it fails. | +| `ACTOR_STARTED_AT` | Date when the Actor was started. | +| `ACTOR_TIMEOUT_AT` | Date when the Actor will time out. | +| `ACTOR_BUILD_ID` | ID of the Actor build used in the run. | +| `ACTOR_BUILD_NUMBER` | Build number of the Actor build used in the run. | +| `ACTOR_BUILD_TAGS` | A comma-separated list of tags of the Actor build used in the run. Note that this environment variable is assigned at the time of start of the Actor and doesn't change over time, even if the assigned build tags change. | +| `ACTOR_TASK_ID` | ID of the Actor task. Empty if Actor is run outside of any task, e.g. directly using the API. | +| `ACTOR_WEB_SERVER_URL` | Unique public URL for accessing the Actor run web server from the outside world. | +| `ACTOR_WEB_SERVER_PORT` | TCP port for the Actor to start an HTTP server on. This server can be used to receive external messages or expose monitoring and control interfaces. The server also receives messages from the [Actor Standby](/platform/actors/development/programming-interface/standby) mode. | +| `ACTOR_STANDBY_URL` | URL for accessing web servers of Actor runs in the [Actor Standby](/platform/actors/development/programming-interface/standby) mode. | +| `ACTOR_EVENTS_WEBSOCKET_URL` | Websocket URL where Actor may listen for [events](/platform/actors/development/programming-interface/system-events) from Actor platform. | @@ -70,23 +71,24 @@ All date-related variables use the UTC timezone and are in [ISO 8601](https://en Variables prefixed with `APIFY_` are Apify-platform-specific extensions that go beyond the Actor specification. They expose features unique to the Apify platform, such as your API token, Apify Proxy, and details about the user who started the run. -| Environment variable | Description | -| -------------------- | ----------- | -| `APIFY_TOKEN` | API token of the user who started the Actor. | -| `APIFY_USER_ID` | ID of the user who started the Actor. May differ from the Actor owner. | -| `APIFY_USER_IS_PAYING` | If it is `1`, it means that the user who started the Actor is a paying user. | -| `APIFY_IS_AT_HOME` | Contains **1** if the Actor is running on Apify servers. | -| `APIFY_DEDICATED_CPUS` | Number of CPU cores reserved for the Actor, based on allocated memory. | -| `APIFY_PROXY_PASSWORD` | Password for accessing Apify Proxy services. This password enables the Actor to utilize proxy servers on behalf of the user who initiated the Actor run. | -| `APIFY_PROXY_PORT` | TCP port number to be used for connecting to Apify Proxy. | -| `APIFY_PROXY_STATUS_URL` | URL for retrieving proxy status information. Appending `?format=json` to this URL returns the data in JSON format for programmatic processing. | -| `APIFY_API_PUBLIC_BASE_URL` | Public URL of the Apify API. May be used to interact with the platform programmatically. Typically set to `api.apify.com`. | -| `APIFY_MCP_PROXY_URL` | Base URL of the Apify MCP Proxy. Connect to an [MCP connector](/platform/integrations/mcp-connectors) at `${APIFY_MCP_PROXY_URL}/` using `APIFY_TOKEN` as the bearer token. | -| `APIFY_WORKFLOW_KEY` | Identifier used for grouping related runs and API calls together. | -| `APIFY_META_ORIGIN` | Specifies how an Actor run was started. Possible values are in [Runs and builds](/platform/actors/running/runs-and-builds#origin) documentation. | -| `APIFY_INPUT_SECRETS_PRIVATE_KEY_FILE` | Path to the secret key used to decrypt [Secret inputs](/platform/actors/development/actor-definition/input-schema/secret-input). | -| `APIFY_INPUT_SECRETS_PRIVATE_KEY_PASSPHRASE` | Passphrase for the input secret key specified in `APIFY_INPUT_SECRETS_PRIVATE_KEY_FILE`. | -| ~~`APIFY_HEADLESS`~~ | _Deprecated_ - on the Apify platform this is always set to **1**, so web browsers inside the Actor always run in headless mode (no windowing system available). | +| Environment variable | Description | +|----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `APIFY_TOKEN` | API token of the user who started the Actor. | +| `APIFY_USER_ID` | ID of the user who started the Actor. May differ from the Actor owner. | +| `APIFY_USER_IS_PAYING` | If it is `1`, it means that the user who started the Actor is a paying user. | +| `APIFY_IS_AT_HOME` | Contains **1** if the Actor is running on Apify servers. | +| `APIFY_DEDICATED_CPUS` | Number of CPU cores reserved for the Actor, based on allocated memory. | +| `APIFY_PROXY_PASSWORD` | Password for accessing Apify Proxy services. This password enables the Actor to utilize proxy servers on behalf of the user who initiated the Actor run. | +| `APIFY_PROXY_HOSTNAME` | Hostname of the Apify Proxy to use when building a proxy connection string. | +| `APIFY_PROXY_PORT` | TCP port number to be used for connecting to Apify Proxy. | +| `APIFY_PROXY_STATUS_URL` | URL for retrieving proxy status information. Appending `?format=json` to this URL returns the data in JSON format for programmatic processing. | +| `APIFY_API_PUBLIC_BASE_URL` | Public URL of the Apify API. May be used to interact with the platform programmatically. Typically set to `api.apify.com`. | +| `APIFY_MCP_PROXY_URL` | Base URL of the Apify MCP Proxy. Connect to an [MCP connector](/platform/integrations/mcp-connectors) at `${APIFY_MCP_PROXY_URL}/` using `APIFY_TOKEN` as the bearer token. | +| `APIFY_WORKFLOW_KEY` | Identifier used for grouping related runs and API calls together. | +| `APIFY_META_ORIGIN` | Specifies how an Actor run was started. Possible values are in [Runs and builds](/platform/actors/running/runs-and-builds#origin) documentation. | +| `APIFY_INPUT_SECRETS_PRIVATE_KEY_FILE` | Path to the secret key used to decrypt [Secret inputs](/platform/actors/development/actor-definition/input-schema/secret-input). | +| `APIFY_INPUT_SECRETS_PRIVATE_KEY_PASSPHRASE` | Passphrase for the input secret key specified in `APIFY_INPUT_SECRETS_PRIVATE_KEY_FILE`. | +| ~~`APIFY_HEADLESS`~~ | _Deprecated_ - on the Apify platform this is always set to **1**, so web browsers inside the Actor always run in headless mode (no windowing system available). | ## Custom environment variables diff --git a/sources/platform/actors/development/programming_interface/index.mdx b/sources/platform/actors/development/programming_interface/index.mdx index b51c87ddc2..57d51a48f2 100644 --- a/sources/platform/actors/development/programming_interface/index.mdx +++ b/sources/platform/actors/development/programming_interface/index.mdx @@ -13,7 +13,7 @@ This chapter will guide you through all the commands you need to build your firs **Actor Standby**, and you can also prevent users from overriding them. Anyone using the Actor-level hostname always gets the Actor's default configuration. To use a custom configuration, create a new task from the Actor and modify its Standby configuration as needed. Note that the task has a specific hostname, so make sure to use that in your application if you wish to use the custom configuration. ## Are the Standby runs billed differently diff --git a/sources/platform/actors/running/runs_and_builds.md b/sources/platform/actors/running/runs_and_builds.md index aab1249697..2189ea5f6d 100644 --- a/sources/platform/actors/running/runs_and_builds.md +++ b/sources/platform/actors/running/runs_and_builds.md @@ -58,16 +58,18 @@ To view what's happening while the Actor is running: Both **Actor runs** and **builds** have the **Origin** field indicating how the Actor run or build was invoked, respectively. The origin is displayed in Apify Console and available via [API](https://docs.apify.com/api/v2/actor-run-get) in the `meta.origin` field. -|Name|Origin| -|:---|:---| -|`DEVELOPMENT`|Manually from Apify Console in the Development mode (own Actor)| -|`WEB`|Manually from Apify Console in "normal" mode (someone else's Actor or task)| -|`API`|From [Apify API](https://docs.apify.com/api)| -|`CLI`|From [Apify CLI](https://docs.apify.com/cli/)| -|`SCHEDULER`|Using a schedule| -|`WEBHOOK`|Using a webhook| -|`ACTOR`|From another Actor run| -|`STANDBY`|From [Actor Standby](./standby)| +| Name | Origin | +|:--------------|:----------------------------------------------------------------------------| +| `DEVELOPMENT` | Manually from Apify Console in the Development mode (own Actor) | +| `WEB` | Manually from Apify Console in "normal" mode (someone else's Actor or task) | +| `API` | From [Apify API](https://docs.apify.com/api) | +| `CLI` | From [Apify CLI](https://docs.apify.com/cli/) | +| `CI` | From a continuous integration pipeline | +| `SCHEDULER` | Using a schedule | +| `WEBHOOK` | Using a webhook | +| `ACTOR` | From another Actor run | +| `STANDBY` | From [Actor Standby](./standby) | +| `MCP` | From an MCP (Model Context Protocol) client | ## Lifecycle @@ -119,7 +121,7 @@ You can abort a run in Apify Console using the **Abort** button or via API using ### Resurrection of finished run -Any Actor run in a terminal state, i.e., run with status **FINISHED**, **FAILED**, **ABORTED**, and **TIMED-OUT**, might be resurrected back to a **RUNNING** state. This is helpful in many cases, for example, when the timeout for an Actor run was too low or in case of an unexpected error. +Any Actor run in a terminal state, i.e., run with status **SUCCEEDED**, **FAILED**, **ABORTED**, and **TIMED-OUT**, might be resurrected back to a **RUNNING** state. This is helpful in many cases, for example, when the timeout for an Actor run was too low or in case of an unexpected error. The whole process of resurrection looks as follows: diff --git a/sources/platform/actors/running/store/reviews.mdx b/sources/platform/actors/running/store/reviews.mdx index 4b4606a8f4..bbff842450 100644 --- a/sources/platform/actors/running/store/reviews.mdx +++ b/sources/platform/actors/running/store/reviews.mdx @@ -50,7 +50,7 @@ To report a review: 1. On a review, select **Options** > **Report**. 1. In **Reason for reporting**, select the right [category from a dropdown list](#reason-for-reporting). -1. _(Optional)_ In **Additional details**, add a comment to the report. +1. _(Optional)_ In **Details**, add a comment to the report. 1. Select **Submit**. ### Reasons for reporting a review {#reason-for-reporting}