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.
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.
apify init in project root.actor/input_schema.jsonapify run --input '{"key": "value"}'apify pushVerify apify CLI is installed:
apify --help
If not installed:
brew install apify-cli
# Or: npm install -g apify-cli
# Or install from an official release package that your OS package manager verifies
Verify CLI is logged in:
apify info # Should return your username
If not logged in, check if APIFY_TOKEN environment variable is defined. If not, ask the user to generate one at https://console.apify.com/settings/integrations, add it to their shell or secret manager without putting the literal token in command history, then run:
apify login
Copy this checklist to track progress:
apify init to create Actor structure.actor/input_schema.json.actor/output_schema.json (if applicable).actor/actor.json metadataapify runapify pushBefore making changes, understand the project:
Run in the project root:
apify init
This creates:
.actor/actor.json - Actor configuration and metadata.actor/input_schema.json - Input definition for the Apify ConsoleDockerfile (if not present) - Container image definitionChoose based on your project's language:
| 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 |
See schemas-and-output.md for detailed configuration of:
.actor/input_schema.json).actor/output_schema.json).actor/actor.json)Validate schemas against @apify/json_schemas npm package.
Run the actor with inline input (for JS/TS and Python actors):
apify run --input '{"startUrl": "https://example.com", "maxItems": 10}'
Or use an input file:
apify run --input-file ./test-input.json
Important: Always use apify run, not npm start or python main.py. The CLI sets up the proper environment and storage.
apify push
This uploads and builds your actor on the Apify platform.
After deploying, you can monetize your actor in the Apify Store. The recommended model is Pay Per Event (PPE):
Configure PPE in the Apify Console under Actor > Monetization. Charge for events in your code with await Actor.charge('result').
Other options: Rental (monthly subscription) or Free (open source).
.actor/actor.json exists with correct name and description.actor/actor.json validates against @apify/json_schemas (actor.schema.json).actor/input_schema.json defines all required inputs.actor/input_schema.json validates against @apify/json_schemas (input.schema.json).actor/output_schema.json defines output structure (if applicable).actor/output_schema.json validates against @apify/json_schemas (output.schema.json)Dockerfile is present and builds successfullyActor.init() / Actor.exit() wraps main code (JS/TS)async with Actor: wraps main code (Python)Actor.getInput() / Actor.get_input()Actor.pushData() or key-value storeapify run executes successfully with test inputgeneratedBy is set in actor.json meta sectionIf MCP server is configured, use these tools for documentation:
search-apify-docs - Search documentationfetch-apify-docs - Get full doc pagesOtherwise, the MCP Server url: https://mcp.apify.com/?tools=docs.
Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/apify-actorization · pinned to the source commit
# Run from your project root
git clone https://github.com/sickn33/agentic-awesome-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 5cf4dfeb13ea966daa1e117897689cd7991e3f44
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/plugins/agentic-awesome-skills-claude/skills/apify-actorization" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/sickn33/agentic-awesome-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 5cf4dfeb13ea966daa1e117897689cd7991e3f44
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/plugins/agentic-awesome-skills-claude/skills/apify-actorization" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/apify-actorization
Scanner static-checks@0.1.0 · commit 5cf4dfeb13ea. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
Instructs shell/process/package operations that run commands on the host.
Evidence: brew install· fingerprint 1317bb7493250e7f