[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-api-caller":3,"mdc--asuipf-key":48,"related-repo-nvidia-api-caller":995,"related-org-nvidia-api-caller":1059},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":43,"sourceUrl":46,"mdContent":47},"api-caller","execute dynamic REST API calls","Call any REST API dynamically. Make GET, POST, PUT, DELETE requests to any endpoint with custom headers and JSON body.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":17,"slug":18,"type":15},"REST API","rest-api",{"name":20,"slug":21,"type":15},"API Development","api-development",367,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FSkillEvaluator","2026-08-31T09:18:49.771371",null,36,[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"agent-evaluation","agent-security","agent-skills","agentic-ai","benchmark","claude-code","codex","evaluate","evaluation","security-scanner","skill-eval","skill-evals","skill-evaluation","skill-evaluator","skills",{"repoUrl":23,"stars":22,"forks":26,"topics":44,"description":45},[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"Multi-tier framework for evaluating AI agent skills with quality gates, semantic overlap detection, synthetic evaluation dataset generation, and live agent evaluation that measures how skills affect agent behavior.","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FSkillEvaluator\u002Ftree\u002FHEAD\u002Fsrc\u002Fskillevaluator\u002Ftier3\u002Freference_skills\u002Fapi-caller","---\nname: api-caller\ndescription: Call any REST API dynamically. Make GET, POST, PUT, DELETE requests to any endpoint with custom headers and JSON body.\nmetadata:\n  author: SkillEvaluator Maintainers \u003Cmaintainers@example.com>\n---\n\n# API Caller Skill\n\nGeneric skill to call any REST API dynamically. Can work with OpenAPI specs or direct endpoint calls.\n\n## Capabilities\n\n- Call any REST API endpoint (GET, POST, PUT, DELETE)\n- Parse OpenAPI\u002FSwagger specs to discover endpoints\n- Handle common authentication (API keys, Bearer tokens)\n- JSON request\u002Fresponse handling\n\n## Instructions\n\n1. Read this SKILL.md to choose the direct-call or OpenAPI workflow.\n2. Use `scripts\u002Fparse_openapi.py` first when the user gives an OpenAPI or Swagger spec.\n3. Use `scripts\u002Fcall_api.py` for the actual HTTP request.\n4. Return the request result and any recoverable error details to the user.\n\n## Scripts\n\n### scripts\u002Fparse_openapi.py\n\n**Use this first** when given an API spec URL. Parses an OpenAPI\u002FSwagger spec and returns available operations with parameters. Run commands from the skill base directory; script paths are relative to this SKILL.md file.\n\n**Usage:**\n```\npython scripts\u002Fparse_openapi.py \u003Cspec_url> [filter_path]\n```\n\n**Arguments:**\n- `\u003Cspec_url>` - URL to the OpenAPI spec (required)\n- `[filter_path]` - Optional: filter operations by path substring\n\n**Example:**\n```bash\npython scripts\u002Fparse_openapi.py \"https:\u002F\u002Fapi.example.com\u002Fopenapi.json\"\n```\n\nReturns: API name, base URL, and list of operations with their parameters, request body schema, etc.\n\n### scripts\u002Fcall_api.py\n\nCall a REST API endpoint directly or using an OpenAPI spec. Run commands from the skill base directory; script paths are relative to this SKILL.md file.\n\n**Usage:**\n```\npython scripts\u002Fcall_api.py --url \u003Cendpoint_url> [options]\n```\n\n**Arguments:**\n- `--url \u003Cendpoint_url>` - Direct API endpoint URL (required if no --spec)\n- `--method \u003CGET|POST|PUT|DELETE>` - HTTP method (default: GET)\n- `--data \u003Cjson_string>` - Request body as JSON string\n- `--headers \u003Cjson_string>` - Custom headers as JSON string\n- `--spec \u003Copenapi_url>` - OpenAPI spec URL (optional, for discovery)\n- `--operation \u003Coperation_id>` - Operation ID from OpenAPI spec\n- `--params \u003Cjson_string>` - Path\u002Fquery parameters as JSON\n\n## Examples\n\n### Direct API Call (Simple)\n\n```bash\npython scripts\u002Fcall_api.py --url \"https:\u002F\u002Fapi.example.com\u002Fdata\" --method GET\n```\n\n### With Query Parameters\n\n```bash\n# Call API with query parameters appended to URL\npython scripts\u002Fcall_api.py --url \"https:\u002F\u002Fen.wikipedia.org\u002Fw\u002Fapi.php\" --params '{\"action\": \"query\", \"titles\": \"NVIDIA\", \"format\": \"json\"}'\n```\n\n### With Headers (API Key)\n\n```bash\n# Call API with authentication\npython scripts\u002Fcall_api.py --url \"https:\u002F\u002Fapi.example.com\u002Fdata\" --headers '{\"Authorization\": \"Bearer TOKEN\"}'\n```\n\n### POST with JSON Body\n\n```bash\n# Create a resource\npython scripts\u002Fcall_api.py --url \"https:\u002F\u002Fapi.example.com\u002Fitems\" --method POST --data '{\"name\": \"test\", \"value\": 123}'\n```\n\n### Using OpenAPI Spec (Advanced)\n\n```bash\n# Discover and call an endpoint from OpenAPI spec\npython scripts\u002Fcall_api.py --spec \"https:\u002F\u002Fapi.example.com\u002Fopenapi.json\" --operation \"getItems\" --params '{\"param\": \"value\"}'\n```\n\n## Notes\n\n- For APIs requiring authentication, pass API keys via `--headers`\n- The skill automatically parses JSON responses\n- Timeout is 30 seconds by default\n- For complex API workflows, consider using `code-generator` skill instead\n- **Limiting results**: Try common params like `?_limit=N`, `?limit=N`, `?per_page=N`. If unsupported, fetch all and filter with `code-generator`\n\n## Workflow: Using an API Spec\n\nWhen given an OpenAPI spec URL, follow this workflow:\n\n1. **Parse the spec** first with `python scripts\u002Fparse_openapi.py`:\n   ```bash\n   python scripts\u002Fparse_openapi.py \"\u003Cspec_url>\"\n   ```\n\n2. **Review operations** - Look at the returned operations, their paths, methods, and parameters\n\n3. **Call the API** with `python scripts\u002Fcall_api.py` using the discovered endpoint and parameters\n\n## When to Use\n\n- Quick API calls without writing code\n- Exploring new APIs\n- Simple GET requests for data retrieval\n- When you know the exact endpoint URL\n- **When given an API spec to explore**\n\n## When NOT to Use\n\n- Complex multi-step API workflows (use `code-generator`)\n- APIs requiring OAuth flows\n- When you need to process response data extensively\n",{"data":49,"body":52},{"name":4,"description":6,"metadata":50},{"author":51},"SkillEvaluator Maintainers \u003Cmaintainers@example.com>",{"type":53,"children":54},"root",[55,64,70,77,102,108,148,154,160,171,179,191,199,224,232,275,280,285,290,297,306,313,393,399,405,453,459,524,530,590,596,666,672,750,756,831,837,842,921,927,958,964,989],{"type":56,"tag":57,"props":58,"children":60},"element","h1",{"id":59},"api-caller-skill",[61],{"type":62,"value":63},"text","API Caller Skill",{"type":56,"tag":65,"props":66,"children":67},"p",{},[68],{"type":62,"value":69},"Generic skill to call any REST API dynamically. Can work with OpenAPI specs or direct endpoint calls.",{"type":56,"tag":71,"props":72,"children":74},"h2",{"id":73},"capabilities",[75],{"type":62,"value":76},"Capabilities",{"type":56,"tag":78,"props":79,"children":80},"ul",{},[81,87,92,97],{"type":56,"tag":82,"props":83,"children":84},"li",{},[85],{"type":62,"value":86},"Call any REST API endpoint (GET, POST, PUT, DELETE)",{"type":56,"tag":82,"props":88,"children":89},{},[90],{"type":62,"value":91},"Parse OpenAPI\u002FSwagger specs to discover endpoints",{"type":56,"tag":82,"props":93,"children":94},{},[95],{"type":62,"value":96},"Handle common authentication (API keys, Bearer tokens)",{"type":56,"tag":82,"props":98,"children":99},{},[100],{"type":62,"value":101},"JSON request\u002Fresponse handling",{"type":56,"tag":71,"props":103,"children":105},{"id":104},"instructions",[106],{"type":62,"value":107},"Instructions",{"type":56,"tag":109,"props":110,"children":111},"ol",{},[112,117,131,143],{"type":56,"tag":82,"props":113,"children":114},{},[115],{"type":62,"value":116},"Read this SKILL.md to choose the direct-call or OpenAPI workflow.",{"type":56,"tag":82,"props":118,"children":119},{},[120,122,129],{"type":62,"value":121},"Use ",{"type":56,"tag":123,"props":124,"children":126},"code",{"className":125},[],[127],{"type":62,"value":128},"scripts\u002Fparse_openapi.py",{"type":62,"value":130}," first when the user gives an OpenAPI or Swagger spec.",{"type":56,"tag":82,"props":132,"children":133},{},[134,135,141],{"type":62,"value":121},{"type":56,"tag":123,"props":136,"children":138},{"className":137},[],[139],{"type":62,"value":140},"scripts\u002Fcall_api.py",{"type":62,"value":142}," for the actual HTTP request.",{"type":56,"tag":82,"props":144,"children":145},{},[146],{"type":62,"value":147},"Return the request result and any recoverable error details to the user.",{"type":56,"tag":71,"props":149,"children":151},{"id":150},"scripts",[152],{"type":62,"value":153},"Scripts",{"type":56,"tag":155,"props":156,"children":158},"h3",{"id":157},"scriptsparse_openapipy",[159],{"type":62,"value":128},{"type":56,"tag":65,"props":161,"children":162},{},[163,169],{"type":56,"tag":164,"props":165,"children":166},"strong",{},[167],{"type":62,"value":168},"Use this first",{"type":62,"value":170}," when given an API spec URL. Parses an OpenAPI\u002FSwagger spec and returns available operations with parameters. Run commands from the skill base directory; script paths are relative to this SKILL.md file.",{"type":56,"tag":65,"props":172,"children":173},{},[174],{"type":56,"tag":164,"props":175,"children":176},{},[177],{"type":62,"value":178},"Usage:",{"type":56,"tag":180,"props":181,"children":185},"pre",{"className":182,"code":184,"language":62},[183],"language-text","python scripts\u002Fparse_openapi.py \u003Cspec_url> [filter_path]\n",[186],{"type":56,"tag":123,"props":187,"children":189},{"__ignoreMap":188},"",[190],{"type":62,"value":184},{"type":56,"tag":65,"props":192,"children":193},{},[194],{"type":56,"tag":164,"props":195,"children":196},{},[197],{"type":62,"value":198},"Arguments:",{"type":56,"tag":78,"props":200,"children":201},{},[202,213],{"type":56,"tag":82,"props":203,"children":204},{},[205,211],{"type":56,"tag":123,"props":206,"children":208},{"className":207},[],[209],{"type":62,"value":210},"\u003Cspec_url>",{"type":62,"value":212}," - URL to the OpenAPI spec (required)",{"type":56,"tag":82,"props":214,"children":215},{},[216,222],{"type":56,"tag":123,"props":217,"children":219},{"className":218},[],[220],{"type":62,"value":221},"[filter_path]",{"type":62,"value":223}," - Optional: filter operations by path substring",{"type":56,"tag":65,"props":225,"children":226},{},[227],{"type":56,"tag":164,"props":228,"children":229},{},[230],{"type":62,"value":231},"Example:",{"type":56,"tag":180,"props":233,"children":237},{"className":234,"code":235,"language":236,"meta":188,"style":188},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","python scripts\u002Fparse_openapi.py \"https:\u002F\u002Fapi.example.com\u002Fopenapi.json\"\n","bash",[238],{"type":56,"tag":123,"props":239,"children":240},{"__ignoreMap":188},[241],{"type":56,"tag":242,"props":243,"children":246},"span",{"class":244,"line":245},"line",1,[247,253,259,265,270],{"type":56,"tag":242,"props":248,"children":250},{"style":249},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[251],{"type":62,"value":252},"python",{"type":56,"tag":242,"props":254,"children":256},{"style":255},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[257],{"type":62,"value":258}," scripts\u002Fparse_openapi.py",{"type":56,"tag":242,"props":260,"children":262},{"style":261},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[263],{"type":62,"value":264}," \"",{"type":56,"tag":242,"props":266,"children":267},{"style":255},[268],{"type":62,"value":269},"https:\u002F\u002Fapi.example.com\u002Fopenapi.json",{"type":56,"tag":242,"props":271,"children":272},{"style":261},[273],{"type":62,"value":274},"\"\n",{"type":56,"tag":65,"props":276,"children":277},{},[278],{"type":62,"value":279},"Returns: API name, base URL, and list of operations with their parameters, request body schema, etc.",{"type":56,"tag":155,"props":281,"children":283},{"id":282},"scriptscall_apipy",[284],{"type":62,"value":140},{"type":56,"tag":65,"props":286,"children":287},{},[288],{"type":62,"value":289},"Call a REST API endpoint directly or using an OpenAPI spec. Run commands from the skill base directory; script paths are relative to this SKILL.md file.",{"type":56,"tag":65,"props":291,"children":292},{},[293],{"type":56,"tag":164,"props":294,"children":295},{},[296],{"type":62,"value":178},{"type":56,"tag":180,"props":298,"children":301},{"className":299,"code":300,"language":62},[183],"python scripts\u002Fcall_api.py --url \u003Cendpoint_url> [options]\n",[302],{"type":56,"tag":123,"props":303,"children":304},{"__ignoreMap":188},[305],{"type":62,"value":300},{"type":56,"tag":65,"props":307,"children":308},{},[309],{"type":56,"tag":164,"props":310,"children":311},{},[312],{"type":62,"value":198},{"type":56,"tag":78,"props":314,"children":315},{},[316,327,338,349,360,371,382],{"type":56,"tag":82,"props":317,"children":318},{},[319,325],{"type":56,"tag":123,"props":320,"children":322},{"className":321},[],[323],{"type":62,"value":324},"--url \u003Cendpoint_url>",{"type":62,"value":326}," - Direct API endpoint URL (required if no --spec)",{"type":56,"tag":82,"props":328,"children":329},{},[330,336],{"type":56,"tag":123,"props":331,"children":333},{"className":332},[],[334],{"type":62,"value":335},"--method \u003CGET|POST|PUT|DELETE>",{"type":62,"value":337}," - HTTP method (default: GET)",{"type":56,"tag":82,"props":339,"children":340},{},[341,347],{"type":56,"tag":123,"props":342,"children":344},{"className":343},[],[345],{"type":62,"value":346},"--data \u003Cjson_string>",{"type":62,"value":348}," - Request body as JSON string",{"type":56,"tag":82,"props":350,"children":351},{},[352,358],{"type":56,"tag":123,"props":353,"children":355},{"className":354},[],[356],{"type":62,"value":357},"--headers \u003Cjson_string>",{"type":62,"value":359}," - Custom headers as JSON string",{"type":56,"tag":82,"props":361,"children":362},{},[363,369],{"type":56,"tag":123,"props":364,"children":366},{"className":365},[],[367],{"type":62,"value":368},"--spec \u003Copenapi_url>",{"type":62,"value":370}," - OpenAPI spec URL (optional, for discovery)",{"type":56,"tag":82,"props":372,"children":373},{},[374,380],{"type":56,"tag":123,"props":375,"children":377},{"className":376},[],[378],{"type":62,"value":379},"--operation \u003Coperation_id>",{"type":62,"value":381}," - Operation ID from OpenAPI spec",{"type":56,"tag":82,"props":383,"children":384},{},[385,391],{"type":56,"tag":123,"props":386,"children":388},{"className":387},[],[389],{"type":62,"value":390},"--params \u003Cjson_string>",{"type":62,"value":392}," - Path\u002Fquery parameters as JSON",{"type":56,"tag":71,"props":394,"children":396},{"id":395},"examples",[397],{"type":62,"value":398},"Examples",{"type":56,"tag":155,"props":400,"children":402},{"id":401},"direct-api-call-simple",[403],{"type":62,"value":404},"Direct API Call (Simple)",{"type":56,"tag":180,"props":406,"children":408},{"className":234,"code":407,"language":236,"meta":188,"style":188},"python scripts\u002Fcall_api.py --url \"https:\u002F\u002Fapi.example.com\u002Fdata\" --method GET\n",[409],{"type":56,"tag":123,"props":410,"children":411},{"__ignoreMap":188},[412],{"type":56,"tag":242,"props":413,"children":414},{"class":244,"line":245},[415,419,424,429,433,438,443,448],{"type":56,"tag":242,"props":416,"children":417},{"style":249},[418],{"type":62,"value":252},{"type":56,"tag":242,"props":420,"children":421},{"style":255},[422],{"type":62,"value":423}," scripts\u002Fcall_api.py",{"type":56,"tag":242,"props":425,"children":426},{"style":255},[427],{"type":62,"value":428}," --url",{"type":56,"tag":242,"props":430,"children":431},{"style":261},[432],{"type":62,"value":264},{"type":56,"tag":242,"props":434,"children":435},{"style":255},[436],{"type":62,"value":437},"https:\u002F\u002Fapi.example.com\u002Fdata",{"type":56,"tag":242,"props":439,"children":440},{"style":261},[441],{"type":62,"value":442},"\"",{"type":56,"tag":242,"props":444,"children":445},{"style":255},[446],{"type":62,"value":447}," --method",{"type":56,"tag":242,"props":449,"children":450},{"style":255},[451],{"type":62,"value":452}," GET\n",{"type":56,"tag":155,"props":454,"children":456},{"id":455},"with-query-parameters",[457],{"type":62,"value":458},"With Query Parameters",{"type":56,"tag":180,"props":460,"children":462},{"className":234,"code":461,"language":236,"meta":188,"style":188},"# Call API with query parameters appended to URL\npython scripts\u002Fcall_api.py --url \"https:\u002F\u002Fen.wikipedia.org\u002Fw\u002Fapi.php\" --params '{\"action\": \"query\", \"titles\": \"NVIDIA\", \"format\": \"json\"}'\n",[463],{"type":56,"tag":123,"props":464,"children":465},{"__ignoreMap":188},[466,475],{"type":56,"tag":242,"props":467,"children":468},{"class":244,"line":245},[469],{"type":56,"tag":242,"props":470,"children":472},{"style":471},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[473],{"type":62,"value":474},"# Call API with query parameters appended to URL\n",{"type":56,"tag":242,"props":476,"children":478},{"class":244,"line":477},2,[479,483,487,491,495,500,504,509,514,519],{"type":56,"tag":242,"props":480,"children":481},{"style":249},[482],{"type":62,"value":252},{"type":56,"tag":242,"props":484,"children":485},{"style":255},[486],{"type":62,"value":423},{"type":56,"tag":242,"props":488,"children":489},{"style":255},[490],{"type":62,"value":428},{"type":56,"tag":242,"props":492,"children":493},{"style":261},[494],{"type":62,"value":264},{"type":56,"tag":242,"props":496,"children":497},{"style":255},[498],{"type":62,"value":499},"https:\u002F\u002Fen.wikipedia.org\u002Fw\u002Fapi.php",{"type":56,"tag":242,"props":501,"children":502},{"style":261},[503],{"type":62,"value":442},{"type":56,"tag":242,"props":505,"children":506},{"style":255},[507],{"type":62,"value":508}," --params",{"type":56,"tag":242,"props":510,"children":511},{"style":261},[512],{"type":62,"value":513}," '",{"type":56,"tag":242,"props":515,"children":516},{"style":255},[517],{"type":62,"value":518},"{\"action\": \"query\", \"titles\": \"NVIDIA\", \"format\": \"json\"}",{"type":56,"tag":242,"props":520,"children":521},{"style":261},[522],{"type":62,"value":523},"'\n",{"type":56,"tag":155,"props":525,"children":527},{"id":526},"with-headers-api-key",[528],{"type":62,"value":529},"With Headers (API Key)",{"type":56,"tag":180,"props":531,"children":533},{"className":234,"code":532,"language":236,"meta":188,"style":188},"# Call API with authentication\npython scripts\u002Fcall_api.py --url \"https:\u002F\u002Fapi.example.com\u002Fdata\" --headers '{\"Authorization\": \"Bearer TOKEN\"}'\n",[534],{"type":56,"tag":123,"props":535,"children":536},{"__ignoreMap":188},[537,545],{"type":56,"tag":242,"props":538,"children":539},{"class":244,"line":245},[540],{"type":56,"tag":242,"props":541,"children":542},{"style":471},[543],{"type":62,"value":544},"# Call API with authentication\n",{"type":56,"tag":242,"props":546,"children":547},{"class":244,"line":477},[548,552,556,560,564,568,572,577,581,586],{"type":56,"tag":242,"props":549,"children":550},{"style":249},[551],{"type":62,"value":252},{"type":56,"tag":242,"props":553,"children":554},{"style":255},[555],{"type":62,"value":423},{"type":56,"tag":242,"props":557,"children":558},{"style":255},[559],{"type":62,"value":428},{"type":56,"tag":242,"props":561,"children":562},{"style":261},[563],{"type":62,"value":264},{"type":56,"tag":242,"props":565,"children":566},{"style":255},[567],{"type":62,"value":437},{"type":56,"tag":242,"props":569,"children":570},{"style":261},[571],{"type":62,"value":442},{"type":56,"tag":242,"props":573,"children":574},{"style":255},[575],{"type":62,"value":576}," --headers",{"type":56,"tag":242,"props":578,"children":579},{"style":261},[580],{"type":62,"value":513},{"type":56,"tag":242,"props":582,"children":583},{"style":255},[584],{"type":62,"value":585},"{\"Authorization\": \"Bearer TOKEN\"}",{"type":56,"tag":242,"props":587,"children":588},{"style":261},[589],{"type":62,"value":523},{"type":56,"tag":155,"props":591,"children":593},{"id":592},"post-with-json-body",[594],{"type":62,"value":595},"POST with JSON Body",{"type":56,"tag":180,"props":597,"children":599},{"className":234,"code":598,"language":236,"meta":188,"style":188},"# Create a resource\npython scripts\u002Fcall_api.py --url \"https:\u002F\u002Fapi.example.com\u002Fitems\" --method POST --data '{\"name\": \"test\", \"value\": 123}'\n",[600],{"type":56,"tag":123,"props":601,"children":602},{"__ignoreMap":188},[603,611],{"type":56,"tag":242,"props":604,"children":605},{"class":244,"line":245},[606],{"type":56,"tag":242,"props":607,"children":608},{"style":471},[609],{"type":62,"value":610},"# Create a resource\n",{"type":56,"tag":242,"props":612,"children":613},{"class":244,"line":477},[614,618,622,626,630,635,639,643,648,653,657,662],{"type":56,"tag":242,"props":615,"children":616},{"style":249},[617],{"type":62,"value":252},{"type":56,"tag":242,"props":619,"children":620},{"style":255},[621],{"type":62,"value":423},{"type":56,"tag":242,"props":623,"children":624},{"style":255},[625],{"type":62,"value":428},{"type":56,"tag":242,"props":627,"children":628},{"style":261},[629],{"type":62,"value":264},{"type":56,"tag":242,"props":631,"children":632},{"style":255},[633],{"type":62,"value":634},"https:\u002F\u002Fapi.example.com\u002Fitems",{"type":56,"tag":242,"props":636,"children":637},{"style":261},[638],{"type":62,"value":442},{"type":56,"tag":242,"props":640,"children":641},{"style":255},[642],{"type":62,"value":447},{"type":56,"tag":242,"props":644,"children":645},{"style":255},[646],{"type":62,"value":647}," POST",{"type":56,"tag":242,"props":649,"children":650},{"style":255},[651],{"type":62,"value":652}," --data",{"type":56,"tag":242,"props":654,"children":655},{"style":261},[656],{"type":62,"value":513},{"type":56,"tag":242,"props":658,"children":659},{"style":255},[660],{"type":62,"value":661},"{\"name\": \"test\", \"value\": 123}",{"type":56,"tag":242,"props":663,"children":664},{"style":261},[665],{"type":62,"value":523},{"type":56,"tag":155,"props":667,"children":669},{"id":668},"using-openapi-spec-advanced",[670],{"type":62,"value":671},"Using OpenAPI Spec (Advanced)",{"type":56,"tag":180,"props":673,"children":675},{"className":234,"code":674,"language":236,"meta":188,"style":188},"# Discover and call an endpoint from OpenAPI spec\npython scripts\u002Fcall_api.py --spec \"https:\u002F\u002Fapi.example.com\u002Fopenapi.json\" --operation \"getItems\" --params '{\"param\": \"value\"}'\n",[676],{"type":56,"tag":123,"props":677,"children":678},{"__ignoreMap":188},[679,687],{"type":56,"tag":242,"props":680,"children":681},{"class":244,"line":245},[682],{"type":56,"tag":242,"props":683,"children":684},{"style":471},[685],{"type":62,"value":686},"# Discover and call an endpoint from OpenAPI spec\n",{"type":56,"tag":242,"props":688,"children":689},{"class":244,"line":477},[690,694,698,703,707,711,715,720,724,729,733,737,741,746],{"type":56,"tag":242,"props":691,"children":692},{"style":249},[693],{"type":62,"value":252},{"type":56,"tag":242,"props":695,"children":696},{"style":255},[697],{"type":62,"value":423},{"type":56,"tag":242,"props":699,"children":700},{"style":255},[701],{"type":62,"value":702}," --spec",{"type":56,"tag":242,"props":704,"children":705},{"style":261},[706],{"type":62,"value":264},{"type":56,"tag":242,"props":708,"children":709},{"style":255},[710],{"type":62,"value":269},{"type":56,"tag":242,"props":712,"children":713},{"style":261},[714],{"type":62,"value":442},{"type":56,"tag":242,"props":716,"children":717},{"style":255},[718],{"type":62,"value":719}," --operation",{"type":56,"tag":242,"props":721,"children":722},{"style":261},[723],{"type":62,"value":264},{"type":56,"tag":242,"props":725,"children":726},{"style":255},[727],{"type":62,"value":728},"getItems",{"type":56,"tag":242,"props":730,"children":731},{"style":261},[732],{"type":62,"value":442},{"type":56,"tag":242,"props":734,"children":735},{"style":255},[736],{"type":62,"value":508},{"type":56,"tag":242,"props":738,"children":739},{"style":261},[740],{"type":62,"value":513},{"type":56,"tag":242,"props":742,"children":743},{"style":255},[744],{"type":62,"value":745},"{\"param\": \"value\"}",{"type":56,"tag":242,"props":747,"children":748},{"style":261},[749],{"type":62,"value":523},{"type":56,"tag":71,"props":751,"children":753},{"id":752},"notes",[754],{"type":62,"value":755},"Notes",{"type":56,"tag":78,"props":757,"children":758},{},[759,770,775,780,793],{"type":56,"tag":82,"props":760,"children":761},{},[762,764],{"type":62,"value":763},"For APIs requiring authentication, pass API keys via ",{"type":56,"tag":123,"props":765,"children":767},{"className":766},[],[768],{"type":62,"value":769},"--headers",{"type":56,"tag":82,"props":771,"children":772},{},[773],{"type":62,"value":774},"The skill automatically parses JSON responses",{"type":56,"tag":82,"props":776,"children":777},{},[778],{"type":62,"value":779},"Timeout is 30 seconds by default",{"type":56,"tag":82,"props":781,"children":782},{},[783,785,791],{"type":62,"value":784},"For complex API workflows, consider using ",{"type":56,"tag":123,"props":786,"children":788},{"className":787},[],[789],{"type":62,"value":790},"code-generator",{"type":62,"value":792}," skill instead",{"type":56,"tag":82,"props":794,"children":795},{},[796,801,803,809,811,817,818,824,826],{"type":56,"tag":164,"props":797,"children":798},{},[799],{"type":62,"value":800},"Limiting results",{"type":62,"value":802},": Try common params like ",{"type":56,"tag":123,"props":804,"children":806},{"className":805},[],[807],{"type":62,"value":808},"?_limit=N",{"type":62,"value":810},", ",{"type":56,"tag":123,"props":812,"children":814},{"className":813},[],[815],{"type":62,"value":816},"?limit=N",{"type":62,"value":810},{"type":56,"tag":123,"props":819,"children":821},{"className":820},[],[822],{"type":62,"value":823},"?per_page=N",{"type":62,"value":825},". If unsupported, fetch all and filter with ",{"type":56,"tag":123,"props":827,"children":829},{"className":828},[],[830],{"type":62,"value":790},{"type":56,"tag":71,"props":832,"children":834},{"id":833},"workflow-using-an-api-spec",[835],{"type":62,"value":836},"Workflow: Using an API Spec",{"type":56,"tag":65,"props":838,"children":839},{},[840],{"type":62,"value":841},"When given an OpenAPI spec URL, follow this workflow:",{"type":56,"tag":109,"props":843,"children":844},{},[845,893,903],{"type":56,"tag":82,"props":846,"children":847},{},[848,853,855,861,863],{"type":56,"tag":164,"props":849,"children":850},{},[851],{"type":62,"value":852},"Parse the spec",{"type":62,"value":854}," first with ",{"type":56,"tag":123,"props":856,"children":858},{"className":857},[],[859],{"type":62,"value":860},"python scripts\u002Fparse_openapi.py",{"type":62,"value":862},":",{"type":56,"tag":180,"props":864,"children":866},{"className":234,"code":865,"language":236,"meta":188,"style":188},"python scripts\u002Fparse_openapi.py \"\u003Cspec_url>\"\n",[867],{"type":56,"tag":123,"props":868,"children":869},{"__ignoreMap":188},[870],{"type":56,"tag":242,"props":871,"children":872},{"class":244,"line":245},[873,877,881,885,889],{"type":56,"tag":242,"props":874,"children":875},{"style":249},[876],{"type":62,"value":252},{"type":56,"tag":242,"props":878,"children":879},{"style":255},[880],{"type":62,"value":258},{"type":56,"tag":242,"props":882,"children":883},{"style":261},[884],{"type":62,"value":264},{"type":56,"tag":242,"props":886,"children":887},{"style":255},[888],{"type":62,"value":210},{"type":56,"tag":242,"props":890,"children":891},{"style":261},[892],{"type":62,"value":274},{"type":56,"tag":82,"props":894,"children":895},{},[896,901],{"type":56,"tag":164,"props":897,"children":898},{},[899],{"type":62,"value":900},"Review operations",{"type":62,"value":902}," - Look at the returned operations, their paths, methods, and parameters",{"type":56,"tag":82,"props":904,"children":905},{},[906,911,913,919],{"type":56,"tag":164,"props":907,"children":908},{},[909],{"type":62,"value":910},"Call the API",{"type":62,"value":912}," with ",{"type":56,"tag":123,"props":914,"children":916},{"className":915},[],[917],{"type":62,"value":918},"python scripts\u002Fcall_api.py",{"type":62,"value":920}," using the discovered endpoint and parameters",{"type":56,"tag":71,"props":922,"children":924},{"id":923},"when-to-use",[925],{"type":62,"value":926},"When to Use",{"type":56,"tag":78,"props":928,"children":929},{},[930,935,940,945,950],{"type":56,"tag":82,"props":931,"children":932},{},[933],{"type":62,"value":934},"Quick API calls without writing code",{"type":56,"tag":82,"props":936,"children":937},{},[938],{"type":62,"value":939},"Exploring new APIs",{"type":56,"tag":82,"props":941,"children":942},{},[943],{"type":62,"value":944},"Simple GET requests for data retrieval",{"type":56,"tag":82,"props":946,"children":947},{},[948],{"type":62,"value":949},"When you know the exact endpoint URL",{"type":56,"tag":82,"props":951,"children":952},{},[953],{"type":56,"tag":164,"props":954,"children":955},{},[956],{"type":62,"value":957},"When given an API spec to explore",{"type":56,"tag":71,"props":959,"children":961},{"id":960},"when-not-to-use",[962],{"type":62,"value":963},"When NOT to Use",{"type":56,"tag":78,"props":965,"children":966},{},[967,979,984],{"type":56,"tag":82,"props":968,"children":969},{},[970,972,977],{"type":62,"value":971},"Complex multi-step API workflows (use ",{"type":56,"tag":123,"props":973,"children":975},{"className":974},[],[976],{"type":62,"value":790},{"type":62,"value":978},")",{"type":56,"tag":82,"props":980,"children":981},{},[982],{"type":62,"value":983},"APIs requiring OAuth flows",{"type":56,"tag":82,"props":985,"children":986},{},[987],{"type":62,"value":988},"When you need to process response data extensively",{"type":56,"tag":990,"props":991,"children":992},"style",{},[993],{"type":62,"value":994},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":996,"total":1058},[997,1003,1016,1030,1044],{"slug":4,"name":4,"fn":5,"description":6,"org":998,"tags":999,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1000,1001,1002],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"slug":1004,"name":1004,"fn":1005,"description":1006,"org":1007,"tags":1008,"stars":22,"repoUrl":23,"updatedAt":1015},"calculator","evaluate mathematical expressions and unit conversions","Evaluate mathematical expressions and unit conversions. Handles arithmetic, percentages, exponents, and common unit conversions (temperature, distance, weight). No external dependencies.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1009,1012],{"name":1010,"slug":1011,"type":15},"Analysis","analysis",{"name":1013,"slug":1014,"type":15},"Mathematics","mathematics","2026-08-31T09:19:10.508338",{"slug":1017,"name":1017,"fn":1018,"description":1019,"org":1020,"tags":1021,"stars":22,"repoUrl":23,"updatedAt":1029},"create-custom-grader","create custom SkillEvaluator graders","Use when converting an existing benchmark, rubric, verifier, task YAML\u002FJSON, or domain check into SkillEvaluator BYOG\u002FBYOT custom evaluation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1022,1025,1026],{"name":1023,"slug":1024,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":1027,"slug":1028,"type":15},"Testing","testing","2026-08-31T09:19:06.795331",{"slug":1031,"name":1031,"fn":1032,"description":1033,"org":1034,"tags":1035,"stars":22,"repoUrl":23,"updatedAt":1043},"task-list","manage multi-step task lists","Required for 4+ step requests; add tasks at start and update status after each step.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1036,1037,1040],{"name":9,"slug":8,"type":15},{"name":1038,"slug":1039,"type":15},"Productivity","productivity",{"name":1041,"slug":1042,"type":15},"Task Management","task-management","2026-08-31T09:18:45.27459",{"slug":1045,"name":1045,"fn":1046,"description":1047,"org":1048,"tags":1049,"stars":22,"repoUrl":23,"updatedAt":1057},"text-analyzer","analyze text content and statistics","Analyze text content and produce statistics including word count, line count, character count, most frequent words, and readability metrics. Works on any plain text input provided inline or from a file path.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1050,1053,1054],{"name":1051,"slug":1052,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},{"name":1055,"slug":1056,"type":15},"Statistics","statistics","2026-08-31T09:18:44.240822",5,{"items":1060,"total":1214},[1061,1079,1096,1107,1119,1133,1146,1160,1171,1182,1196,1205],{"slug":1062,"name":1062,"fn":1063,"description":1064,"org":1065,"tags":1066,"stars":1076,"repoUrl":1077,"updatedAt":1078},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1067,1070,1073],{"name":1068,"slug":1069,"type":15},"Documentation","documentation",{"name":1071,"slug":1072,"type":15},"MCP","mcp",{"name":1074,"slug":1075,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-08-25T03:29:57.273192",{"slug":1080,"name":1080,"fn":1081,"description":1082,"org":1083,"tags":1084,"stars":1093,"repoUrl":1094,"updatedAt":1095},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1085,1088,1091],{"name":1086,"slug":1087,"type":15},"Containers","containers",{"name":1089,"slug":1090,"type":15},"Deployment","deployment",{"name":1092,"slug":252,"type":15},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1097,"name":1097,"fn":1098,"description":1099,"org":1100,"tags":1101,"stars":1093,"repoUrl":1094,"updatedAt":1106},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1102,1105],{"name":1103,"slug":1104,"type":15},"CI\u002FCD","ci-cd",{"name":1089,"slug":1090,"type":15},"2026-07-14T05:25:59.97109",{"slug":1108,"name":1108,"fn":1109,"description":1110,"org":1111,"tags":1112,"stars":1093,"repoUrl":1094,"updatedAt":1118},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1113,1114,1115],{"name":1103,"slug":1104,"type":15},{"name":1089,"slug":1090,"type":15},{"name":1116,"slug":1117,"type":15},"GitHub","github","2026-08-28T14:38:16.959248",{"slug":1120,"name":1120,"fn":1121,"description":1122,"org":1123,"tags":1124,"stars":1093,"repoUrl":1094,"updatedAt":1132},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1125,1128,1129],{"name":1126,"slug":1127,"type":15},"Debugging","debugging",{"name":1116,"slug":1117,"type":15},{"name":1130,"slug":1131,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1134,"name":1134,"fn":1135,"description":1136,"org":1137,"tags":1138,"stars":1093,"repoUrl":1094,"updatedAt":1145},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1139,1142],{"name":1140,"slug":1141,"type":15},"Best Practices","best-practices",{"name":1143,"slug":1144,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1147,"name":1147,"fn":1148,"description":1149,"org":1150,"tags":1151,"stars":1093,"repoUrl":1094,"updatedAt":1159},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel, including the mechanical steps for transferring an existing pretrain_gpt.py launch script.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1152,1155,1158],{"name":1153,"slug":1154,"type":15},"Machine Learning","machine-learning",{"name":1156,"slug":1157,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-08-21T03:36:57.470256",{"slug":1161,"name":1161,"fn":1162,"description":1163,"org":1164,"tags":1165,"stars":1093,"repoUrl":1094,"updatedAt":1170},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1166,1169],{"name":1167,"slug":1168,"type":15},"QA","qa",{"name":1027,"slug":1028,"type":15},"2026-07-14T05:25:53.673039",{"slug":1172,"name":1172,"fn":1173,"description":1174,"org":1175,"tags":1176,"stars":1093,"repoUrl":1094,"updatedAt":1181},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1177,1178],{"name":1089,"slug":1090,"type":15},{"name":1179,"slug":1180,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1183,"name":1183,"fn":1184,"description":1185,"org":1186,"tags":1187,"stars":1093,"repoUrl":1094,"updatedAt":1195},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1188,1191,1192],{"name":1189,"slug":1190,"type":15},"Code Review","code-review",{"name":1116,"slug":1117,"type":15},{"name":1193,"slug":1194,"type":15},"Pull Requests","pull-requests","2026-08-25T03:29:16.211287",{"slug":1197,"name":1197,"fn":1198,"description":1199,"org":1200,"tags":1201,"stars":1093,"repoUrl":1094,"updatedAt":1204},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1202,1203],{"name":1167,"slug":1168,"type":15},{"name":1027,"slug":1028,"type":15},"2026-07-14T05:25:54.928983",{"slug":1206,"name":1206,"fn":1207,"description":1208,"org":1209,"tags":1210,"stars":1093,"repoUrl":1094,"updatedAt":1213},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1211,1212],{"name":13,"slug":14,"type":15},{"name":1103,"slug":1104,"type":15},"2026-07-30T05:29:03.275638",563]