[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F72KBT2HAEEKHSBW3PBDWE":3,"skill-same:01M6F72KBT2HAEEKHSBW3PBDWE":85},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":62,"commitSha":63,"skillDirectory":64,"forksCount":65,"repositoryHtmlUrl":66,"repositoryHomepageUrl":67,"ownerHtmlUrl":68,"ownerBlogUrl":6,"ownerDescription":69,"updatedAt":70,"install":71,"resources":84},"01M6F72KBT2HAEEKHSBW3PBDWE","apify-common-errors",null,"Diagnose and fix common Apify Actor and API errors.\nUse when encountering run failures, API errors, proxy issues,\nor Actor crashes on the Apify platform.\nTrigger: \"apify error\", \"fix apify\", \"actor failed\",\n\"apify not working\", \"debug apify\", \"apify 429\".","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fapify-common-errors\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"apify common errors","apify","common","scraping","429","error","trigger","io","platform","use","fix","debug","read","Bash","api","proxy","issues","code","run","diagnose","2026-11-10 10:12:30",false,"---\nname: apify-common-errors\ndescription: |\n  Diagnose and fix common Apify Actor and API errors.\n  Use when encountering run failures, API errors, proxy issues,\n  or Actor crashes on the Apify platform.\n  Trigger: \"apify error\", \"fix apify\", \"actor failed\",\n  \"apify not working\", \"debug apify\", \"apify 429\".\nallowed-tools: Read, Grep, Bash(curl:*), Bash(apify:*), Bash(npm:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ntags: [saas, scraping, automation, apify]\ncompatible-with: claude-code\n---\n\n# Apify Common Errors\n\n## Overview\n\nQuick diagnostic reference for the most common Apify errors. Covers Actor run failures, API errors, proxy problems, anti-bot blocks, and platform-specific issues.\n\n## Prerequisites\n\n- Apify token configured\n- Access to Apify Console for log review\n\n## Error Reference\n\n### 1. Actor Run Status: FAILED\n\n```\nStatus: FAILED\nStatusMessage: Process exited with code 1\n```\n\n**Cause:** Unhandled exception in Actor code.\n\n**Diagnosis:**\n```typescript\n\u002F\u002F Check run log via API\nconst client = new ApifyClient({ token: process.env.APIFY_TOKEN });\nconst run = await client.run('RUN_ID').get();\nconsole.log(run.statusMessage);\n\n\u002F\u002F Get the run log\nconst log = await client.run('RUN_ID').log().get();\nconsole.log(log);  \u002F\u002F Full stdout\u002Fstderr output\n```\n\n**Fix:** Read the log, find the stack trace, fix the bug. Common causes:\n- Missing input validation (`Actor.getInput()` returns `null`)\n- Selector returns no results (page structure changed)\n- Unhandled promise rejection\n\n---\n\n### 2. Actor Run Status: TIMED-OUT\n\n```\nStatus: TIMED-OUT\nStatusMessage: Actor timed out after 3600 seconds\n```\n\n**Cause:** Actor exceeded its configured timeout.\n\n**Fix:**\n```typescript\n\u002F\u002F Increase timeout when calling via client\nconst run = await client.actor('user\u002Factor').call(input, {\n  timeout: 7200,  \u002F\u002F 2 hours in seconds\n});\n\n\u002F\u002F Or set in Actor configuration on platform\n\u002F\u002F Console > Actor > Settings > Timeout\n```\n\n**Prevention:** Reduce workload scope or increase `maxConcurrency`.\n\n---\n\n### 3. HTTP 429 — Rate Limited\n\n```\nApifyApiError: Rate limit exceeded (429)\n```\n\n**Cause:** More than 60 requests\u002Fsecond to a single API resource.\n\n**Fix:** The `apify-client` package retries 429s automatically (up to 8 retries with exponential backoff). If you still hit limits:\n\n```typescript\n\u002F\u002F Add delays between API calls\nimport { sleep } from 'crawlee';\n\nfor (const item of items) {\n  await client.dataset(dsId).pushItems([item]);\n  await sleep(100);  \u002F\u002F 100ms between calls\n}\n\n\u002F\u002F Better: batch push items (one API call)\nawait client.dataset(dsId).pushItems(items);  \u002F\u002F Up to 9MB per call\n```\n\n---\n\n### 4. HTTP 401 — Unauthorized\n\n```\nApifyApiError: Authentication required (401)\n```\n\n**Cause:** Invalid, expired, or missing API token.\n\n**Diagnosis:**\n```bash\n# Test your token\ncurl -s -H \"Authorization: Bearer $APIFY_TOKEN\" \\\n  https:\u002F\u002Fapi.apify.com\u002Fv2\u002Fusers\u002Fme | jq '.data.username'\n```\n\n**Fix:** Regenerate token at Console > Settings > Integrations.\n\n---\n\n### 5. Actor Build Failed\n\n```\nBuild failed: npm ERR! code ERESOLVE\n```\n\n**Cause:** Dependency conflicts in `package.json` or Dockerfile issues.\n\n**Diagnosis:**\n```bash\n# Check build log on platform\napify builds ls\n\n# Test build locally\ndocker build -t my-actor -f .actor\u002FDockerfile .\n```\n\n**Fix:** Run `npm install` locally first. Ensure `package-lock.json` is committed. Check Node.js version matches the base image.\n\n---\n\n### 6. Proxy Connection Failed\n\n```\nError: Proxy responded with 502 Bad Gateway\nProxyError: Could not connect to proxy\n```\n\n**Cause:** Proxy configuration issue or proxy credits exhausted.\n\n**Fix:**\n```typescript\n\u002F\u002F Check proxy configuration\nconst proxyConfig = await Actor.createProxyConfiguration({\n  groups: ['BUYPROXIES94952'],  \u002F\u002F Verify group name in Console\n});\n\n\u002F\u002F Test proxy connectivity\nconst proxyUrl = await proxyConfig.newUrl();\nconsole.log('Proxy URL:', proxyUrl);\n\n\u002F\u002F Switch to residential if datacenter is blocked\nconst resProxy = await Actor.createProxyConfiguration({\n  groups: ['RESIDENTIAL'],\n  countryCode: 'US',\n});\n```\n\n---\n\n### 7. Anti-Bot Block (403\u002FCaptcha)\n\n```\nError: Request blocked — received status 403\nError: Captcha detected on page\n```\n\n**Cause:** Target website detected scraping activity.\n\n**Fix:**\n```typescript\nconst crawler = new PlaywrightCrawler({\n  proxyConfiguration: await Actor.createProxyConfiguration({\n    groups: ['RESIDENTIAL'],\n  }),\n  \u002F\u002F Mimic real browser behavior\n  launchContext: {\n    launchOptions: {\n      args: ['--disable-blink-features=AutomationControlled'],\n    },\n  },\n  preNavigationHooks: [\n    async ({ page }) => {\n      \u002F\u002F Randomize viewport\n      await page.setViewportSize({\n        width: 1280 + Math.floor(Math.random() * 200),\n        height: 720 + Math.floor(Math.random() * 200),\n      });\n    },\n  ],\n  maxConcurrency: 3,  \u002F\u002F Lower concurrency = less suspicious\n  navigationTimeoutSecs: 60,\n});\n```\n\n---\n\n### 8. Out of Memory\n\n```\nFATAL ERROR: CALL_AND_RETRY_LAST Allocation failed — JavaScript heap out of memory\n```\n\n**Cause:** Actor memory allocation too low for the workload.\n\n**Fix:**\n```typescript\n\u002F\u002F Increase memory when running via API\nconst run = await client.actor('user\u002Factor').call(input, {\n  memory: 4096,  \u002F\u002F MB — powers of 2: 128, 256, 512, 1024, 2048, 4096, ...\n});\n\n\u002F\u002F Or reduce memory usage in Actor code\nconst crawler = new CheerioCrawler({\n  maxConcurrency: 5,              \u002F\u002F Fewer concurrent pages\n  maxRequestsPerCrawl: 1000,      \u002F\u002F Cap total requests\n  requestHandlerTimeoutSecs: 30,  \u002F\u002F Fail fast on slow pages\n});\n```\n\n---\n\n### 9. Dataset Push Too Large\n\n```\nApifyApiError: Payload too large (413) — max 9MB per request\n```\n\n**Fix:**\n```typescript\n\u002F\u002F Chunk large pushes\nfunction chunkArray\u003CT>(arr: T[], size: number): T[][] {\n  const chunks: T[][] = [];\n  for (let i = 0; i \u003C arr.length; i += size) {\n    chunks.push(arr.slice(i, i + size));\n  }\n  return chunks;\n}\n\nfor (const chunk of chunkArray(items, 500)) {\n  await client.dataset(dsId).pushItems(chunk);\n}\n```\n\n---\n\n### 10. Actor Not Found\n\n```\nApifyApiError: Actor 'user\u002Factor-name' not found (404)\n```\n\n**Cause:** Wrong Actor ID, or Actor is private and you lack access.\n\n**Fix:** Actor IDs follow the format `username\u002Factor-name` or the Actor's unique ID (alphanumeric). Check the correct ID at `https:\u002F\u002Fapify.com\u002Fusername\u002Factor-name`.\n\n## Quick Diagnostic Commands\n\n```bash\n# Check Apify platform status\ncurl -s https:\u002F\u002Fapi.apify.com\u002Fv2\u002Fhealth | jq '.'\n\n# Verify your auth\ncurl -s -H \"Authorization: Bearer $APIFY_TOKEN\" \\\n  https:\u002F\u002Fapi.apify.com\u002Fv2\u002Fusers\u002Fme | jq '.data.username'\n\n# Check installed package versions\nnpm list apify-client apify crawlee 2>\u002Fdev\u002Fnull\n\n# Get last run status\ncurl -s -H \"Authorization: Bearer $APIFY_TOKEN\" \\\n  \"https:\u002F\u002Fapi.apify.com\u002Fv2\u002Facts\u002FUSER~ACTOR\u002Fruns?limit=1&desc=true\" | \\\n  jq '.data.items[0] | {status, statusMessage, startedAt, finishedAt}'\n```\n\n## Error Handling\n\n| HTTP Code | Meaning | Retryable | Action |\n|-----------|---------|-----------|--------|\n| 400 | Bad request | No | Fix input\u002Fparams |\n| 401 | Unauthorized | No | Check token |\n| 403 | Forbidden | No | Check permissions |\n| 404 | Not found | No | Verify resource ID |\n| 408 | Timeout | Yes | Retry with backoff |\n| 413 | Payload too large | No | Reduce batch size |\n| 429 | Rate limited | Yes | Auto-retried by client |\n| 500+ | Server error | Yes | Auto-retried by client |\n\n## Resources\n\n- [Apify API Error Codes](https:\u002F\u002Fdocs.apify.com\u002Fapi\u002Fv2)\n- [Apify Status Page](https:\u002F\u002Fstatus.apify.com)\n- [Actor Run Statuses](https:\u002F\u002Fdocs.apify.com\u002Fplatform\u002Factors\u002Frunning)\n\n## Next Steps\n\nFor comprehensive debugging, see `apify-debug-bundle`.\n\n","# Apify Common Errors\n\n## Overview\n\nQuick diagnostic reference for the most common Apify errors. Covers Actor run failures, API errors, proxy problems, anti-bot blocks, and platform-specific issues.\n\n## Prerequisites\n\n- Apify token configured\n- Access to Apify Console for log review\n\n## Error Reference\n\n### 1. Actor Run Status: FAILED\n\n```\nStatus: FAILED\nStatusMessage: Process exited with code 1\n```\n\n**Cause:** Unhandled exception in Actor code.\n\n**Diagnosis:**\n```typescript\n\u002F\u002F Check run log via API\nconst client = new ApifyClient({ token: process.env.APIFY_TOKEN });\nconst run = await client.run('RUN_ID').get();\nconsole.log(run.statusMessage);\n\n\u002F\u002F Get the run log\nconst log = await client.run('RUN_ID').log().get();\nconsole.log(log);  \u002F\u002F Full stdout\u002Fstderr output\n```\n\n**Fix:** Read the log, find the stack trace, fix the bug. Common causes:\n- Missing input validation (`Actor.getInput()` returns `null`)\n- Selector returns no results (page structure changed)\n- Unhandled promise rejection\n\n---\n\n### 2. Actor Run Status: TIMED-OUT\n\n```\nStatus: TIMED-OUT\nStatusMessage: Actor timed out after 3600 seconds\n```\n\n**Cause:** Actor exceeded its configured timeout.\n\n**Fix:**\n```typescript\n\u002F\u002F Increase timeout when calling via client\nconst run = await client.actor('user\u002Factor').call(input, {\n  timeout: 7200,  \u002F\u002F 2 hours in seconds\n});\n\n\u002F\u002F Or set in Actor configuration on platform\n\u002F\u002F Console > Actor > Settings > Timeout\n```\n\n**Prevention:** Reduce workload scope or increase `maxConcurrency`.\n\n---\n\n### 3. HTTP 429 — Rate Limited\n\n```\nApifyApiError: Rate limit exceeded (429)\n```\n\n**Cause:** More than 60 requests\u002Fsecond to a single API resource.\n\n**Fix:** The `apify-client` package retries 429s automatically (up to 8 retries with exponential backoff). If you still hit limits:\n\n```typescript\n\u002F\u002F Add delays between API calls\nimport { sleep } from 'crawlee';\n\nfor (const item of items) {\n  await client.dataset(dsId).pushItems([item]);\n  await sleep(100);  \u002F\u002F 100ms between calls\n}\n\n\u002F\u002F Better: batch push items (one API call)\nawait client.dataset(dsId).pushItems(items);  \u002F\u002F Up to 9MB per call\n```\n\n---\n\n### 4. HTTP 401 — Unauthorized\n\n```\nApifyApiError: Authentication required (401)\n```\n\n**Cause:** Invalid, expired, or missing API token.\n\n**Diagnosis:**\n```bash\n# Test your token\ncurl -s -H \"Authorization: Bearer $APIFY_TOKEN\" \\\n  https:\u002F\u002Fapi.apify.com\u002Fv2\u002Fusers\u002Fme | jq '.data.username'\n```\n\n**Fix:** Regenerate token at Console > Settings > Integrations.\n\n---\n\n### 5. Actor Build Failed\n\n```\nBuild failed: npm ERR! code ERESOLVE\n```\n\n**Cause:** Dependency conflicts in `package.json` or Dockerfile issues.\n\n**Diagnosis:**\n```bash\n# Check build log on platform\napify builds ls\n\n# Test build locally\ndocker build -t my-actor -f .actor\u002FDockerfile .\n```\n\n**Fix:** Run `npm install` locally first. Ensure `package-lock.json` is committed. Check Node.js version matches the base image.\n\n---\n\n### 6. Proxy Connection Failed\n\n```\nError: Proxy responded with 502 Bad Gateway\nProxyError: Could not connect to proxy\n```\n\n**Cause:** Proxy configuration issue or proxy credits exhausted.\n\n**Fix:**\n```typescript\n\u002F\u002F Check proxy configuration\nconst proxyConfig = await Actor.createProxyConfiguration({\n  groups: ['BUYPROXIES94952'],  \u002F\u002F Verify group name in Console\n});\n\n\u002F\u002F Test proxy connectivity\nconst proxyUrl = await proxyConfig.newUrl();\nconsole.log('Proxy URL:', proxyUrl);\n\n\u002F\u002F Switch to residential if datacenter is blocked\nconst resProxy = await Actor.createProxyConfiguration({\n  groups: ['RESIDENTIAL'],\n  countryCode: 'US',\n});\n```\n\n---\n\n### 7. Anti-Bot Block (403\u002FCaptcha)\n\n```\nError: Request blocked — received status 403\nError: Captcha detected on page\n```\n\n**Cause:** Target website detected scraping activity.\n\n**Fix:**\n```typescript\nconst crawler = new PlaywrightCrawler({\n  proxyConfiguration: await Actor.createProxyConfiguration({\n    groups: ['RESIDENTIAL'],\n  }),\n  \u002F\u002F Mimic real browser behavior\n  launchContext: {\n    launchOptions: {\n      args: ['--disable-blink-features=AutomationControlled'],\n    },\n  },\n  preNavigationHooks: [\n    async ({ page }) => {\n      \u002F\u002F Randomize viewport\n      await page.setViewportSize({\n        width: 1280 + Math.floor(Math.random() * 200),\n        height: 720 + Math.floor(Math.random() * 200),\n      });\n    },\n  ],\n  maxConcurrency: 3,  \u002F\u002F Lower concurrency = less suspicious\n  navigationTimeoutSecs: 60,\n});\n```\n\n---\n\n### 8. Out of Memory\n\n```\nFATAL ERROR: CALL_AND_RETRY_LAST Allocation failed — JavaScript heap out of memory\n```\n\n**Cause:** Actor memory allocation too low for the workload.\n\n**Fix:**\n```typescript\n\u002F\u002F Increase memory when running via API\nconst run = await client.actor('user\u002Factor').call(input, {\n  memory: 4096,  \u002F\u002F MB — powers of 2: 128, 256, 512, 1024, 2048, 4096, ...\n});\n\n\u002F\u002F Or reduce memory usage in Actor code\nconst crawler = new CheerioCrawler({\n  maxConcurrency: 5,              \u002F\u002F Fewer concurrent pages\n  maxRequestsPerCrawl: 1000,      \u002F\u002F Cap total requests\n  requestHandlerTimeoutSecs: 30,  \u002F\u002F Fail fast on slow pages\n});\n```\n\n---\n\n### 9. Dataset Push Too Large\n\n```\nApifyApiError: Payload too large (413) — max 9MB per request\n```\n\n**Fix:**\n```typescript\n\u002F\u002F Chunk large pushes\nfunction chunkArray\u003CT>(arr: T[], size: number): T[][] {\n  const chunks: T[][] = [];\n  for (let i = 0; i \u003C arr.length; i += size) {\n    chunks.push(arr.slice(i, i + size));\n  }\n  return chunks;\n}\n\nfor (const chunk of chunkArray(items, 500)) {\n  await client.dataset(dsId).pushItems(chunk);\n}\n```\n\n---\n\n### 10. Actor Not Found\n\n```\nApifyApiError: Actor 'user\u002Factor-name' not found (404)\n```\n\n**Cause:** Wrong Actor ID, or Actor is private and you lack access.\n\n**Fix:** Actor IDs follow the format `username\u002Factor-name` or the Actor's unique ID (alphanumeric). Check the correct ID at `https:\u002F\u002Fapify.com\u002Fusername\u002Factor-name`.\n\n## Quick Diagnostic Commands\n\n```bash\n# Check Apify platform status\ncurl -s https:\u002F\u002Fapi.apify.com\u002Fv2\u002Fhealth | jq '.'\n\n# Verify your auth\ncurl -s -H \"Authorization: Bearer $APIFY_TOKEN\" \\\n  https:\u002F\u002Fapi.apify.com\u002Fv2\u002Fusers\u002Fme | jq '.data.username'\n\n# Check installed package versions\nnpm list apify-client apify crawlee 2>\u002Fdev\u002Fnull\n\n# Get last run status\ncurl -s -H \"Authorization: Bearer $APIFY_TOKEN\" \\\n  \"https:\u002F\u002Fapi.apify.com\u002Fv2\u002Facts\u002FUSER~ACTOR\u002Fruns?limit=1&desc=true\" | \\\n  jq '.data.items[0] | {status, statusMessage, startedAt, finishedAt}'\n```\n\n## Error Handling\n\n| HTTP Code | Meaning | Retryable | Action |\n|-----------|---------|-----------|--------|\n| 400 | Bad request | No | Fix input\u002Fparams |\n| 401 | Unauthorized | No | Check token |\n| 403 | Forbidden | No | Check permissions |\n| 404 | Not found | No | Verify resource ID |\n| 408 | Timeout | Yes | Retry with backoff |\n| 413 | Payload too large | No | Reduce batch size |\n| 429 | Rate limited | Yes | Auto-retried by client |\n| 500+ | Server error | Yes | Auto-retried by client |\n\n## Resources\n\n- [Apify API Error Codes](https:\u002F\u002Fdocs.apify.com\u002Fapi\u002Fv2)\n- [Apify Status Page](https:\u002F\u002Fstatus.apify.com)\n- [Actor Run Statuses](https:\u002F\u002Fdocs.apify.com\u002Fplatform\u002Factors\u002Frunning)\n\n## Next Steps\n\nFor comprehensive debugging, see `apify-debug-bundle`.\n\n",{"name":5,"tags":54,"author":57,"license":15,"version":58,"description":59,"allowed-tools":60,"compatible-with":61},[55,32,56,30],"saas","automation","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Diagnose and fix common Apify Actor and API errors.\nUse when encountering run failures, API errors, proxy issues,\nor Actor crashes on the Apify platform.\nTrigger: \"apify error\", \"fix apify\", \"actor failed\",\n\"apify not working\", \"debug apify\", \"apify 429\".\n","Read, Grep, Bash(curl:*), Bash(apify:*), Bash(npm:*)","claude-code","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fapify-common-errors",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":72,"prompt":82,"zipAvailable":83},[73,76,79],{"tool":74,"command":75},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill apify-common-errors",{"tool":77,"command":78},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill apify-common-errors",{"tool":80,"command":81},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill apify-common-errors","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fapify-common-errors\u002FSKILL.md",true,[],[86,96,106,115,121,128],{"skillNo":87,"name":88,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":92,"publishedAt":49},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[91],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[93,94,95],"model","model hierarchy","model hierarchy skill",{"skillNo":97,"name":98,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":102,"publishedAt":49},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[101],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[103,104,105],"MCP","zoom","zoom mcp",{"skillNo":107,"name":108,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":49},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[112,113,114,104],"sdk","zoom apps sdk","apps",{"skillNo":116,"name":117,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":49},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[117],{"skillNo":122,"name":123,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":127,"publishedAt":49},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[126],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[123],{"skillNo":129,"name":130,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":49},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[130]]