[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F9YVCD7VMYFGMZFZXEAT8Q":3,"skill-same:01M6F9YVCD7VMYFGMZFZXEAT8Q":83},{"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":60,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":65,"ownerHtmlUrl":66,"ownerBlogUrl":6,"ownerDescription":67,"updatedAt":68,"install":69,"resources":82},"01M6F9YVCD7VMYFGMZFZXEAT8Q","documenso-common-errors",null,"Diagnose and resolve common Documenso API errors and issues.\nUse when encountering Documenso errors, debugging integration issues,\nor troubleshooting failed operations.\nTrigger with phrases like \"documenso error\", \"documenso 401\",\n\"documenso failed\", \"fix documenso\", \"documenso not working\".","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\u002Fdocumenso-common-errors\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","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],"errors","documenso common errors","common","edit","documenso","with","error","trigger","io","use","fix","openclaw","write","read","api","saas","issues","code","debugging","diagnose","2026-11-10 10:12:30",false,"---\nname: documenso-common-errors\ndescription: |\n  Diagnose and resolve common Documenso API errors and issues.\n  Use when encountering Documenso errors, debugging integration issues,\n  or troubleshooting failed operations.\n  Trigger with phrases like \"documenso error\", \"documenso 401\",\n  \"documenso failed\", \"fix documenso\", \"documenso not working\".\nallowed-tools: Read, Write, Edit, Grep\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\ntags: [saas, documenso, api, debugging]\n\n---\n# Documenso Common Errors\n\n## Overview\n\nQuick-reference troubleshooting guide for Documenso API errors. Covers authentication, document lifecycle, field validation, file upload, webhook, and SDK-specific issues with concrete solutions.\n\n## Prerequisites\n\n- Working Documenso integration (see `documenso-install-auth`)\n- Access to application logs\n- API key available\n\n## HTTP Error Reference\n\n| Status | Error | Cause | Solution |\n|--------|-------|-------|----------|\n| 401 | Unauthorized | Invalid, expired, or missing API key | Regenerate key in dashboard; verify `Authorization: Bearer \u003Ckey>` header |\n| 403 | Forbidden | Personal key accessing team resources | Use a team-scoped API token |\n| 404 | Not Found | Wrong document\u002Ftemplate ID or deleted resource | Verify ID with `GET \u002Fapi\u002Fv1\u002Fdocuments` |\n| 400 | Bad Request | Invalid payload or missing required fields | Check request body against API spec |\n| 413 | Payload Too Large | PDF exceeds upload limit | Compress PDF; cloud plan limit varies by tier |\n| 429 | Too Many Requests | Rate limit exceeded | Implement backoff; see `documenso-rate-limits` |\n| 500\u002F502\u002F503 | Server Error | Documenso infrastructure issue | Retry with exponential backoff; check [status.documenso.com](https:\u002F\u002Fstatus.documenso.com) |\n\n## Instructions\n\n### Scenario 1: 401 Unauthorized\n\n```typescript\n\u002F\u002F WRONG: missing or malformed header\nconst res = await fetch(\"https:\u002F\u002Fapp.documenso.com\u002Fapi\u002Fv1\u002Fdocuments\", {\n  headers: { \"Authorization\": process.env.DOCUMENSO_API_KEY! }, \u002F\u002F Missing \"Bearer \"\n});\n\n\u002F\u002F CORRECT: include Bearer prefix\nconst res = await fetch(\"https:\u002F\u002Fapp.documenso.com\u002Fapi\u002Fv1\u002Fdocuments\", {\n  headers: { \"Authorization\": `Bearer ${process.env.DOCUMENSO_API_KEY}` },\n});\n\n\u002F\u002F SDK handles this automatically:\nimport { Documenso } from \"@documenso\u002Fsdk-typescript\";\nconst client = new Documenso({ apiKey: process.env.DOCUMENSO_API_KEY! });\n```\n\n**Checklist:**\n- API key starts with `api_` (personal) or is team-scoped\n- No trailing whitespace or newline in env var\n- Key hasn't been revoked in dashboard\n\n### Scenario 2: 403 — Personal Key on Team Resources\n\n```typescript\n\u002F\u002F Error: \"Forbidden\" when accessing team documents\n\u002F\u002F Personal API keys can only access YOUR documents\n\u002F\u002F Fix: generate a team API key from Team Settings > API Tokens\nconst client = new Documenso({\n  apiKey: process.env.DOCUMENSO_TEAM_API_KEY!, \u002F\u002F Team-scoped key\n});\n```\n\n### Scenario 3: Cannot Modify Sent Document (400)\n\n```typescript\n\u002F\u002F Error: trying to add fields to a PENDING document\n\u002F\u002F Documents can only be modified in DRAFT status\n\n\u002F\u002F Check status first\nconst doc = await client.documents.getV0(documentId);\nif (doc.status !== \"DRAFT\") {\n  throw new Error(`Cannot modify document in ${doc.status} status. Cancel first or create new.`);\n}\n\n\u002F\u002F To re-edit: cancel the sent document, modify, then re-send\n\u002F\u002F Note: cancelling notifies all recipients\n```\n\n### Scenario 4: Invalid Field Position (400)\n\n```typescript\n\u002F\u002F Error: field coordinates out of range\n\u002F\u002F pageX and pageY are PERCENTAGE-based (0-100), not pixel-based\n\n\u002F\u002F WRONG: pixel coordinates\nawait client.documentsFields.createV0(docId, {\n  recipientId, type: \"SIGNATURE\",\n  pageNumber: 1,\n  pageX: 200,  \u002F\u002F Invalid: > 100\n  pageY: 600,  \u002F\u002F Invalid: > 100\n  pageWidth: 150, pageHeight: 50,\n});\n\n\u002F\u002F CORRECT: percentage coordinates\nawait client.documentsFields.createV0(docId, {\n  recipientId, type: \"SIGNATURE\",\n  pageNumber: 1,\n  pageX: 10,     \u002F\u002F 10% from left edge\n  pageY: 80,     \u002F\u002F 80% from top edge\n  pageWidth: 30, \u002F\u002F 30% of page width\n  pageHeight: 5, \u002F\u002F 5% of page height\n});\n```\n\n### Scenario 5: File Upload Errors (413)\n\n```typescript\n\u002F\u002F Error: PDF too large for upload\n\u002F\u002F Cloud plans have per-document size limits\n\n\u002F\u002F Solution 1: Compress PDF before upload\nimport { PDFDocument } from \"pdf-lib\";\nconst pdfDoc = await PDFDocument.load(readFileSync(\"large-contract.pdf\"));\nconst compressed = await pdfDoc.save({ useObjectStreams: true });\n\u002F\u002F Upload compressed version\n\n\u002F\u002F Solution 2: Check file size before upload\nconst MAX_SIZE_MB = 10; \u002F\u002F Varies by plan\nconst fileSizeMB = readFileSync(\"contract.pdf\").length \u002F (1024 * 1024);\nif (fileSizeMB > MAX_SIZE_MB) {\n  throw new Error(`PDF is ${fileSizeMB.toFixed(1)}MB, max is ${MAX_SIZE_MB}MB`);\n}\n```\n\n### Scenario 6: Webhook Not Receiving Events\n\n```text\nChecklist:\n1. Webhook URL uses HTTPS (HTTP is rejected)\n2. Webhook is enabled in Team Settings > Webhooks\n3. Correct events are selected (document.completed, etc.)\n4. Your endpoint returns 200 within 10 seconds\n5. If using ngrok: tunnel is active and URL matches dashboard config\n6. Check X-Documenso-Secret header matches your stored secret\n```\n\n### Scenario 7: SDK Type Mismatches\n\n```typescript\n\u002F\u002F Error: argument type mismatch with SDK\n\u002F\u002F The SDK uses specific enum strings, not arbitrary values\n\n\u002F\u002F WRONG\nawait client.documentsRecipients.createV0(docId, {\n  email: \"signer@example.com\",\n  name: \"Jane\",\n  role: \"signer\", \u002F\u002F Lowercase fails\n});\n\n\u002F\u002F CORRECT: use uppercase enum values\nawait client.documentsRecipients.createV0(docId, {\n  email: \"signer@example.com\",\n  name: \"Jane\",\n  role: \"SIGNER\", \u002F\u002F Must be uppercase: SIGNER, VIEWER, APPROVER, CC\n});\n\n\u002F\u002F Field types are also uppercase: SIGNATURE, TEXT, DATE, NAME, EMAIL,\n\u002F\u002F INITIALS, NUMBER, CHECKBOX, DROPDOWN, RADIO, FREE_SIGNATURE\n```\n\n## Debugging Quick Commands\n\n```bash\n# Test API key\ncurl -s -w \"\\n%{http_code}\" \\\n  -H \"Authorization: Bearer $DOCUMENSO_API_KEY\" \\\n  https:\u002F\u002Fapp.documenso.com\u002Fapi\u002Fv1\u002Fdocuments?page=1&perPage=1\n\n# Check self-hosted instance health\ncurl -s https:\u002F\u002Fyour-instance.com\u002Fapi\u002Fhealth\n\n# List documents to verify access\ncurl -s -H \"Authorization: Bearer $DOCUMENSO_API_KEY\" \\\n  \"https:\u002F\u002Fapp.documenso.com\u002Fapi\u002Fv1\u002Fdocuments?page=1&perPage=5\" | jq '.documents[].title'\n```\n\n## Error Handling\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| `ERR_INVALID_URL` | Bad `serverURL` in SDK config | Include protocol and path: `https:\u002F\u002Fhost\u002Fapi\u002Fv2` |\n| `ECONNREFUSED` | Self-hosted instance down | Check Docker container status |\n| `Module not found` | SDK not installed | Run `npm install @documenso\u002Fsdk-typescript` |\n| Stale document data | Caching old state | Re-fetch document after status changes |\n\n## Resources\n\n- [Documenso API Reference](https:\u002F\u002Fopenapi.documenso.com\u002F)\n- [Status Page](https:\u002F\u002Fstatus.documenso.com)\n- [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fdocumenso\u002Fdocumenso\u002Fissues)\n- [Documenso Discord](https:\u002F\u002Fdocumenso.com\u002Fdiscord)\n\n## Next Steps\n\nFor comprehensive debugging, see `documenso-debug-bundle`.\n\n","# Documenso Common Errors\n\n## Overview\n\nQuick-reference troubleshooting guide for Documenso API errors. Covers authentication, document lifecycle, field validation, file upload, webhook, and SDK-specific issues with concrete solutions.\n\n## Prerequisites\n\n- Working Documenso integration (see `documenso-install-auth`)\n- Access to application logs\n- API key available\n\n## HTTP Error Reference\n\n| Status | Error | Cause | Solution |\n|--------|-------|-------|----------|\n| 401 | Unauthorized | Invalid, expired, or missing API key | Regenerate key in dashboard; verify `Authorization: Bearer \u003Ckey>` header |\n| 403 | Forbidden | Personal key accessing team resources | Use a team-scoped API token |\n| 404 | Not Found | Wrong document\u002Ftemplate ID or deleted resource | Verify ID with `GET \u002Fapi\u002Fv1\u002Fdocuments` |\n| 400 | Bad Request | Invalid payload or missing required fields | Check request body against API spec |\n| 413 | Payload Too Large | PDF exceeds upload limit | Compress PDF; cloud plan limit varies by tier |\n| 429 | Too Many Requests | Rate limit exceeded | Implement backoff; see `documenso-rate-limits` |\n| 500\u002F502\u002F503 | Server Error | Documenso infrastructure issue | Retry with exponential backoff; check [status.documenso.com](https:\u002F\u002Fstatus.documenso.com) |\n\n## Instructions\n\n### Scenario 1: 401 Unauthorized\n\n```typescript\n\u002F\u002F WRONG: missing or malformed header\nconst res = await fetch(\"https:\u002F\u002Fapp.documenso.com\u002Fapi\u002Fv1\u002Fdocuments\", {\n  headers: { \"Authorization\": process.env.DOCUMENSO_API_KEY! }, \u002F\u002F Missing \"Bearer \"\n});\n\n\u002F\u002F CORRECT: include Bearer prefix\nconst res = await fetch(\"https:\u002F\u002Fapp.documenso.com\u002Fapi\u002Fv1\u002Fdocuments\", {\n  headers: { \"Authorization\": `Bearer ${process.env.DOCUMENSO_API_KEY}` },\n});\n\n\u002F\u002F SDK handles this automatically:\nimport { Documenso } from \"@documenso\u002Fsdk-typescript\";\nconst client = new Documenso({ apiKey: process.env.DOCUMENSO_API_KEY! });\n```\n\n**Checklist:**\n- API key starts with `api_` (personal) or is team-scoped\n- No trailing whitespace or newline in env var\n- Key hasn't been revoked in dashboard\n\n### Scenario 2: 403 — Personal Key on Team Resources\n\n```typescript\n\u002F\u002F Error: \"Forbidden\" when accessing team documents\n\u002F\u002F Personal API keys can only access YOUR documents\n\u002F\u002F Fix: generate a team API key from Team Settings > API Tokens\nconst client = new Documenso({\n  apiKey: process.env.DOCUMENSO_TEAM_API_KEY!, \u002F\u002F Team-scoped key\n});\n```\n\n### Scenario 3: Cannot Modify Sent Document (400)\n\n```typescript\n\u002F\u002F Error: trying to add fields to a PENDING document\n\u002F\u002F Documents can only be modified in DRAFT status\n\n\u002F\u002F Check status first\nconst doc = await client.documents.getV0(documentId);\nif (doc.status !== \"DRAFT\") {\n  throw new Error(`Cannot modify document in ${doc.status} status. Cancel first or create new.`);\n}\n\n\u002F\u002F To re-edit: cancel the sent document, modify, then re-send\n\u002F\u002F Note: cancelling notifies all recipients\n```\n\n### Scenario 4: Invalid Field Position (400)\n\n```typescript\n\u002F\u002F Error: field coordinates out of range\n\u002F\u002F pageX and pageY are PERCENTAGE-based (0-100), not pixel-based\n\n\u002F\u002F WRONG: pixel coordinates\nawait client.documentsFields.createV0(docId, {\n  recipientId, type: \"SIGNATURE\",\n  pageNumber: 1,\n  pageX: 200,  \u002F\u002F Invalid: > 100\n  pageY: 600,  \u002F\u002F Invalid: > 100\n  pageWidth: 150, pageHeight: 50,\n});\n\n\u002F\u002F CORRECT: percentage coordinates\nawait client.documentsFields.createV0(docId, {\n  recipientId, type: \"SIGNATURE\",\n  pageNumber: 1,\n  pageX: 10,     \u002F\u002F 10% from left edge\n  pageY: 80,     \u002F\u002F 80% from top edge\n  pageWidth: 30, \u002F\u002F 30% of page width\n  pageHeight: 5, \u002F\u002F 5% of page height\n});\n```\n\n### Scenario 5: File Upload Errors (413)\n\n```typescript\n\u002F\u002F Error: PDF too large for upload\n\u002F\u002F Cloud plans have per-document size limits\n\n\u002F\u002F Solution 1: Compress PDF before upload\nimport { PDFDocument } from \"pdf-lib\";\nconst pdfDoc = await PDFDocument.load(readFileSync(\"large-contract.pdf\"));\nconst compressed = await pdfDoc.save({ useObjectStreams: true });\n\u002F\u002F Upload compressed version\n\n\u002F\u002F Solution 2: Check file size before upload\nconst MAX_SIZE_MB = 10; \u002F\u002F Varies by plan\nconst fileSizeMB = readFileSync(\"contract.pdf\").length \u002F (1024 * 1024);\nif (fileSizeMB > MAX_SIZE_MB) {\n  throw new Error(`PDF is ${fileSizeMB.toFixed(1)}MB, max is ${MAX_SIZE_MB}MB`);\n}\n```\n\n### Scenario 6: Webhook Not Receiving Events\n\n```text\nChecklist:\n1. Webhook URL uses HTTPS (HTTP is rejected)\n2. Webhook is enabled in Team Settings > Webhooks\n3. Correct events are selected (document.completed, etc.)\n4. Your endpoint returns 200 within 10 seconds\n5. If using ngrok: tunnel is active and URL matches dashboard config\n6. Check X-Documenso-Secret header matches your stored secret\n```\n\n### Scenario 7: SDK Type Mismatches\n\n```typescript\n\u002F\u002F Error: argument type mismatch with SDK\n\u002F\u002F The SDK uses specific enum strings, not arbitrary values\n\n\u002F\u002F WRONG\nawait client.documentsRecipients.createV0(docId, {\n  email: \"signer@example.com\",\n  name: \"Jane\",\n  role: \"signer\", \u002F\u002F Lowercase fails\n});\n\n\u002F\u002F CORRECT: use uppercase enum values\nawait client.documentsRecipients.createV0(docId, {\n  email: \"signer@example.com\",\n  name: \"Jane\",\n  role: \"SIGNER\", \u002F\u002F Must be uppercase: SIGNER, VIEWER, APPROVER, CC\n});\n\n\u002F\u002F Field types are also uppercase: SIGNATURE, TEXT, DATE, NAME, EMAIL,\n\u002F\u002F INITIALS, NUMBER, CHECKBOX, DROPDOWN, RADIO, FREE_SIGNATURE\n```\n\n## Debugging Quick Commands\n\n```bash\n# Test API key\ncurl -s -w \"\\n%{http_code}\" \\\n  -H \"Authorization: Bearer $DOCUMENSO_API_KEY\" \\\n  https:\u002F\u002Fapp.documenso.com\u002Fapi\u002Fv1\u002Fdocuments?page=1&perPage=1\n\n# Check self-hosted instance health\ncurl -s https:\u002F\u002Fyour-instance.com\u002Fapi\u002Fhealth\n\n# List documents to verify access\ncurl -s -H \"Authorization: Bearer $DOCUMENSO_API_KEY\" \\\n  \"https:\u002F\u002Fapp.documenso.com\u002Fapi\u002Fv1\u002Fdocuments?page=1&perPage=5\" | jq '.documents[].title'\n```\n\n## Error Handling\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| `ERR_INVALID_URL` | Bad `serverURL` in SDK config | Include protocol and path: `https:\u002F\u002Fhost\u002Fapi\u002Fv2` |\n| `ECONNREFUSED` | Self-hosted instance down | Check Docker container status |\n| `Module not found` | SDK not installed | Run `npm install @documenso\u002Fsdk-typescript` |\n| Stale document data | Caching old state | Re-fetch document after status changes |\n\n## Resources\n\n- [Documenso API Reference](https:\u002F\u002Fopenapi.documenso.com\u002F)\n- [Status Page](https:\u002F\u002Fstatus.documenso.com)\n- [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fdocumenso\u002Fdocumenso\u002Fissues)\n- [Documenso Discord](https:\u002F\u002Fdocumenso.com\u002Fdiscord)\n\n## Next Steps\n\nFor comprehensive debugging, see `documenso-debug-bundle`.\n\n",{"name":5,"tags":54,"author":55,"license":15,"version":56,"description":57,"allowed-tools":58,"compatible-with":59},[44,33,43,47],"Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Diagnose and resolve common Documenso API errors and issues.\nUse when encountering Documenso errors, debugging integration issues,\nor troubleshooting failed operations.\nTrigger with phrases like \"documenso error\", \"documenso 401\",\n\"documenso failed\", \"fix documenso\", \"documenso not working\".\n","Read, Write, Edit, Grep","claude-code, codex, openclaw","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fdocumenso-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":70,"prompt":80,"zipAvailable":81},[71,74,77],{"tool":72,"command":73},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill documenso-common-errors",{"tool":75,"command":76},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill documenso-common-errors",{"tool":78,"command":79},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill documenso-common-errors","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fdocumenso-common-errors\u002FSKILL.md",true,[],[84,96,106,115,121,128],{"skillNo":85,"name":86,"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":87,"categories":88,"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",[89],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[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":90,"categoryName":91,"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":90,"categoryName":91,"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]]