MELPA Scraper
Pricing
from $3.00 / 1,000 results
MELPA Scraper
Scrape MELPA - the Milkypostman's Emacs Lisp Package Archive. Search or browse 6,000+ Emacs packages with descriptions, versions, dependencies, maintainers, source repos, and download counts.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Scrape MELPA — Milkypostman's Emacs Lisp Package Archive, the largest community package repository for GNU Emacs with 6,000+ packages. Search or browse the full catalog, or fetch specific packages by exact name. Get versions, descriptions, dependencies, keywords, maintainers, source-repo links, and cumulative download counts. Pure HTTP against MELPA's public JSON archives — no auth, no proxy, no cookies.
What this actor does
- Two modes:
search(free-text query or full browse) andbyNames(exact package lookup) - Two channels:
melpa(rolling, ~6,270 packages, rebuilt continuously) andmelpa-stable(~3,430 packages, built only from tagged releases, semantic versions) - Filters: minimum downloads, source host (GitHub/GitLab/Codeberg/SourceHut/Git/Mercurial), keyword substring, last-updated date range, reverse-dependency lookup (
dependsOn— find every package that depends on a given library) - Sorting: by download count, name, or most-recently-updated
- Empty fields are omitted — you only ever see fields with real data
Output per package
name— package name (e.g.magit)channel—melpaormelpa-stableversion— MELPA snapshot version (YYYYMMDD.HHMMonmelpa; semantic version like4.7.0onmelpa-stable)descriptionpackageType—tar(multi-file) orsinglekeywords[]authors[],maintainers[],primaryMaintainerdependencies[]—{name, minVersion}pairsfetcher— source host (github,gitlab,codeberg,sourcehut,git,hg)repo—owner/repo(when the host uses that form)branch— the tracked git branch, when the recipe pins oneoldNames[]— previous package name(s), for packages that were renamedrepoUrl— canonical source-code repository URLcommit,revisionDescriptiondownloadCount— cumulative MELPA installslastUpdatedDate— ISO date of the latest build (only onmelpa;melpa-stableversions are tag-derived and don't map to a build date, so this is omitted there)sourceUrl— the package's MELPA pagerecordType: "package",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / byNames |
channel | string | melpa | melpa (rolling) / melpa-stable (tagged releases only) |
searchQuery | string | – | Free-text query against name/description/keywords (mode=search) |
names | array | – | Exact package names (mode=byNames) |
fetcher | string | – | Filter by source host |
minDownloads | int | – | Minimum cumulative downloads |
containsKeyword | string | – | Substring match on name/description/keywords |
dependsOn | string | – | Only packages that declare this exact package name as a dependency (e.g. dash) |
updatedAfter / updatedBefore | string | – | ISO date range on last update (mode=search, melpa channel only) |
sortBy | string | downloads | downloads / name / recentlyUpdated |
maxItems | int | 50 | Hard cap (1–5000) |
Example: popular GitHub-hosted packages tagged "completion"
{"mode": "search","containsKeyword": "completion","fetcher": "github","minDownloads": 10000,"sortBy": "downloads","maxItems": 25}
Example: lookup by exact names
{"mode": "byNames","names": ["magit", "company", "flycheck", "projectile"]}
Example: what depends on dash?
{"mode": "search","dependsOn": "dash","sortBy": "downloads","maxItems": 25}
Example: browse only stable (tagged-release) packages
{"mode": "search","channel": "melpa-stable","searchQuery": "completion","sortBy": "downloads","maxItems": 25}
Use cases
- Track the most-downloaded Emacs packages over time
- Build a dependency graph across the MELPA ecosystem
- Audit which packages are hosted on which forge (GitHub vs GitLab vs self-hosted git)
- Monitor recently-updated packages for a curated Emacs starter-kit
FAQ
Does this require a MELPA account or API key? No — MELPA publishes its full catalog as public JSON with no authentication.
How current is the data? MELPA rebuilds its archive continuously from each package's source repository; this actor reads the live archive.json/recipes.json/download_counts.json on every run.
Can I get every package in one run? Yes — leave searchQuery blank and set maxItems to 5000 (there are currently ~6,270 packages on melpa, ~3,430 on melpa-stable).
What's the difference between melpa and melpa-stable? melpa rebuilds continuously from each package's default branch, so versions are snapshot-dated (YYYYMMDD.HHMM) and can change several times a day. melpa-stable only rebuilds when a maintainer pushes a git tag, so versions look like conventional semantic versions (e.g. 4.7.0) and change far less often — pick this channel if you want fewer, more conservative releases. Not every melpa package has a tagged release, so melpa-stable has fewer packages overall.