A fast, reliable REST API for searching Windows Package Manager (winget) packages. Built with Go, secured with API keys, and optimized for performance.
This is a free project, built for the tech side project community!
⚠️ WARNING:
- This API is hosted on a free server (Render.com) and may be slow or rate limited under high load.
- Please do not overuse the API, do not scrape large amounts of data, and be respectful of the service and other users.
- Abuse may result in your API key being revoked.
- This project is intended for learning, prototyping, and side projects—not for production scraping or heavy automation.
The mongodb database is our own proprietary database. It contain all the packages from https://github.com/microsoft/winget-pkgs repo, and we update it frequently. If you want to use the api then request for an api key via mail or other social media platform like X, LinkedIn.
- Powerful Search: Search across package names, publishers, descriptions, and authors
- High Performance: Rate limited to 20 requests/second with MongoDB optimization
- Secure Access: API key authentication with comprehensive middleware protection
- RESTful Design: Clean, intuitive REST API endpoints following best practices
- Cross-Platform: Built with Go for excellent cross-platform compatibility
- Modern Web Interface: Beautiful Next.js website with documentation and API key management
winget-pkg-api/
├── api/ # Go API server
├── cli/ # CLI tool for user management
├── cron/ # Cron job for API monitoring
└── website/ # Next.js web interface & docs
- Language: Go
- Framework: Gin
- Database: MongoDB
- Features:
- RESTful API endpoints
- API key authentication
- Rate limiting (20 req/sec)
- Package search functionality
- Language: Go
- Purpose: User management and API key generation
- Features:
- User registration with email
- Secure API key generation
- MongoDB integration
- Language: Node.js
- Purpose: API health monitoring
- Features:
- Periodic API health checks
- Response time monitoring
- Error reporting
- Framework: Next.js 15
- UI: Tailwind CSS + ShadCN
- Features:
- Modern, responsive design
- API documentation
- API key request form
- Real-time API status checking
- Dark/light theme support
https://winget-pkg-api.onrender.com/api/v1
All requests require an API key in the X-API-Key
header:
X-API-Key: your-api-key-here
GET /ping
GET /search?q=query
Searches across package names, publishers, descriptions, and authors.
GET /packagename?name=package-name
GET /packageidentifier?identifier=package-identifier
- Limit: 20 requests per second
- Header:
X-RateLimit-Remaining
shows remaining requests
- This API is free for the tech side project community.
- Please do not abuse the service. Heavy scraping, automation, or abuse may result in your API key being revoked.
- If you need higher limits or have a special use case, please contact the maintainer.
- Be respectful to other users and the community spirit of this project!
The API is deployed on Render.com with automatic deployments from the main branch. (Free server)
The website is built and deployed using Vercel with automatic deployments. (Free server)
The cron job runs on a schedule to monitor API health and performance and to prevent cold start.
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue on GitHub or contact the maintainers.
This API and website are provided completely free for the tech side project community, and are currently hosted on free-tier servers (Render.com for the API, Vercel for the website). As a result, you may experience slower performance or rate limiting during periods of high load.
Future plans:
- If I secure a job or receive enough donations to cover server costs, I will consider moving the API to a paid server for improved performance and reliability—especially if more users begin to rely on the service.
- Your support and understanding are appreciated! If you find this project valuable and want to help boost its performance, consider contributing or donating to help cover server expenses.
Built with ❤️ for the Windows Package Manager community by Bijoy Kar