{"id":"d3c0d7f5-0a4a-45e3-802f-fcf9a07f0bdd","shortId":"afrtNg","kind":"skill","title":"apify-actorization","tagline":"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.","description":"# Apify Actorization\n\nActorization 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.\n\n## Quick Start\n\n1. Run `apify init` in project root\n2. Wrap code with SDK lifecycle (see language-specific section below)\n3. Configure `.actor/input_schema.json`\n4. Test with `apify run --input '{\"key\": \"value\"}'`\n5. Deploy with `apify push`\n\n## When to Use This Skill\n\n- Converting an existing project to run on Apify platform\n- Adding Apify SDK integration to a project\n- Wrapping a CLI tool or script as an Actor\n- Migrating a Crawlee project to Apify\n\n## Prerequisites\n\nVerify `apify` CLI is installed:\n\n```bash\napify --help\n```\n\nIf not installed:\n\n```bash\nbrew install apify-cli\n\n# Or: npm install -g apify-cli\n# Or install from an official release package that your OS package manager verifies\n```\n\nVerify CLI is logged in:\n\n```bash\napify info  # Should return your username\n```\n\nIf 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:\n\n```bash\napify login\n```\n\n## Actorization Checklist\n\nCopy this checklist to track progress:\n\n- [ ] Step 1: Analyze project (language, entry point, inputs, outputs)\n- [ ] Step 2: Run `apify init` to create Actor structure\n- [ ] Step 3: Apply language-specific SDK integration\n- [ ] Step 4: Configure `.actor/input_schema.json`\n- [ ] Step 5: Configure `.actor/output_schema.json` (if applicable)\n- [ ] Step 6: Update `.actor/actor.json` metadata\n- [ ] Step 7: Test locally with `apify run`\n- [ ] Step 8: Deploy with `apify push`\n\n## Step 1: Analyze the Project\n\nBefore making changes, understand the project:\n\n1. **Identify the language** - JavaScript/TypeScript, Python, or other\n2. **Find the entry point** - The main file that starts execution\n3. **Identify inputs** - Command-line arguments, environment variables, config files\n4. **Identify outputs** - Files, console output, API responses\n5. **Check for state** - Does it need to persist data between runs?\n\n## Step 2: Initialize Actor Structure\n\nRun in the project root:\n\n```bash\napify init\n```\n\nThis creates:\n- `.actor/actor.json` - Actor configuration and metadata\n- `.actor/input_schema.json` - Input definition for the Apify Console\n- `Dockerfile` (if not present) - Container image definition\n\n## Step 3: Apply Language-Specific Changes\n\nChoose based on your project's language:\n\n- **JavaScript/TypeScript**: See [js-ts-actorization.md](references/js-ts-actorization.md)\n- **Python**: See [python-actorization.md](references/python-actorization.md)\n- **Other Languages (CLI-based)**: See [cli-actorization.md](references/cli-actorization.md)\n\n### Quick Reference\n\n| Language | Install | Wrap Code |\n|----------|---------|-----------|\n| JS/TS | `npm install apify` | `await Actor.init()` ... `await Actor.exit()` |\n| Python | `pip install apify` | `async with Actor:` |\n| Other | Use CLI in wrapper script | `apify actor:get-input` / `apify actor:push-data` |\n\n## Steps 4-6: Configure Schemas\n\nSee [schemas-and-output.md](references/schemas-and-output.md) for detailed configuration of:\n- Input schema (`.actor/input_schema.json`)\n- Output schema (`.actor/output_schema.json`)\n- Actor configuration (`.actor/actor.json`)\n- State management (request queues, key-value stores)\n\nValidate schemas against `@apify/json_schemas` npm package.\n\n## Step 7: Test Locally\n\nRun the actor with inline input (for JS/TS and Python actors):\n\n```bash\napify run --input '{\"startUrl\": \"https://example.com\", \"maxItems\": 10}'\n```\n\nOr use an input file:\n\n```bash\napify run --input-file ./test-input.json\n```\n\n**Important:** Always use `apify run`, not `npm start` or `python main.py`. The CLI sets up the proper environment and storage.\n\n## Step 8: Deploy\n\n```bash\napify push\n```\n\nThis uploads and builds your actor on the Apify platform.\n\n## Monetization (Optional)\n\nAfter deploying, you can monetize your actor in the Apify Store. The recommended model is **Pay Per Event (PPE)**:\n\n- Per result/item scraped\n- Per page processed\n- Per API call made\n\nConfigure PPE in the Apify Console under Actor > Monetization. Charge for events in your code with `await Actor.charge('result')`.\n\nOther options: **Rental** (monthly subscription) or **Free** (open source).\n\n## Pre-Deployment Checklist\n\n- [ ] `.actor/actor.json` exists with correct name and description\n- [ ] `.actor/actor.json` validates against `@apify/json_schemas` (`actor.schema.json`)\n- [ ] `.actor/input_schema.json` defines all required inputs\n- [ ] `.actor/input_schema.json` validates against `@apify/json_schemas` (`input.schema.json`)\n- [ ] `.actor/output_schema.json` defines output structure (if applicable)\n- [ ] `.actor/output_schema.json` validates against `@apify/json_schemas` (`output.schema.json`)\n- [ ] `Dockerfile` is present and builds successfully\n- [ ] `Actor.init()` / `Actor.exit()` wraps main code (JS/TS)\n- [ ] `async with Actor:` wraps main code (Python)\n- [ ] Inputs are read via `Actor.getInput()` / `Actor.get_input()`\n- [ ] Outputs use `Actor.pushData()` or key-value store\n- [ ] `apify run` executes successfully with test input\n- [ ] `generatedBy` is set in actor.json meta section\n\n## Apify MCP Tools\n\nIf MCP server is configured, use these tools for documentation:\n\n- `search-apify-docs` - Search documentation\n- `fetch-apify-docs` - Get full doc pages\n\nOtherwise, the MCP Server url: `https://mcp.apify.com/?tools=docs`.\n\n## Resources\n\n- [Actorization Academy](https://docs.apify.com/academy/actorization) - Comprehensive guide\n- [Apify SDK for JavaScript](https://docs.apify.com/sdk/js) - Full SDK reference\n- [Apify SDK for Python](https://docs.apify.com/sdk/python) - Full SDK reference\n- [Apify CLI Reference](https://docs.apify.com/cli) - CLI commands\n- [Actor Specification](https://raw.githubusercontent.com/apify/actor-whitepaper/refs/heads/master/README.md) - Complete specification\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["apify","actorization","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-apify-actorization","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/apify-actorization","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34964 github stars · SKILL.md body (6,481 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-25T00:50:27.254Z","embedding":null,"createdAt":"2026-04-18T21:31:13.193Z","updatedAt":"2026-04-25T00:50:27.254Z","lastSeenAt":"2026-04-25T00:50:27.254Z","tsv":"'-6':472 '/?tools=docs':754 '/academy/actorization)':760 '/apify/actor-whitepaper/refs/heads/master/readme.md)':795 '/cli)':788 '/sdk/js)':769 '/sdk/python)':779 '/settings/integrations,':224 '/test-input.json':539 '1':80,255,309,319 '10':527 '2':87,264,327,370 '3':99,273,338,404 '4':102,281,349,471 '5':110,285,357 '6':291 '7':296,506 '8':303,561 'academi':757 'accept':25,63 'action':33,71 'actor':3,4,17,41,42,55,144,246,270,372,385,453,461,466,488,511,519,571,584,614,686,756,791 'actor.charge':624 'actor.exit':446,679 'actor.get':696 'actor.getinput':695 'actor.init':444,678 'actor.json':717 'actor.pushdata':700 'actor.schema.json':650 'actor/actor.json':293,384,490,639,646 'actor/input_schema.json':101,283,389,484,651,656 'actor/output_schema.json':287,487,661,667 'ad':129 'add':225 'alway':541 'analyz':256,310 'api':355,604 'apifi':2,15,40,53,82,105,113,127,130,150,153,158,167,174,195,207,244,266,300,306,380,394,442,450,460,465,521,534,543,564,574,587,611,706,720,735,741,763,773,783 'apify-actor':1 'apify-c':166,173 'apify/json_schemas':502,649,659,670 'appli':274,405 'applic':11,49,289,666 'argument':344 'ask':215,831 'async':451,684 'await':443,445,623 'base':411,429 'bash':157,163,194,243,379,520,533,563 'boundari':839 'brew':164 'build':569,676 'call':605 'chang':315,409 'charg':616 'check':205,358 'checklist':247,250,638 'choos':410 'clarif':833 'clear':806 'cli':138,154,168,175,190,428,456,552,784,789 'cli-actorization.md':431 'cli-bas':427 'code':89,438,621,682,689 'command':239,342,790 'command-lin':341 'compat':12,50 'complet':796 'comprehens':761 'config':347 'configur':100,282,286,386,473,480,489,607,727 'consol':353,395,612 'console.apify.com':223 'console.apify.com/settings/integrations,':222 'contain':400 'convert':5,43,120 'copi':248 'correct':642 'crawle':147 'creat':269,383 'criteria':842 'data':366,469 'defin':28,66,212,652,662 'definit':391,402 'deploy':111,304,562,579,637 'describ':810 'descript':645 'detail':479 'doc':736,742,745 'docker':22,60 'dockerfil':396,672 'docs.apify.com':759,768,778,787 'docs.apify.com/academy/actorization)':758 'docs.apify.com/cli)':786 'docs.apify.com/sdk/js)':767 'docs.apify.com/sdk/python)':777 'document':732,738 'entri':259,330 'environ':209,345,557,822 'environment-specif':821 'event':595,618 'example.com':525 'execut':337,708 'exist':6,44,122,640 'expert':827 'fetch':740 'fetch-apify-doc':739 'file':334,348,352,532,538 'find':328 'free':632 'full':744,770,780 'g':172 'generat':219 'generatedbi':713 'get':463,743 'get-input':462 'guid':762 'help':159 'histori':240 'identifi':320,339,350 'imag':23,61,401 'import':540 'info':196 'init':83,267,381 'initi':371 'inlin':513 'input':30,68,107,261,340,390,464,482,514,523,531,537,655,691,697,712,836 'input-fil':536 'input.schema.json':660 'instal':156,162,165,171,177,436,441,449 'integr':132,279 'javascript':766 'javascript/typescript':323,417 'js-ts-actorization.md':419 'js/ts':439,516,683 'json':29,38,67,76 'key':108,496,703 'key-valu':495,702 'languag':95,258,276,322,407,416,426,435 'language-specif':94,275,406 'lifecycl':92 'limit':798 'line':343 'liter':236 'local':298,508 'log':192,203 'login':245 'made':606 'main':333,681,688 'main.py':550 'make':314 'manag':187,232,492 'match':807 'maxitem':526 'mcp':721,724,749 'mcp.apify.com':753 'mcp.apify.com/?tools=docs':752 'meta':718 'metadata':294,388 'migrat':145 'miss':844 'model':591 'monet':576,582,615 'month':629 'name':643 'need':363 'npm':170,440,503,546 'offici':180 'one':220 'open':633 'option':35,73,577,627 'os':185 'otherwis':747 'output':39,77,262,351,354,485,663,698,816 'output.schema.json':671 'packag':20,58,182,186,504 'page':601,746 'pay':593 'per':594,597,600,603 'perform':31,69 'permiss':837 'persist':365 'pip':448 'platform':16,54,128,575 'point':260,331 'ppe':596,608 'pre':636 'pre-deploy':635 'prerequisit':151 'present':399,674 'process':602 'produc':36,74 'program':19,57 'progress':253 'project':85,123,135,148,257,312,318,377,414 'proper':556 'push':114,307,468,565 'push-data':467 'put':234 'python':324,421,447,518,549,690,776 'python-actorization.md':423 'queue':494 'quick':78,433 'raw.githubusercontent.com':794 'raw.githubusercontent.com/apify/actor-whitepaper/refs/heads/master/readme.md)':793 'read':693 'recommend':590 'refer':434,772,782,785 'references/cli-actorization.md':432 'references/js-ts-actorization.md':420 'references/python-actorization.md':424 'references/schemas-and-output.md':477 'releas':181 'rental':628 'request':493 'requir':654,835 'resourc':755 'respons':356 'result':625 'result/item':598 'return':198 'reusabl':9,47 'review':828 'root':86,378 'run':81,106,125,242,265,301,368,374,509,522,535,544,707 'safeti':838 'schema':474,483,486,500 'schemas-and-output.md':476 'scope':809 'scrape':599 'script':141,459 'sdk':91,131,278,764,771,774,781 'search':734,737 'search-apify-doc':733 'secret':231 'section':97,719 'see':93,418,422,430,475 'server':725,750 'serverless':10,48 'set':553,715 'shell':229 'skill':119,801 'skill-apify-actorization' 'softwar':7,45 'sourc':634 'source-sickn33' 'specif':96,277,408,792,797,823 'start':79,336,547 'starturl':524 'state':360,491 'step':254,263,272,280,284,290,295,302,308,369,403,470,505,560 'stop':829 'storag':559 'store':498,588,705 'structur':37,75,271,373,664 'subscript':630 'substitut':819 'success':677,709,841 'task':805 'test':103,297,507,711,825 'token':208,237 'tool':139,722,730 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'track':252 'treat':814 'understand':316 'updat':292 'upload':567 'url':751 'use':117,455,529,542,699,728,799 'user':217 'usernam':200 'valid':499,647,657,668,824 'valu':109,497,704 'variabl':210,346 'verifi':152,188,189 'via':694 'well':27,65 'well-defin':26,64 'without':233 'wrap':88,136,437,680,687 'wrapper':458","prices":[{"id":"65e0c7a9-1d5b-4606-80ae-bc6451a6342d","listingId":"d3c0d7f5-0a4a-45e3-802f-fcf9a07f0bdd","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:31:13.193Z"}],"sources":[{"listingId":"d3c0d7f5-0a4a-45e3-802f-fcf9a07f0bdd","source":"github","sourceId":"sickn33/antigravity-awesome-skills/apify-actorization","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/apify-actorization","isPrimary":false,"firstSeenAt":"2026-04-18T21:31:13.193Z","lastSeenAt":"2026-04-25T00:50:27.254Z"}],"details":{"listingId":"d3c0d7f5-0a4a-45e3-802f-fcf9a07f0bdd","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"apify-actorization","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34964,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"46dec1b556a738abe2db409fe1bef4e5d5378a95","skill_md_path":"skills/apify-actorization/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/apify-actorization"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"apify-actorization","description":"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."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/apify-actorization"},"updatedAt":"2026-04-25T00:50:27.254Z"}}