[{"data":1,"prerenderedAt":103},["ShallowReactive",2],{"NoscriptNav_XrRK2e2e8meJ0jKVGkb5ULGQDVi3UiFQ9nupAr7Yns":3,"\u002Freports\u002Fpackage-manager-openapi-schemas":8},["Island",4],{"key":5,"result":6},"NoscriptNav_XrRK2e2e8meJ0jKVGkb5ULGQDVi3UiFQ9nupAr7Yns",{"head":7},{},{"id":9,"title":10,"authors":11,"body":13,"canonicalUrl":45,"canonicalWebsiteName":91,"category":92,"date":93,"description":19,"extension":94,"featured":95,"fullWidthLayout":95,"image":96,"imageAlt":96,"location":96,"meta":97,"metaImage":96,"navigation":98,"path":99,"seo":100,"stem":101,"venue":96,"venueUrl":96,"__hash__":102},"reports\u002Freports\u002Fpackage-manager-openapi-schemas.md","Package Manager OpenAPI Schemas",[12],"andrew",{"type":14,"value":15,"toc":86},"minimark",[16,20,31,34,48,53,62,65,68,83],[17,18,19],"p",{},"OpenAPI 3.0 specifications for 25+ package registry APIs including npm, PyPI, Maven, RubyGems, Cargo, Docker, and Terraform.",[17,21,22,23,30],{},"Most schemas are generated using the ",[24,25,29],"a",{"href":26,"rel":27},"https:\u002F\u002Fgithub.com\u002Fecosyste-ms\u002Fpackages",[28],"nofollow","packages.ecosyste.ms"," mapping code. Two registries, crates.io and open-vsx.org, have official OpenAPI specs. Hopefully more registries will publish official specs in the future.",[17,32,33],{},"You can use these specs to generate API clients, create documentation with Swagger UI, or build mock servers for testing.",[35,36,39,40],"div",{"className":37},[38],"page-items","\n    ",[24,41,47],{"className":42,"href":45,"target":46},[43,44],"button","button--arrow","https:\u002F\u002Fgithub.com\u002Fecosyste-ms\u002Fpackage-manager-openapi-schemas","_blank","\n        Go to data\n    ",[49,50,52],"h2",{"id":51},"background","Background",[17,54,55,56,61],{},"This work was originally posted on ",[24,57,60],{"href":58,"rel":59},"https:\u002F\u002Fblog.ecosyste.ms\u002F2025\u002F11\u002F17\u002Fdocumenting-package-manager-data.html",[28],"blog.ecosyste.ms"," on November 17, 2025.",[17,63,64],{},"Package managers are the quiet workhorses of computing. They make installing software on a machine trivial, but they have their differences, and as recent events have shown, those differences can lead to vulnerabilities and provide opportunities for attackers to disrupt public and private services alike.",[17,66,67],{},"ecosyste.ms is in something of a unique position: having aggregated and normalized package data from over 70 sources we know something about how package managers work, and how they differ from one another.",[17,69,70,71,76,77,82],{},"Working alongside the ",[24,72,75],{"href":73,"rel":74},"https:\u002F\u002Fgithub.com\u002Fchaoss\u002Fwg-package-metadata",[28],"CHAOSS Package Metadata Working Group"," and ",[24,78,81],{"href":79,"rel":80},"https:\u002F\u002Falpha-omega.dev",[28],"Alpha-Omega"," we've documented the similarities and differences across package registries and clients, publishing multiple repositories of information about how package managers work, including the data in this post. In doing so we hope to identify common problems and work toward better practices.",[17,84,85],{},"This repository is released under CC0 1.0 Universal and accepts contributions if you have corrections or additions.",{"title":87,"searchDepth":88,"depth":88,"links":89},"",2,[90],{"id":51,"depth":88,"text":52},"GitHub","package-management","2025-11-30","md",false,null,{},true,"\u002Freports\u002Fpackage-manager-openapi-schemas",{"title":10,"description":19},"reports\u002Fpackage-manager-openapi-schemas","WmyBX4rfGP58vgqP8MtgS6Zv3ceH1aeFVWp_ld7uvec",1780596103336]