{"id":"f3deb0cf-f1bf-4683-a04d-654f5d263086","shortId":"2HT3b6","kind":"skill","title":"Api Documentation Generator","tagline":"Antigravity Awesome Skills skill by Sickn33","description":"# API Documentation Generator\n\n## Overview\n\nAutomatically generate clear, comprehensive API documentation from your codebase. This skill helps you create professional documentation that includes endpoint descriptions, request/response examples, authentication details, error handling, and usage guidelines.\n\nPerfect for REST APIs, GraphQL APIs, and WebSocket APIs.\n\n## When to Use This Skill\n\n- Use when you need to document a new API\n- Use when updating existing API documentation\n- Use when your API lacks clear documentation\n- Use when onboarding new developers to your API\n- Use when preparing API documentation for external users\n- Use when creating OpenAPI/Swagger specifications\n\n## How It Works\n\n### Step 1: Analyze the API Structure\n\nFirst, I'll examine your API codebase to understand:\n- Available endpoints and routes\n- HTTP methods (GET, POST, PUT, DELETE, etc.)\n- Request parameters and body structure\n- Response formats and status codes\n- Authentication and authorization requirements\n- Error handling patterns\n\n### Step 2: Generate Endpoint Documentation\n\nFor each endpoint, I'll create documentation including:\n\n**Endpoint Details:**\n- HTTP method and URL path\n- Brief description of what it does\n- Authentication requirements\n- Rate limiting information (if applicable)\n\n**Request Specification:**\n- Path parameters\n- Query parameters\n- Request headers\n- Request body schema (with types and validation rules)\n\n**Response Specification:**\n- Success response (status code + body structure)\n- Error responses (all possible error codes)\n- Response headers\n\n**Code Examples:**\n- cURL command\n- JavaScript/TypeScript (fetch/axios)\n- Python (requests)\n- Other languages as needed\n\n### Step 3: Add Usage Guidelines\n\nI'll include:\n- Getting started guide\n- Authentication setup\n- Common use cases\n- Best practices\n- Rate limiting details\n- Pagination patterns\n- Filtering and sorting options\n\n### Step 4: Document Error Handling\n\nClear error documentation including:\n- All possible error codes\n- Error message formats\n- Troubleshooting guide\n- Common error scenarios and solutions\n\n### Step 5: Create Interactive Examples\n\nWhere possible, I'll provide:\n- Postman collection\n- OpenAPI/Swagger specification\n- Interactive code examples\n- Sample responses\n\n## Examples\n\n### Example 1: REST API Endpoint Documentation\n\n```markdown\n## Create User\n\nCreates a new user account.\n\n**Endpoint:** `POST /api/v1/users`\n\n**Authentication:** Required (Bearer token)\n\n**Request Body:**\n\\`\\`\\`json\n{\n  \"email\": \"user@example.com\",      // Required: Valid email address\n  \"password\": \"SecurePass123!\",     // Required: Min 8 chars, 1 uppercase, 1 number\n  \"name\": \"John Doe\",               // Required: 2-50 characters\n  \"role\": \"user\"                    // Optional: \"user\" or \"admin\" (default: \"user\")\n}\n\\`\\`\\`\n\n**Success Response (201 Created):**\n\\`\\`\\`json\n{\n  \"id\": \"usr_1234567890\",\n  \"email\": \"user@example.com\",\n  \"name\": \"John Doe\",\n  \"role\": \"user\",\n  \"createdAt\": \"2026-01-20T10:30:00Z\",\n  \"emailVerified\": false\n}\n\\`\\`\\`\n\n**Error Responses:**\n\n- `400 Bad Request` - Invalid input data\n  \\`\\`\\`json\n  {\n    \"error\": \"VALIDATION_ERROR\",\n    \"message\": \"Invalid email format\",\n    \"field\": \"email\"\n  }\n  \\`\\`\\`\n\n- `409 Conflict` - Email already exists\n  \\`\\`\\`json\n  {\n    \"error\": \"EMAIL_EXISTS\",\n    \"message\": \"An account with this email already exists\"\n  }\n  \\`\\`\\`\n\n- `401 Unauthorized` - Missing or invalid authentication token\n\n**Example Request (cURL):**\n\\`\\`\\`bash\ncurl -X POST https://api.example.com/api/v1/users \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"email\": \"user@example.com\",\n    \"password\": \"SecurePass123!\",\n    \"name\": \"John Doe\"\n  }'\n\\`\\`\\`\n\n**Example Request (JavaScript):**\n\\`\\`\\`javascript\nconst response = await fetch('https://api.example.com/api/v1/users', {\n  method: 'POST',\n  headers: {\n    'Authorization': `Bearer ${token}`,\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify({\n    email: 'user@example.com',\n    password: 'SecurePass123!',\n    name: 'John Doe'\n  })\n});\n\nconst user = await response.json();\nconsole.log(user);\n\\`\\`\\`\n\n**Example Request (Python):**\n\\`\\`\\`python\nimport requests\n\nresponse = requests.post(\n    'https://api.example.com/api/v1/users',\n    headers={\n        'Authorization': f'Bearer {token}',\n        'Content-Type': 'application/json'\n    },\n    json={\n        'email': 'user@example.com',\n        'password': 'SecurePass123!',\n        'name': 'John Doe'\n    }\n)\n\nuser = response.json()\nprint(user)\n\\`\\`\\`\n```\n\n### Example 2: GraphQL API Documentation\n\n```markdown\n## User Query\n\nFetch user information by ID.\n\n**Query:**\n\\`\\`\\`graphql\nquery GetUser($id: ID!) {\n  user(id: $id) {\n    id\n    email\n    name\n    role\n    createdAt\n    posts {\n      id\n      title\n      publishedAt\n    }\n  }\n}\n\\`\\`\\`\n\n**Variables:**\n\\`\\`\\`json\n{\n  \"id\": \"usr_1234567890\"\n}\n\\`\\`\\`\n\n**Response:**\n\\`\\`\\`json\n{\n  \"data\": {\n    \"user\": {\n      \"id\": \"usr_1234567890\",\n      \"email\": \"user@example.com\",\n      \"name\": \"John Doe\",\n      \"role\": \"user\",\n      \"createdAt\": \"2026-01-20T10:30:00Z\",\n      \"posts\": [\n        {\n          \"id\": \"post_123\",\n          \"title\": \"My First Post\",\n          \"publishedAt\": \"2026-01-21T14:00:00Z\"\n        }\n      ]\n    }\n  }\n}\n\\`\\`\\`\n\n**Errors:**\n\\`\\`\\`json\n{\n  \"errors\": [\n    {\n      \"message\": \"User not found\",\n      \"extensions\": {\n        \"code\": \"USER_NOT_FOUND\",\n        \"userId\": \"usr_1234567890\"\n      }\n    }\n  ]\n}\n\\`\\`\\`\n```\n\n### Example 3: Authentication Documentation\n\n```markdown\n## Authentication\n\nAll API requests require authentication using Bearer tokens.\n\n### Getting a Token\n\n**Endpoint:** `POST /api/v1/auth/login`\n\n**Request:**\n\\`\\`\\`json\n{\n  \"email\": \"user@example.com\",\n  \"password\": \"your-password\"\n}\n\\`\\`\\`\n\n**Response:**\n\\`\\`\\`json\n{\n  \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"expiresIn\": 3600,\n  \"refreshToken\": \"refresh_token_here\"\n}\n\\`\\`\\`\n\n### Using the Token\n\nInclude the token in the Authorization header:\n\n\\`\\`\\`\nAuthorization: Bearer YOUR_TOKEN\n\\`\\`\\`\n\n### Token Expiration\n\nTokens expire after 1 hour. Use the refresh token to get a new access token:\n\n**Endpoint:** `POST /api/v1/auth/refresh`\n\n**Request:**\n\\`\\`\\`json\n{\n  \"refreshToken\": \"refresh_token_here\"\n}\n\\`\\`\\`\n```\n\n## Best Practices\n\n### ✅ Do This\n\n- **Be Consistent** - Use the same format for all endpoints\n- **Include Examples** - Provide working code examples in multiple languages\n- **Document Errors** - List all possible error codes and their meanings\n- **Show Real Data** - Use realistic example data, not \"foo\" and \"bar\"\n- **Explain Parameters** - Describe what each parameter does and its constraints\n- **Version Your API** - Include version numbers in URLs (/api/v1/)\n- **Add Timestamps** - Show when documentation was last updated\n- **Link Related Endpoints** - Help users discover related functionality\n- **Include Rate Limits** - Document any rate limiting policies\n- **Provide Postman Collection** - Make it easy to test your API\n\n### ❌ Don't Do This\n\n- **Don't Skip Error Cases** - Users need to know what can go wrong\n- **Don't Use Vague Descriptions** - \"Gets data\" is not helpful\n- **Don't Forget Authentication** - Always document auth requirements\n- **Don't Ignore Edge Cases** - Document pagination, filtering, sorting\n- **Don't Leave Examples Broken** - Test all code examples\n- **Don't Use Outdated Info** - Keep documentation in sync with code\n- **Don't Overcomplicate** - Keep it simple and scannable\n- **Don't Forget Response Headers** - Document important headers\n\n## Documentation Structure\n\n### Recommended Sections\n\n1. **Introduction**\n   - What the API does\n   - Base URL\n   - API version\n   - Support contact\n\n2. **Authentication**\n   - How to authenticate\n   - Token management\n   - Security best practices\n\n3. **Quick Start**\n   - Simple example to get started\n   - Common use case walkthrough\n\n4. **Endpoints**\n   - Organized by resource\n   - Full details for each endpoint\n\n5. **Data Models**\n   - Schema definitions\n   - Field descriptions\n   - Validation rules\n\n6. **Error Handling**\n   - Error code reference\n   - Error response format\n   - Troubleshooting guide\n\n7. **Rate Limiting**\n   - Limits and quotas\n   - Headers to check\n   - Handling rate limit errors\n\n8. **Changelog**\n   - API version history\n   - Breaking changes\n   - Deprecation notices\n\n9. **SDKs and Tools**\n   - Official client libraries\n   - Postman collection\n   - OpenAPI specification\n\n## Common Pitfalls\n\n### Problem: Documentation Gets Out of Sync\n**Symptoms:** Examples don't work, parameters are wrong, endpoints return different data\n**Solution:** \n- Generate docs from code comments/annotations\n- Use tools like Swagger/OpenAPI\n- Add API tests that validate documentation\n- Review docs with every API change\n\n### Problem: Missing Error Documentation\n**Symptoms:** Users don't know how to handle errors, support tickets increase\n**Solution:**\n- Document every possible error code\n- Provide clear error messages\n- Include troubleshooting steps\n- Show example error responses\n\n### Problem: Examples Don't Work\n**Symptoms:** Users can't get started, frustration increases\n**Solution:**\n- Test every code example\n- Use real, working endpoints\n- Include complete examples (not fragments)\n- Provide a sandbox environment\n\n### Problem: Unclear Parameter Requirements\n**Symptoms:** Users send invalid requests, validation errors\n**Solution:**\n- Mark required vs optional clearly\n- Document data types and formats\n- Show validation rules\n- Provide example values\n\n## Tools and Formats\n\n### OpenAPI/Swagger\nGenerate interactive documentation:\n```yaml\nopenapi: 3.0.0\ninfo:\n  title: My API\n  version: 1.0.0\npaths:\n  /users:\n    post:\n      summary: Create a new user\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/CreateUserRequest'\n```\n\n### Postman Collection\nExport collection for easy testing:\n```json\n{\n  \"info\": {\n    \"name\": \"My API\",\n    \"schema\": \"https://schema.getpostman.com/json/collection/v2.1.0/collection.json\"\n  },\n  \"item\": [\n    {\n      \"name\": \"Create User\",\n      \"request\": {\n        \"method\": \"POST\",\n        \"url\": \"{{baseUrl}}/api/v1/users\"\n      }\n    }\n  ]\n}\n```\n\n## Related Skills\n\n- `@doc-coauthoring` - For collaborative documentation writing\n- `@copywriting` - For clear, user-friendly descriptions\n- `@test-driven-development` - For ensuring API behavior matches docs\n- `@systematic-debugging` - For troubleshooting API issues\n\n## Additional Resources\n\n- [OpenAPI Specification](https://swagger.io/specification/)\n- [REST API Best Practices](https://restfulapi.net/)\n- [GraphQL Documentation](https://graphql.org/learn/)\n- [API Design Patterns](https://www.apiguide.com/)\n- [Postman Documentation](https://learning.postman.com/docs/)\n\n---\n\n**Pro Tip:** Keep your API documentation as close to your code as possible. Use tools that generate docs from code comments to ensure they stay in sync!\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":["api","documentation","generator","antigravity","awesome","skills","sickn33"],"capabilities":["skill","source-sickn33","category-antigravity-awesome-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/api-documentation-generator","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under sickn33/antigravity-awesome-skills","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:v1","enrichmentVersion":1,"enrichedAt":"2026-04-25T11:40:38.182Z","embedding":null,"createdAt":"2026-04-18T20:31:16.208Z","updatedAt":"2026-04-25T11:40:38.182Z","lastSeenAt":"2026-04-25T11:40:38.182Z","tsv":"'-01':365,562,577 '-20':366,563 '-21':578 '-50':338 '/)':1190,1201 '/api/v1':736 '/api/v1/auth/login':616 '/api/v1/auth/refresh':668 '/api/v1/users':309,423,1143 '/api/v1/users'',':452,488 '/components/schemas/createuserrequest':1117 '/docs/)':1206 '/json/collection/v2.1.0/collection.json':1133 '/learn/)':1195 '/specification/)':1183 '/users':1103 '00':580 '00z':369,566,581 '1':104,294,329,331,654,855 '1.0.0':1101 '123':570 '1234567890':355,545,552,596 '2':147,337,511,867 '201':350 '2026':364,561,576 '3':224,598,877 '3.0.0':1095 '30':368,565 '3600':630 '4':251,889 '400':374 '401':407 '409':390 '5':274,899 '6':908 '7':919 '8':327,932 '9':941 'access':664 'account':306,401 'add':225,737,982 'addit':1177 'address':322 'admin':345 'alreadi':393,405 'alway':802 'analyz':105 'antigrav':4 'api':1,10,18,46,48,51,65,70,75,86,90,107,114,296,513,604,730,770,859,863,934,983,992,1099,1129,1166,1175,1185,1196,1211 'api.example.com':422,451,487 'api.example.com/api/v1/users':421 'api.example.com/api/v1/users'',':450,486 'applic':178 'application/json':433,462,497,1114 'ask':1267 'auth':804 'authent':36,139,172,234,310,412,599,602,607,801,868,871 'author':141,425,456,490,643,645 'automat':14 'avail':118 'await':448,474 'awesom':5 'bad':375 'bar':717 'base':861 'baseurl':1142 'bash':417 'bearer':312,426,457,492,609,646 'behavior':1167 'best':239,675,875,1186 'bodi':132,188,201,315,463 'boundari':1275 'break':937 'brief':166 'broken':819 'case':238,779,810,887 'category-antigravity-awesome-skills' 'chang':938,993 'changelog':933 'char':328 'charact':339 'check':927 'clarif':1269 'clear':16,77,255,1017,1074,1155,1242 'client':946 'close':1214 'coauthor':1148 'code':138,200,208,211,262,288,590,692,703,822,834,912,976,1015,1043,1217,1226 'codebas':22,115 'collabor':1150 'collect':284,763,949,1119,1121 'command':214 'comment':1227 'comments/annotations':977 'common':236,268,885,952 'complet':1050 'comprehens':17 'conflict':391 'consist':680 'console.log':476 'const':446,472 'constraint':727 'contact':866 'content':431,460,495,1113 'content-typ':430,459,494 'copywrit':1153 'creat':27,97,156,275,300,302,351,1106,1136 'createdat':363,536,560 'criteria':1278 'curl':213,416,418 'd':434 'data':379,548,709,713,794,900,971,1076 'debug':1172 'default':346 'definit':903 'delet':127 'deprec':939 'describ':720,1246 'descript':33,167,792,905,1159 'design':1197 'detail':37,160,243,895 'develop':83,1163 'differ':970 'discov':750 'doc':974,989,1147,1169,1224 'doc-coauthor':1146 'document':2,11,19,29,62,71,78,91,150,157,252,257,298,514,600,697,741,756,803,811,830,848,851,955,987,997,1011,1075,1092,1151,1192,1203,1212 'doe':335,360,441,471,505,557 'driven':1162 'easi':766,1123 'edg':809 'email':317,321,356,386,389,392,397,404,435,465,499,533,553,619 'emailverifi':370 'endpoint':32,119,149,153,159,297,307,614,666,687,747,890,898,968,1048 'ensur':1165,1229 'environ':1057,1258 'environment-specif':1257 'error':38,143,203,207,253,256,261,263,269,372,381,383,396,582,584,698,702,778,909,911,914,931,996,1006,1014,1018,1025,1068 'etc':128 'everi':991,1012,1042 'examin':112 'exampl':35,212,277,289,292,293,414,442,478,510,597,689,693,712,818,823,881,961,1024,1028,1044,1051,1084 'exist':69,394,398,406 'expert':1263 'expir':650,652 'expiresin':629 'explain':718 'export':1120 'extens':589 'extern':93 'eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9':628 'f':491 'fals':371 'fetch':449,518 'fetch/axios':216 'field':388,904 'filter':246,813 'first':109,573 'foo':715 'forget':800,845 'format':135,265,387,684,916,1079,1088 'found':588,593 'fragment':1053 'friend':1158 'frustrat':1038 'full':894 'function':752 'generat':3,12,15,148,973,1090,1223 'get':124,231,611,661,793,883,956,1036 'getus':526 'go':786 'graphql':47,512,524,1191 'graphql.org':1194 'graphql.org/learn/)':1193 'guid':233,267,918 'guidelin':42,227 'h':424,429 'handl':39,144,254,910,928,1005 'header':186,210,455,489,644,847,850,925 'help':25,748,797 'histori':936 'hour':655 'http':122,161 'id':353,522,527,528,530,531,532,538,543,550,568 'ignor':808 'import':482,849 'includ':31,158,230,258,638,688,731,753,1020,1049 'increas':1009,1039 'info':828,1096,1126 'inform':176,520 'input':378,1272 'interact':276,287,1091 'introduct':856 'invalid':377,385,411,1065 'issu':1176 'item':1134 'javascript':444,445 'javascript/typescript':215 'john':334,359,440,470,504,556 'json':316,352,380,395,498,542,547,583,618,626,670,1125 'json.stringify':464 'keep':829,838,1209 'know':783,1002 'lack':76 'languag':220,696 'last':743 'learning.postman.com':1205 'learning.postman.com/docs/)':1204 'leav':817 'librari':947 'like':980 'limit':175,242,755,759,921,922,930,1234 'link':745 'list':699 'll':111,155,229,281 'make':764 'manag':873 'mark':1070 'markdown':299,515,601 'match':1168,1243 'mean':706 'messag':264,384,399,585,1019 'method':123,162,453,1139 'min':326 'miss':409,995,1280 'model':901 'multipl':695 'name':333,358,439,469,503,534,555,1127,1135 'need':60,222,781 'new':64,82,304,663,1108 'notic':940 'number':332,733 'offici':945 'onboard':81 'openapi':950,1094,1179 'openapi/swagger':98,285,1089 'option':249,342,1073 'organ':891 'outdat':827 'output':1252 'overcompl':837 'overview':13 'pagin':244,812 'paramet':130,182,184,719,723,965,1060 'password':323,437,467,501,621,624 'path':165,181,1102 'pattern':145,245,1198 'perfect':43 'permiss':1273 'pitfal':953 'polici':760 'possibl':206,260,279,701,1013,1219 'post':125,308,420,454,537,567,569,574,615,667,1104,1140 'postman':283,762,948,1118,1202 'practic':240,676,876,1187 'prepar':89 'print':508 'pro':1207 'problem':954,994,1027,1058 'profession':28 'provid':282,690,761,1016,1054,1083 'publishedat':540,575 'put':126 'python':217,480,481 'queri':183,517,523,525 'quick':878 'quota':924 'rate':174,241,754,758,920,929 'real':708,1046 'realist':711 'recommend':853 'ref':1116 'refer':913 'refresh':632,658,672 'refreshtoken':631,671 'relat':746,751,1144 'request':129,179,185,187,218,314,376,415,443,479,483,605,617,669,1066,1138 'request/response':34 'requestbodi':1110 'requests.post':485 'requir':142,173,311,319,325,336,606,805,1061,1071,1111,1271 'resourc':893,1178 'respons':134,195,198,204,209,291,349,373,447,484,546,625,846,915,1026 'response.json':475,507 'rest':45,295,1184 'restfulapi.net':1189 'restfulapi.net/)':1188 'return':969 'review':988,1264 'role':340,361,535,558 'rout':121 'rule':194,907,1082 'safeti':1274 'sampl':290 'sandbox':1056 'scannabl':842 'scenario':270 'schema':189,902,1115,1130 'schema.getpostman.com':1132 'schema.getpostman.com/json/collection/v2.1.0/collection.json':1131 'scope':1245 'sdks':942 'section':854 'secur':874 'securepass123':324,438,468,502 'send':1064 'setup':235 'show':707,739,1023,1080 'sickn33':9 'simpl':840,880 'skill':6,7,24,56,1145,1237 'skip':777 'solut':272,972,1010,1040,1069 'sort':248,814 'source-sickn33' 'specif':99,180,196,286,951,1180,1259 'start':232,879,884,1037 'status':137,199 'stay':1231 'step':103,146,223,250,273,1022 'stop':1265 'structur':108,133,202,852 'substitut':1255 'success':197,348,1277 'summari':1105 'support':865,1007 'swagger.io':1182 'swagger.io/specification/)':1181 'swagger/openapi':981 'symptom':960,998,1032,1062 'sync':832,959,1233 'systemat':1171 'systematic-debug':1170 't10':367,564 't14':579 'task':1241 'test':768,820,984,1041,1124,1161,1261 'test-driven-develop':1160 'ticket':1008 'timestamp':738 'tip':1208 'titl':539,571,1097 'token':313,413,428,458,493,610,613,627,633,637,640,648,649,651,659,665,673,872 'tool':944,979,1086,1221 'treat':1250 'troubleshoot':266,917,1021,1174 'true':1112 'type':191,432,461,496,1077 'unauthor':408 'unclear':1059 'understand':117 'updat':68,744 'uppercas':330 'url':164,735,862,1141 'usag':41,226 'use':54,57,66,72,79,87,95,237,608,635,656,681,710,790,826,886,978,1045,1220,1235 'user':94,301,305,341,343,347,362,473,477,506,509,516,519,529,549,559,586,591,749,780,999,1033,1063,1109,1137,1157 'user-friend':1156 'user@example.com':318,357,436,466,500,554,620 'userid':594 'usr':354,544,551,595 'vagu':791 'valid':193,320,382,906,986,1067,1081,1260 'valu':1085 'variabl':541 'version':728,732,864,935,1100 'vs':1072 'walkthrough':888 'websocket':50 'work':102,691,964,1031,1047 'write':1152 'wrong':787,967 'www.apiguide.com':1200 'www.apiguide.com/)':1199 'x':419 'yaml':1093 'your-password':622","prices":[{"id":"aedee07d-50a7-4ec6-839d-b58aeaeec50f","listingId":"f3deb0cf-f1bf-4683-a04d-654f5d263086","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-18T20:31:16.208Z"}],"sources":[{"listingId":"f3deb0cf-f1bf-4683-a04d-654f5d263086","source":"github","sourceId":"sickn33/antigravity-awesome-skills/api-documentation-generator","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/api-documentation-generator","isPrimary":false,"firstSeenAt":"2026-04-18T21:31:05.716Z","lastSeenAt":"2026-04-25T06:50:26.929Z"},{"listingId":"f3deb0cf-f1bf-4683-a04d-654f5d263086","source":"skills_sh","sourceId":"sickn33/antigravity-awesome-skills/api-documentation-generator","sourceUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/api-documentation-generator","isPrimary":true,"firstSeenAt":"2026-04-18T20:31:16.208Z","lastSeenAt":"2026-04-25T11:40:38.182Z"}],"details":{"listingId":"f3deb0cf-f1bf-4683-a04d-654f5d263086","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"api-documentation-generator","source":"skills_sh","category":"antigravity-awesome-skills","skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/api-documentation-generator"},"updatedAt":"2026-04-25T11:40:38.182Z"}}