ParseForge Scrapers

Hex.pm Elixir & Erlang Package Scraper

parseforge/hex-elixir-packages-scraper

Developer toolsBusinessAutomation

Scrapes Hex.pm package listings by search query or full registry browse. Returns each package as a flat row with downloads, version, license, and optional owners and latest release details.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
113
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

Hex.pm Elixir & Erlang Package Scraper

Scrape Hex.pm package data for any Elixir or Erlang library, up to a million per run. Every package comes with downloads, version, license, and metadata. No login or API key. Export to CSV, JSON, Excel, or XML.

Hex.pm is the official package registry for Elixir and Erlang, but browsing it manually is slow and the API has rate limits. This Actor reads the public package listing directly, filtered by search query, license, and sort order, and returns each match in one fixed schema.

Who uses it What they scrape Hex.pm for
Elixir developers Find the most downloaded libraries for a task before adding a dependency
Erlang developers Audit which packages are actively maintained and recently updated
Open-source researchers Track adoption trends and license distribution across the ecosystem
Security engineers Check package ownership and latest release checksums for supply chain review

What it does

This Actor collects Hex.pm packages by search query or full registry browse, and returns each one as a flat row with downloads, version, license, and optional owners and latest release details.

  • ๐Ÿ” Search by name or keyword: free-text search with Hex query syntax like 'depends:phoenix' or 'name:ecto'.
  • ๐Ÿ“Š Download statistics: recent daily downloads and all-time total downloads for every package.
  • ๐Ÿ“„ License filter: restrict results to a specific SPDX license such as MIT, Apache-2.0, or GPL-3.0.
  • ๐Ÿ‘ฅ Package owners: optional extra lookup to include maintainer usernames and emails.
  • ๐Ÿ“ฆ Latest release detail: optional extra lookup to include dependency tree, requirements, and checksum.
  • ๐Ÿ”ข Flexible sorting: order by recent downloads, total downloads, recently added, recently updated, or name.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Hex.pm data

๐Ÿ“ˆ Track package popularity.

A developer sorts by recent downloads to see which libraries are gaining traction this week before choosing a dependency.

๐Ÿ”’ Audit licenses for compliance.

A legal team filters by SPDX license to list every MIT package in the registry for an open-source policy review.

๐Ÿ‘ฅ Review maintainers.

A security engineer fetches owners for a set of packages to check who has publish rights before trusting a release.

๐Ÿ“ฆ Inspect latest releases.

An Erlang developer pulls the latest release dependency tree and checksum to verify a package's build requirements.

Why choose this scraper

What you get
No API key Reads the public Hex.pm listing directly, no registration or rate limits
One flat row per package Downloads, version, license, and metadata in a fixed schema for easy analysis
Optional deep detail Fetch owners and latest release dependency tree with a single toggle
Export anywhere CSV, JSON, Excel, or XML, ready for your pipeline or spreadsheet

How it compares

This Actor offers more filtering and detail options than the other Hex.pm scrapers, including license filter, owner fetching, and latest release dependency tree.

Feature ParseForge Hexpm Scraper Hex.pm Scraper - Elixir & Erlang Packages
License filter (SPDX) Yes Not listed Not listed
Fetch package owners Yes Not listed Not listed
Fetch latest release dependency tree Yes Not listed Not listed
Sort by recent downloads Yes Not listed Not listed
Advanced search syntax (depends:, name:) Yes Not listed Not listed
Export to CSV, JSON, Excel, XML Yes Not listed Yes

Configure the run

Drive the Actor from a search query or leave it empty to browse the full registry, and filters run as each package is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10
}

A larger pull:

{
 "maxItems": 200
}

Pricing

Pay-per-result: $0.034 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $3.40
1,000 results $34.00
10,000 results $340.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Hex.pm Elixir & Erlang Package Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Hex.pm through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/hex-elixir-packages-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your search query and license filter. If you used advanced syntax like 'depends:phoenix', make sure it is spelled correctly. Try clearing the search field to browse the full registry.

Why is the run slow?

Enabling 'Fetch Package Owners' or 'Fetch Latest Release Detail' makes an extra request per package, which slows the run. Disable them if you only need basic metadata.

Why are some fields empty?

Not every package has a license or owner listed on Hex.pm. Empty fields mean the data is not available on the source page, not that the Actor failed.

Can I scrape a specific package by name?

Yes, use the search field with 'name:packagename' to restrict results to that exact package name, or type the name as a keyword.

FAQ

Question Answer
Do I need a Hex.pm API key? No. This Actor reads the public package listing directly, so there is no registration, authentication, or rate limit to manage.
Can I scrape the entire Hex.pm registry? Yes. Leave the search field empty and set a high maximum packages value to browse the full registry, up to one million per run.
What does the search field accept? It accepts free-text package names or keywords, and also Hex's advanced query syntax such as 'depends:phoenix' to find packages that depend on Phoenix, or 'name:ecto' to restrict to package names.
How do I filter by license? Enter an SPDX license identifier like 'MIT', 'Apache-2.0', or 'GPL-3.0' in the license filter. It matches case-insensitively against the package's license field.
What is the difference between recent and total downloads? Recent downloads are the count for the last day, while total downloads are all-time. You can sort by either to see current trends or long-term popularity.
Can I get the list of package owners? Yes, enable the 'Fetch Package Owners' option. It makes an extra lookup per package to include maintainer usernames and emails.
What does 'Fetch Latest Release Detail' include? It adds the latest release's dependency tree, version requirements, and checksum to each package row. This requires an extra lookup per package.
How many packages can I collect in one run? You can set the maximum packages from 1 to 1,000,000. The default is 10 for a quick test.
What output formats are supported? The Actor exports to CSV, JSON, Excel, and XML, so you can use the data in spreadsheets, databases, or downstream APIs.
Is this Actor free to use? The Actor itself is free to run on the Apify platform, but you may incur platform usage costs depending on your plan and the number of packages scraped.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Hex.pm. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
search string Free-text package search (e.g. 'phoenix', 'ecto', 'oban'). Hex also supports advanced query syntax: 'depends:phoenix' returns packages depending on phoenix; 'name:ecto' restricts to package name. Leave empty to browse the full registry. not set
license string Optional SPDX license identifier to filter by (case-insensitive substring against package licenses, e.g. 'MIT', 'Apache-2.0', 'GPL-3.0'). not set
sort string (5 options) Sort packages by recent updates, total downloads, recent downloads, or name. recent_downloads
fetchOwners boolean Make an extra lookup per package to include the list of maintainer usernames and emails. false
fetchLatestRelease boolean Make an extra lookup per package to include the latest release dependency tree, requirements, and checksum. true
maxItems integer How many packages to collect per run. 10

Pricing

from $25.50 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.0255 to $0.034

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~hex-elixir-packages-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Hex.pm Elixir & Erlang Package Scraper on Apify All scrapers