Hex Pm Elixir Packages Scraper avatar

Hex Pm Elixir Packages Scraper

Pricing

Pay per usage

Go to Apify Store
Hex Pm Elixir Packages Scraper

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

BigiByte

Maintained by Community

Actor 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 licenses and 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

ParameterTypeDefaultDescription
modestringsearchsearch looks up package lists. package loads specific named packages.
querystringphoenixSearch term used when mode is set to search.
sortstringdownloadsChoose how results are sorted: downloads, recent_downloads, inserted_at, updated_at, or name.
packagesarrayphoenixList of specific package names to fetch when mode is set to package.
maxItemsinteger100Maximum number of packages to fetch per run (up to 1,000).
requestDelaySecsnumber1Pause between requests to maintain steady request rates.
timeoutSecsinteger300Maximum runtime limit in seconds.
requestTimeoutSecsinteger30Time limit per network request in seconds.
userAgentstringBigiByteActorResearch/1.0 (contact: research@bigibyte.com)Custom User-Agent header sent with requests.
proxyConfigurationobject{"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"
}
FieldTypeDescription
namestringUnique package name.
packageDescriptionstringShort summary describing the package.
licensesarrayIncluded software licenses.
linksobjectImportant project links (e.g., GitHub, documentation, changelog).
latest_stable_versionstringCurrent stable version release.
downloads_allintegerTotal lifetime download count.
downloads_recentintegerDownload count over recent periods.
inserted_atstringInitial publication timestamp.
updated_atstringMost recent update timestamp.
html_urlstringWeb link to the package on Hex.pm.
ownersarrayList of maintainer usernames and contact emails (when available).
scraped_atstringUTC 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

  1. Search Mode: Iterates through search results page by page based on your query and sorting criteria until maxItems or timeout limits are reached.
  2. Package Mode: Directly retrieves information for each package name supplied in your input array.
  3. Resilience: Temporary server errors automatically trigger retries. Unresolvable errors (like 404s) generate clear error records without interrupting the rest of the scrape.
  4. Pacing: Built-in delays ensure polite pacing so runs finish smoothly without hitting request caps.
  5. 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.

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.

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?