Hex.pm Package Scraper
Pricing
from $3.00 / 1,000 results
Hex.pm Package Scraper
Scrape Hex.pm - the package manager for Erlang/Elixir. Search packages or fetch by name. Returns downloads, versions, owners, licenses, and repository links.
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
4 days ago
Last modified
Categories
Share
Scrape package data from Hex.pm — the package manager for the Erlang ecosystem (Elixir, Erlang, Gleam, and more). This actor uses the official public Hex.pm REST API with no authentication required.
What can it do?
- Search packages by keyword with configurable sort order (recent downloads, total downloads, alphabetical, etc.)
- Fetch specific packages by exact name (e.g.
phoenix,ecto,jason) - Returns rich metadata: download statistics, versions, owners, licenses, repository links, and more
Input
| Field | Type | Description |
|---|---|---|
mode | searchPackages | getByName | Operation mode. Default: searchPackages |
searchQuery | string | Free-text search query. Default: phoenix |
packageNames | string[] | Exact package names for getByName mode |
sort | enum | Sort order for search results. Default: recent_downloads |
maxItems | integer (1–500) | Maximum packages to return. Default: 50 |
Sort options
| Value | Title |
|---|---|
recent_downloads | Recent downloads |
total_downloads | Total downloads |
inserted_at | Newest packages |
updated_at | Recently updated |
name | Alphabetical name |
Example input — Search
{"mode": "searchPackages","searchQuery": "phoenix","sort": "recent_downloads","maxItems": 50}
Example input — Fetch by name
{"mode": "getByName","packageNames": ["phoenix", "ecto", "jason"]}
Output
Each record in the dataset represents one Hex.pm package.
| Field | Type | Description |
|---|---|---|
packageName | string | Package name on Hex.pm |
description | string | Package description |
licenses | string[] | List of SPDX license identifiers |
links | object | Links from package metadata (GitHub, Changelog, etc.) |
totalDownloads | integer | All-time download count |
recentDownloads | integer | Downloads in the last 90 days |
weeklyDownloads | integer | Downloads in the last 7 days |
insertedAt | string | ISO timestamp when package was first published |
updatedAt | string | ISO timestamp of latest update |
latestVersion | string | Latest stable version (falls back to latest pre-release) |
owners | string[] | Package owner usernames |
repositoryUrl | string | Source repository URL (GitHub, GitLab, etc.) |
sourceUrl | string | Hex.pm package page URL |
recordType | string | Always "package" |
scrapedAt | string | ISO timestamp when record was scraped |
Example output record
{"packageName": "phoenix","description": "Peace of mind from prototype to production","licenses": ["MIT"],"links": {"GitHub": "https://github.com/phoenixframework/phoenix","Changelog": "https://github.com/phoenixframework/phoenix/blob/master/CHANGELOG.md"},"totalDownloads": 156000000,"recentDownloads": 4200000,"weeklyDownloads": 380000,"insertedAt": "2014-01-30T00:00:00Z","updatedAt": "2025-05-01T12:00:00Z","latestVersion": "1.7.14","owners": ["chrismccord"],"repositoryUrl": "https://github.com/phoenixframework/phoenix","sourceUrl": "https://hex.pm/packages/phoenix","recordType": "package","scrapedAt": "2025-05-30T10:00:00+00:00"}
Frequently Asked Questions
Does this require an API key? No. The Hex.pm API is fully public and does not require authentication.
Can I get all packages on Hex.pm?
Yes — leave searchQuery empty and use sort=recent_downloads with a high maxItems. The API paginates automatically.
What is the difference between recent_downloads and total_downloads?
recent_downloads covers the last 90 days; total_downloads is the all-time count. Both are available in the output.
What ecosystems does Hex.pm cover? Hex.pm hosts packages for Elixir, Erlang, and Gleam — all languages that run on the BEAM virtual machine.
How often is the data updated? Hex.pm data is live — each run fetches real-time data from the official API.
Can I search for multiple queries in one run?
Each run supports one search query. To scrape multiple queries, run the actor multiple times or use getByName mode with a list of package names.