Skip to content
Development
Skill

/apify-actorization

Convert existing projects into Apify Actors - serverless cloud programs. Actorize JavaScript/TypeScript (SDK with Actor.init/exit), Python (async context manager), or any language (CLI wrapper). Use when migrating code to Apify, wrapping CLI tools as Actors, or adding Actor SDK

From plugin
apify-agent-skills
2.3k5 skills1 command
Install
$ npx -y skills add apify/agent-skills --skill apify-actorization --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/apify-actorization

Context preview

The summary Claude sees to decide when to auto-load this skill.

Convert existing projects into Apify Actors - serverless cloud programs. Actorize JavaScript/TypeScript (SDK with Actor.init/exit), Python (async context manager), or any language (CLI wrapper). Use when migrating code to Apify, wrapping CLI tools as Actors, or adding Actor SDK

SKILL.md

apify-actorization.SKILL.md
name: apify-actorization
description: Convert existing projects into Apify Actors - serverless cloud programs. Actorize JavaScript/TypeScript (SDK with Actor.init/exit), Python (async context manager), or any language (CLI wrapper). Use when migrating code to Apify, wrapping CLI tools as Actors, or adding Actor SDK to existing projects.

Apify Actorization

Actorization converts existing software into reusable serverless applications compatible with the Apify platform. Actors are programs packaged as Docker images that accept well-defined JSON input, perform an action, and optionally produce structured JSON output.

Quick start

1. Run `apify init` in project root 2. Wrap code with SDK lifecycle (see language-specific section below) 3. Configure `.actor/input_schema.json` 4. Test with `apify run --input '{"key": "value"}'` 5. Deploy with `apify push`

When to use this skill

  • Converting an existing project to run on the Apify platform
  • Adding Apify SDK integration to a project
  • Wrapping a CLI tool or script as an Actor
  • Migrating a Crawlee project to Apify

Prerequisites

Verify `apify` CLI is installed:

apify --help

If not installed, use one of these methods (listed in order of preference):

# Preferred: install via a package manager (provides integrity checks)
npm install -g apify-cli

# Or (Mac): brew install apify-cli

> **Security note:** Do NOT install the CLI by piping remote scripts to a shell > (e.g. `curl ... | bash` or `irm ... | iex`). Always use a package manager.

Verify CLI is logged in:

apify info  # Should return your username

If not logged in, authenticate using OAuth (opens browser):

apify login

If browser login isn't available (headless environment or CI), ensure the `APIFY_TOKEN` environment variable is exported (note: the variable is `APIFY_TOKEN`, not `APIFY_API_TOKEN`). The CLI reads it automatically - no explicit login needed. If the user doesn't have a token, generate one at https://console.apify.com/settings/integrations.

> **Apify platform environment:** When the Actor runs on the Apify platform, `APIFY_TOKEN` is auto-injected as an environment variable and the Apify SDK reads it automatically — you do not need to pass it explicitly. Locally, `apify login` stores credentials in `~/.apify` and the SDK uses them.

> **Security note:** Avoid passing tokens as command-line arguments (e.g. `apify login -t <token>`). > Arguments are visible in process listings and may be recorded in shell history. > Prefer OAuth login or environment variables instead. > Never log, print, or embed `APIFY_TOKEN` in source code or configuration files. > Use a token with the minimum required permissions (scoped token) and rotate it periodically.

Actorization checklist

Copy this checklist to track progress:

  • [ ] Step 1: Analyze project (language, entry point, inputs, outputs)
  • [ ] Step 2: Run `apify init` to create Actor structure
  • [ ] Step 3: Apply language-specific SDK integration
  • [ ] Step 4: Configure `.actor/input_schema.json`
  • [ ] Step 5: Configure `.actor/output_schema.json` (if applicable)
  • [ ] Step 6: Update `.actor/actor.json` metadata
  • [ ] Step 7: Write README.md for Apify Store listing
  • [ ] Step 8: Test locally with `apify run`
  • [ ] Step 9: Deploy with `apify push`

Step 1: Analyze the project

Before making changes, understand the project:

1. **Identify the language** - JavaScript/TypeScript, Python, or other 2. **Find the entry point** - The main file that starts execution 3. **Identify inputs** - Command-line arguments, environment variables, config files 4. **Identify outputs** - Files, console output, API responses 5. **Check for state** - Does it need to persist data between runs?

Step 2: Initialize Actor structure

Run in the project root:

apify init

This creates:

  • `.actor/actor.json` - Actor configuration and metadata
  • `.actor/input_schema.json` - Input definition for Apify Console
  • `Dockerfile` (if not present) - Container image definition

Step 3: Apply language-specific changes

Choose based on your project's language:

  • **JavaScript/TypeScript**: See [js-ts-actorization.md](references/js-ts-actorization.md)
  • **Python**: See [python-actorization.md](references/python-actorization.md)
  • **Other Languages (CLI-based)**: See [cli-actorization.md](references/cli-actorization.md)

Quick reference

| Language | Install | Wrap Code | |----------|---------|-----------| | JS/TS | `npm install apify` | `await Actor.init()` ... `await Actor.exit()` | | Python | `pip install apify` | `async with Actor:` | | Other | Use CLI in wrapper script | `apify actor:get-input` / `apify actor:push-data` |

Steps 4-6: Configure schemas

See [schemas-and-output.md](references/schemas-and-output.md) for detailed configuration of:

  • Input schema (`.actor/input_schema.json`)
  • Output schema (`.actor/output_schema.json`)
  • Actor configuration (`.actor/actor.json`)
  • State management (request queues, key-value stores)

Validate schemas against `@apify/json_schemas` npm package.

Step 7: Write README

**IMPORTANT:** Always generate a README.md as part of actorization. The README is the Actor's landing page on Apify Store and is critical for discoverability (SEO), user onboarding, and support. Do not consider an Actor complete without a proper README.

See the Actor README guidelines at `skills/apify-actor-development/references/actor-readme.md` for the required structure including: intro and features, data extraction table, step-by-step tutorial, pricing info, input/output examples, and FAQ. Aim for at least 300 words with SEO-optimized H2/H3 headings. Also review these top Actors for best practices:

  • [Instagram Scraper](https://apify.com/apify/instagram-scraper)
  • [Google Maps Scraper](https://apify.com/compass/crawler-google-places)

Step 8: Test locally

Run the Actor with inline input (for JS/TS and Python Actors):

apify run --input '{"startUrl": "
Read more
Ships withapify-agent-skills

Collection of Apify Agent Skills

Get the whole plugin