diff --git a/.github/styles/Apify/Apify.yml b/.github/styles/Apify/Apify.yml index ff61ff6ca2..12077e4473 100644 --- a/.github/styles/Apify/Apify.yml +++ b/.github/styles/Apify/Apify.yml @@ -1,10 +1,24 @@ extends: substitution message: "Use '%s' instead of '%s'." -ignorecase: false +ignorecase: true level: warning +scope: text swap: - Apify Dashboard: Apify Console - apify freelancers: Apify freelancers - Apify Platform: Apify platform - '(?:[Tt]he\s)?[Aa]pify\sproxy': Apify Proxy + # Product name changes + 'apify dashboard': Apify Console + 'apify console': Apify Console + 'apify store': Apify Store + 'the apify console': Apify Console + 'the apify store': Apify Store + + # Capitalization fixes + 'apify freelancers': Apify freelancers + 'apify platform': Apify platform + + # Proxy variations (simplified) + 'apify proxy': Apify Proxy + 'the apify proxy': Apify Proxy + + # Common abbreviations circa: approx. + 'ca\.': circa diff --git a/.github/styles/Apify/Capitalization.yml b/.github/styles/Apify/Capitalization.yml index 367cb9a9e0..f128166a09 100644 --- a/.github/styles/Apify/Capitalization.yml +++ b/.github/styles/Apify/Capitalization.yml @@ -1,7 +1,9 @@ -extends: existence -message: "The word '%s' should always be capitalized." +extends: substitution +message: "Use '%s' instead of '%s'." ignorecase: false level: error -tokens: - - '\bactor\b' - - '\bactors\b' +nonword: true +scope: text,~alt,~code +swap: + '\bactor\b': Actor + '\bactors\b': Actors diff --git a/.github/styles/config/vocabularies/Docs/accept.txt b/.github/styles/config/vocabularies/Docs/accept.txt index 29858b448f..f6466a386c 100644 --- a/.github/styles/config/vocabularies/Docs/accept.txt +++ b/.github/styles/config/vocabularies/Docs/accept.txt @@ -16,6 +16,7 @@ node_modules SDK Dockerfile Docker's +CAPTCHAs Docusaurus navbar @@ -67,7 +68,7 @@ exploitability [Ww]hitepaper [Cc]ron scalably -metamorph +[Mm]etamorph hostname IPs unscoped @@ -89,8 +90,8 @@ preconfigured devs asyncio backlinks? -captchas? -Chatbot + + combinator deduplicating dev diff --git a/.vale.ini b/.vale.ini index 8d6bbb1d0e..8178ef411d 100644 --- a/.vale.ini +++ b/.vale.ini @@ -1,6 +1,6 @@ StylesPath = .github/styles MinAlertLevel = warning -IgnoredScopes = code, tt, table, tr, td, frontmatter, link, alt +IgnoredScopes = code, tt, table, tr, td, frontmatter, link, alt, heading Vocab = Docs @@ -12,7 +12,7 @@ mdx = md [*.md] BasedOnStyles = Vale, Apify, write-good, Microsoft # Ignore URLs, HTML/XML tags, lines with =, emails, curly braces, inline code -TokenIgnores = (<\/?[A-Z][^>]*>), ([^\n]+=[^\n]*), ([^\n]+@[^\n]+\.[^\n]), ({[^}]*}) +TokenIgnores = (<\/?[A-Z][^>]*>), ([^\n]+@[^\n]+\.[^\n]), ({[^}]*}) # Ignore HTML comments and Markdown code blocks BlockIgnores = (?s) ()|(```.*?```) @@ -25,14 +25,9 @@ Microsoft.Contractions = NO Microsoft.Foreign = NO Microsoft.We = NO Microsoft.Quotes = NO -Microsoft.ThereIs = NO Microsoft.Auto = NO Microsoft.URLFormat = NO Microsoft.GeneralURL = NO -Microsoft.RangeFormat = NO -Apify.Apify = NO -Apify.Capitalization = NO -Apify.Languages = NO [{README.md,CONTRIBUTING.md}] Apify.H1 = NO diff --git a/sources/platform/actors/development/deployment/source_types.md b/sources/platform/actors/development/deployment/source_types.md index f747fcc628..07c716a052 100644 --- a/sources/platform/actors/development/deployment/source_types.md +++ b/sources/platform/actors/development/deployment/source_types.md @@ -23,7 +23,7 @@ This section explains the various sources types available for Apify Actors and h This is the default option when your Actor's source code is hosted on the Apify platform. It offers quick previews and updates to your source code, easy file and directory browsing, and direct testing of the [`INPUT_SCHEMA.json`](/platform/actors/development/actor-definition/input-schema) on the Apify platform. -A `Dockerfile` is mandatory for all Actors. When using the default NodeJS Dockerfile, you'll typically need `main.js` for your source code and `package.json` for [NPM](https://www.npmjs.com/) package configurations. +A `Dockerfile` is mandatory for all Actors. When using the default NodeJS Dockerfile, you'll typically need `main.js` for your source code and `package.json` for [npm](https://www.npmjs.com/) package configurations. For more information on creating custom Dockerfiles or using Apify's base images, refer to the [Dockerfile](/platform/actors/development/actor-definition/dockerfile#custom-dockerfile) and [base Docker images](/platform/actors/development/actor-definition/dockerfile#base-docker-images) documentation. diff --git a/sources/platform/actors/development/programming_interface/environment_variables.md b/sources/platform/actors/development/programming_interface/environment_variables.md index b64da0dc06..3daf654ccf 100644 --- a/sources/platform/actors/development/programming_interface/environment_variables.md +++ b/sources/platform/actors/development/programming_interface/environment_variables.md @@ -65,7 +65,7 @@ Here's a table of key system environment variables: | `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_WEB_SERVER_URL` | Unique public URL for accessing the Actor run web server from the outside world. | | `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_DEDICATED_CPUS` | Number of CPU cores reserved for the actor, based on allocated memory. | +| `APIFY_DEDICATED_CPUS` | Number of CPU cores reserved for the Actor, based on allocated memory. | | `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_KEY_FILE` | Path to the secret key used to decrypt [Secret inputs](/platform/actors/development/actor-definition/input-schema/secret-input). | diff --git a/sources/platform/actors/development/programming_interface/metamorph.md b/sources/platform/actors/development/programming_interface/metamorph.md index 26c2fd3d65..91b0b95642 100644 --- a/sources/platform/actors/development/programming_interface/metamorph.md +++ b/sources/platform/actors/development/programming_interface/metamorph.md @@ -18,7 +18,7 @@ Metamorph is a powerful operation that transforms an Actor run into the run of a ## Understand metamorph -The metamorph process involves several key steps. It stops the current Actor's Docker container, then starts a new container using a different Docker image. During this transition, all default storages are preserved. The new input is stored under the _INPUT-METAMORPH-1_ key in the default key-value store, ensuring seamless data transfer between Actor runs. +The metamorph process involves several key steps. It stops the current Actor's Docker container, then starts a new container using a different Docker image. During this transition, all default storages are preserved. The new input is stored under the `INPUT-METAMORPH-1` key in the default key-value store, ensuring seamless data transfer between Actor runs. ## Benefits of metamorph diff --git a/sources/platform/actors/development/quick_start/start_locally.md b/sources/platform/actors/development/quick_start/start_locally.md index 9839e9c55b..0580c2c78c 100644 --- a/sources/platform/actors/development/quick_start/start_locally.md +++ b/sources/platform/actors/development/quick_start/start_locally.md @@ -84,10 +84,12 @@ In the next step, we’ll explore the results in more detail. ### Step 3: Explore the Actor Let's explore the Actor structure. - + #### The `.actor` folder + The `.actor` folder contains the Actor configuration. The `actor.json` file defines the Actor's name, description, and other settings. Find more info in the [actor.json](https://docs.apify.com/platform/actors/development/actor-definition/actor-json) definition. + #### Actor's `input` diff --git a/sources/platform/actors/running/tasks.md b/sources/platform/actors/running/tasks.md index 132ebb7b67..033fd175b1 100644 --- a/sources/platform/actors/running/tasks.md +++ b/sources/platform/actors/running/tasks.md @@ -10,7 +10,7 @@ sidebar_label: Tasks --- -Actor tasks let you create multiple reusable configurations of a single Actor, adapted for specific use cases. For example, you can create one [_Web Scraper_](https://apify.com/apify/web-scraper) configuration (task) that scrapes the latest reviews from imdb.com, another that scrapes nike.com for the latest sneakers, and a third that scrapes your competitor's e-shop. You can then use and reuse these configurations directly from [Apify Console](https://console.apify.com/actors/tasks), [Schedules](../../schedules.md), or [API](/api/v2/actor-task-runs-post). +Actor tasks let you create multiple reusable configurations of a single Actor, adapted for specific use cases. For example, you can create one [_Web Scraper_](https://apify.com/apify/web-scraper) configuration (task) that scrapes the latest reviews from [IMDb](https://www.imdb.com/), another that scrapes nike.com for the latest sneakers, and a third that scrapes your competitor's e-shop. You can then use and reuse these configurations directly from [Apify Console](https://console.apify.com/actors/tasks), [Schedules](../../schedules.md), or [API](/api/v2/actor-task-runs-post). You can find all your tasks in the [Apify Console](https://console.apify.com/actors/tasks). diff --git a/sources/platform/integrations/workflows-and-notifications/bubble.md b/sources/platform/integrations/workflows-and-notifications/bubble.md index 608141485b..33292e9049 100644 --- a/sources/platform/integrations/workflows-and-notifications/bubble.md +++ b/sources/platform/integrations/workflows-and-notifications/bubble.md @@ -205,7 +205,7 @@ Use this URL as the Apify webhook target. Configure the webhook's authentication 1. Notify Bubble when the run finishes - Create an Apify **Webhook** with event `ACTOR.RUN.SUCCEEDED`. - Set `actorId` from the Step 1 result. - - Set `databaseId` from the Step 1 result, where actor will store the result. + - Set `databaseId` from the Step 1 result, where Actor will store the result. - Set `idempotencyKey` to random value. - Set `requestUrl` to your Bubble backend workflow URL, for example: `https://your-app.bubbleapps.io/version-test/api/1.1/wf/webhook`. - ![Create a webhook](../images/bubble/step2_scraping.png) diff --git a/sources/platform/integrations/workflows-and-notifications/gumloop/maps.md b/sources/platform/integrations/workflows-and-notifications/gumloop/maps.md index 62a91edab3..8a77a1bf7b 100644 --- a/sources/platform/integrations/workflows-and-notifications/gumloop/maps.md +++ b/sources/platform/integrations/workflows-and-notifications/gumloop/maps.md @@ -12,7 +12,7 @@ Search, extract, and enrich business data from Google Maps in Gumloop. The Gumloop Google Maps integration provides a native interface for running Apify’s Google Maps scrapers directly in your workflows. No API keys or manual polling required. All you need is a Gumloop account. -Using the Gumloop Google Maps MCP node, you can simply prompt the location data you need and Gumloop will retrieve it from relevant Apify actors. From there, you can connect it to your favorite tools and AI agents to process the information. +Using the Gumloop Google Maps MCP node, you can simply prompt the location data you need and Gumloop will retrieve it from relevant Apify Actors. From there, you can connect it to your favorite tools and AI agents to process the information. ## Available actions diff --git a/sources/platform/integrations/workflows-and-notifications/gumloop/tiktok.md b/sources/platform/integrations/workflows-and-notifications/gumloop/tiktok.md index 8a47eef30d..61e10bd92f 100644 --- a/sources/platform/integrations/workflows-and-notifications/gumloop/tiktok.md +++ b/sources/platform/integrations/workflows-and-notifications/gumloop/tiktok.md @@ -11,7 +11,7 @@ Get TikTok hashtag videos, profile videos, followers, video details, and search --- The Gumloop TikTok integration provides a native interface for running Apify’s TikTok scrapers directly in your workflows. No API tokens or manual polling required. All you need is a Gumloop account. -Using the Gumloop TikTok MCP node, you can simply prompt the TikTok data you need and Gumloop will retrieve it from relevant Apify actors. From there, you can connect it to your favorite tools and AI agents to process the information. +Using the Gumloop TikTok MCP node, you can simply prompt the TikTok data you need and Gumloop will retrieve it from relevant Apify Actors. From there, you can connect it to your favorite tools and AI agents to process the information. ## Available actions diff --git a/sources/platform/proxy/google_serp_proxy.md b/sources/platform/proxy/google_serp_proxy.md index bba4ecb9d0..ddc39a0f7b 100644 --- a/sources/platform/proxy/google_serp_proxy.md +++ b/sources/platform/proxy/google_serp_proxy.md @@ -63,7 +63,7 @@ See a [full list](https://ipfs.io/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXW ### Using the Apify SDK -If you are developing your own Apify [Actor](../actors/index.mdx) using the [Apify SDK](/sdk) and [Crawlee](https://crawlee.dev/), the most efficient way to use Google SERP proxy is [CheerioCrawler](https://crawlee.dev/api/cheerio-crawler/class/CheerioCrawler). This is because Google SERP proxy [only returns a page's HTML](./index.md). Alternatively, you can use the [got-scraping](https://github.com/apify/got-scraping) [NPM package](https://www.npmjs.com/package/got-scraping) by specifying the proxy URL in the options. For Python, you can leverage the [`requests`](https://pypi.org/project/requests/) library along with the Apify SDK. +If you are developing your own Apify [Actor](../actors/index.mdx) using the [Apify SDK](/sdk) and [Crawlee](https://crawlee.dev/), the most efficient way to use Google SERP proxy is [CheerioCrawler](https://crawlee.dev/api/cheerio-crawler/class/CheerioCrawler). This is because Google SERP proxy [only returns a page's HTML](./index.md). Alternatively, you can use the [got-scraping](https://github.com/apify/got-scraping) [npm package](https://www.npmjs.com/package/got-scraping) by specifying the proxy URL in the options. For Python, you can leverage the [`requests`](https://pypi.org/project/requests/) library along with the Apify SDK. The following examples get a list of search results for the keyword **wikipedia** from the USA (`google.com`). diff --git a/sources/platform/security.md b/sources/platform/security.md index 6ac92f47f0..ec13e53011 100644 --- a/sources/platform/security.md +++ b/sources/platform/security.md @@ -27,7 +27,7 @@ To learn more about Apify's security practices, data protection measures, and co - List of our security certifications and compliance reports - Information about Apify's data protection controls - List of Apify's data subprocessors -- An AI Chatbot to answer your security-related questions +- An AI chatbot to answer your security-related questions ## Security Whitepaper