MELPA Packages Scraper — Emacs Dataset
Pricing
Pay per event
MELPA Packages Scraper — Emacs Dataset
MELPA packages dataset: export the full MELPA Emacs archive (~6,300 packages) with download counts, versions, keywords, dependencies and source repos. Fast JSON.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Kaleb Holley
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
MELPA Emacs Packages Scraper
Export the entire MELPA Emacs package archive (about 6,300 packages) as clean, structured data: package name, version, description, download counts, keywords, dependencies, source repository, commit and last-build date.
There is no other MELPA scraper on Apify Store. If you build Emacs packages, research the Emacs ecosystem, or want to know which packages are most popular, this Actor gives you the whole archive in about 2 seconds.
What can it do?
- Full archive export. It merges MELPA's official
archive.jsonwith its officialdownload_counts.json, so every package comes with its real download count. - Keyword search. Filter by name, description or MELPA keyword (for example
lsp,org,theme,git). - Download threshold. Keep only packages above a minimum download count.
- Type filter. Single-file packages or multi-file (
tar) packages. - Sort. Most downloaded, name A-Z, or recently updated.
- Fast and cheap. Two JSON requests. No browser, no proxy, no login. Runs in seconds on 256 MB.
Use cases
- Package authors benchmarking downloads against alternatives
- Emacs ecosystem research (which modes, themes and tools dominate)
- Dependency analysis (which libraries everything depends on)
- Lead lists of open-source maintainers and their repositories
- Scheduled snapshots to chart download growth over time
Input
| Field | Type | Description |
|---|---|---|
searchQuery | string | Optional keyword. Empty = whole archive. |
packageType | "" / single / tar | Optional MELPA package type filter. |
minDownloads | integer | Skip packages below this download count. |
sortBy | downloads / name / updated | Result order. |
maxItems | integer | Max results (default 100; set 10000 for the full archive). |
Example: LSP-related packages with at least 1,000 downloads:
{ "searchQuery": "lsp", "minDownloads": 1000, "sortBy": "downloads", "maxItems": 100 }
Output
{"name": "lsp-mode","version": "20261009.1332","description": "LSP mode","downloads": 2597387,"type": "tar","keywords": ["languages"],"dependencies": ["dash", "eldoc", "emacs", "f", "ht", "lv", "markdown-mode", "spinner"],"repositoryUrl": "https://github.com/emacs-lsp/lsp-mode","commit": "a6c47c7867955fea450f833ba4f38b93411d7ea5","updatedAt": "2026-10-09T13:32:00+00:00","melpaUrl": "https://melpa.org/#/lsp-mode","scrapedAt": "2026-10-14T07:29:28+00:00"}
Export to JSON, CSV, Excel, XML or HTML, or pull results through the Apify API, webhooks, Make, Zapier or n8n.
Pricing
Free to use right now: you pay only the tiny Apify platform usage of your own run (a full-archive run uses well under $0.01). Pay-per-result pricing may be added later, with advance notice as Apify requires.
FAQ
Is it legal? The Actor reads only the public, unauthenticated JSON files that the MELPA website itself loads (archive.json and download_counts.json). It collects no personal data.
How fresh is the data? Fetched live on every run. MELPA rebuilds packages continuously from their upstream repositories; updatedAt is derived from MELPA's YYYYMMDD.HHMM snapshot version.
Something broken or a field missing? Open an issue on the Actor's Issues tab.