Hex Pm Elixir Packages Scraper
Pricing
Pay per usage
Hex Pm Elixir Packages Scraper
Search Elixir packages on Hex.pm or load specific libraries to extract versions, licenses, download stats, and project links. Easily download your data as a JSON, CSV, or Excel dataset.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
BigiByte
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Hex.pm Elixir Packages Scraper: Elixir Packages Search and CSV Export
Search Elixir packages with ease. This actor allows you to quickly gather package names, version details, download stats, licensing info, and project links. Once extracted, your dataset is ready to download in CSV, JSON, or Excel format.
You can search by keyword to walk through package results or specify exact package names to load detailed metadata, including maintainers and owners when listed. If a package isn't found, the run gracefully flags it and keeps going without interrupting your workflow.
Use cases
- Dependency research: Find Elixir libraries matching your query, rank them by popularity, and keep a clean list for your team.
- Version tracking: Stay on top of
latest_stable_version, publish dates, and recent updates for packages in your tech stack. - License review: Inspect
licensesand official project links before adding new dependencies to your software. - Download ranking: Compare total vs. recent downloads to pick active, well-maintained libraries.
- Scheduled monitoring: Run periodic searches to track package adoption and changes over time.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search looks up package lists. package loads specific named packages. |
query | string | phoenix | Search term used when mode is set to search. |
sort | string | downloads | Choose how results are sorted: downloads, recent_downloads, inserted_at, updated_at, or name. |
packages | array | phoenix | List of specific package names to fetch when mode is set to package. |
maxItems | integer | 100 | Maximum number of packages to fetch per run (up to 1,000). |
requestDelaySecs | number | 1 | Pause between requests to maintain steady request rates. |
timeoutSecs | integer | 300 | Maximum runtime limit in seconds. |
requestTimeoutSecs | integer | 30 | Time limit per network request in seconds. |
userAgent | string | BigiByteActorResearch/1.0 (contact: research@bigibyte.com) | Custom User-Agent header sent with requests. |
proxyConfiguration | object | {"useApifyProxy": false} | Optional proxy configuration if needed. |
Example input
{"mode": "search","query": "phoenix","sort": "downloads","maxItems": 100,"requestDelaySecs": 1,"timeoutSecs": 300,"requestTimeoutSecs": 30,"userAgent": "BigiByteActorResearch/1.0 (contact: research@bigibyte.com)","proxyConfiguration": { "useApifyProxy": false }}
For direct package lookup:
{"mode": "package","packages": ["phoenix"],"maxItems": 100,"proxyConfiguration": { "useApifyProxy": false }}
Output Data Structure
Below is an example of a successfully extracted package record:
{"name": "phoenix","packageDescription": "Peace of mind from prototype to production","licenses": ["MIT"],"links": {"Changelog": "[https://phoenix.hexdocs.pm/changelog.html](https://phoenix.hexdocs.pm/changelog.html)","GitHub": "[https://github.com/phoenixframework/phoenix](https://github.com/phoenixframework/phoenix)"},"latest_stable_version": "1.8.15","downloads_all": 157172271,"downloads_recent": 5314428,"inserted_at": "2014-04-21T22:38:32.000000Z","updated_at": "2026-09-25T13:21:10.641246Z","html_url": "[https://hex.pm/packages/phoenix](https://hex.pm/packages/phoenix)","owners": [{"username": "chrismccord", "email": "chris@chrismccord.com"}],"scraped_at": "2026-10-12T00:00:00+00:00"}
| Field | Type | Description |
|---|---|---|
name | string | Unique package name. |
packageDescription | string | Short summary describing the package. |
licenses | array | Included software licenses. |
links | object | Important project links (e.g., GitHub, documentation, changelog). |
latest_stable_version | string | Current stable version release. |
downloads_all | integer | Total lifetime download count. |
downloads_recent | integer | Download count over recent periods. |
inserted_at | string | Initial publication timestamp. |
updated_at | string | Most recent update timestamp. |
html_url | string | Web link to the package on Hex.pm. |
owners | array | List of maintainer usernames and contact emails (when available). |
scraped_at | string | UTC timestamp when the data was extracted. |
If a specific package is missing or encounters an error, a single error item is recorded:
{"error": true,"status": 404,"message": "Page not found","scraped_at": "2026-10-12T00:00:00+00:00"}
How It Works
- Search Mode: Iterates through search results page by page based on your query and sorting criteria until
maxItemsor timeout limits are reached. - Package Mode: Directly retrieves information for each package name supplied in your input array.
- Resilience: Temporary server errors automatically trigger retries. Unresolvable errors (like 404s) generate clear error records without interrupting the rest of the scrape.
- Pacing: Built-in delays ensure polite pacing so runs finish smoothly without hitting request caps.
- Batching: Results save periodically in batches during execution.
Pricing & Usage Limits
This actor does not charge additional platform markup fees you only cover standard compute usage on Apify.
- Rate Limits: Pacing is capped at ~100 requests per minute with built-in pauses to ensure steady execution.
- Item Limits: Supports up to 1,000 package records per run.
- Attribution: If you redistribute or publish exported data, please credit Hex.pm as the original source.
FAQ
How do I export Elixir package data to CSV or Excel?
Once the run finishes, navigate to the dataset tab in Apify and click Export. You can download your data as CSV, JSON, Excel, or XML.
What happens if a package name doesn't exist?
The actor records a single line with error: true and the status code, then immediately moves on to the next item in your list.
Why is there a built-in delay between requests?
Proper pacing prevents your run from being throttled and ensures long search requests complete reliably.
How should I handle owner email addresses?
Package owner contact details are public maintainer records. If you plan to store or process this information, ensure your usage complies with applicable data privacy regulations like GDPR or CCPA.
Related Tools & Custom Development
If you plan to map, analyze, or enrich Elixir package data, combining this export with CSV cleanup workflows or custom data pipelines is a natural next step. BigiByte builds custom scrapers, automated workflows, and data pipelines for package registries, open-data portals, and web platforms whenever you need them.
Need a specialized dataset, scheduled monitoring, or a custom scraper built to your specifications? Explore custom solutions with BigiByte: https://bigibyte.com
Trademark Notice
Hex.pm, Elixir, and associated names, logos, or trademarks belong to their respective owners. Their mention here is purely for identification purposes and does not imply affiliation, sponsorship, or endorsement.
Disclaimer
This actor is an independent scraper built by BigiByte and is not officially affiliated with or endorsed by Hex.pm or its maintainers. Users are responsible for adhering to source terms of use, licensing, and attribution policies.
Is web scraping legal?
This actor collects publicly accessible data without bypassing access controls. Extracting public data is widely recognized as legal, but how you handle and use the data remains important:
- Personal Data: Maintainer contact information should be handled responsibly in compliance with relevant privacy regulations such as GDPR or CCPA.
- Copyright & Content: Descriptions and documentation may be subject to copyright. Avoid re-publishing full text content without permission.
- Terms & Attribution: Respect rate limits and provide proper attribution when re-using data publicly.
For more details, check out Apify's helpful guide: Is web scraping legal?