Hackage Haskell Packages Scraper avatar

Hackage Haskell Packages Scraper

Pricing

from $19.00 / 1,000 results

Go to Apify Store
Hackage Haskell Packages Scraper

Hackage Haskell Packages Scraper

Searches Hackage for Haskell packages by term and returns each package's metadata as a flat row: name, version, description, license, maintainer, category, upload date, and dependencies.

Pricing

from $19.00 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Share

ParseForge

Hackage Haskell Packages Scraper

Scrape Haskell package metadata from Hackage by search term, up to a million packages per run. Every package comes with its name, version, description, license, maintainer, and dependencies. No API key required. Export to CSV, JSON, Excel, or XML.

Finding the right Haskell library on Hackage means sifting through thousands of packages by hand. The Hackage website has no bulk export, and the API returns one package at a time. This Actor searches Hackage by any term, reads the full metadata for every matching package, and returns it all in one flat dataset.

Who uses itWhat they scrape Hackage for
Haskell developersAudit every package that depends on a library before upgrading it.
Security researchersFind all packages maintained by a specific author to check for abandoned dependencies.
Open source analystsMeasure ecosystem growth by tracking new package registrations over time.
DevOps engineersBuild a private mirror of packages matching a license filter for compliance.

What it does

This Actor searches Hackage for packages matching a query and returns each package's metadata as a flat row.

  • ๐Ÿ” Search by term: provide any keyword and get every package whose name matches, from 'lens' to 'servant'.
  • ๐Ÿ“ฆ Full metadata: name, version, synopsis, description, license, maintainer, category, upload date, and dependency list.
  • โš™๏ธ Configurable limit: set a cap from 1 to 1,000,000 packages so you control the run size and cost.

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

What you can do with Hackage data

๐Ÿ“‹ Audit dependency chains.

A Haskell team searches for a core library, exports every package that depends on it, and reviews the list before a major version bump.

๐Ÿ›ก๏ธ Check maintainer activity.

A security researcher scrapes all packages by a maintainer, cross-references upload dates, and flags any that have not been updated in two years.

๐Ÿ“Š Track ecosystem growth.

An analyst runs a broad search monthly, counts new packages by category, and plots adoption trends for a quarterly report.

๐Ÿ—๏ธ Build a license-compliant mirror.

A DevOps engineer scrapes packages with a BSD3 license, filters the results, and feeds the list into a private Hackage mirror script.

Why choose this scraper

What you get
Bulk exportPull hundreds or thousands of package records in one run instead of clicking through pages.
Fixed schemaEvery row has the same columns, so you can merge runs or pipe results straight into a database.
No authReads the public Hackage index. No account, no token, no rate-limit headache.

How it compares

Two other Hackage scrapers exist on Apify. This Actor focuses on search-based bulk metadata extraction with a configurable item limit.

FeatureParseForgeHackage Haskell Package ScraperHackage Packages Scraper - Haskell Package Search
Search by query termYesYesYes
Fetch specific package by nameYes, via search termYesNot listed
Configurable max items limitYes, 1 to 1,000,000Not listedNot listed
Full package metadataYes, including dependenciesYesNot listed
Dependency list per packageYesNot listedNot listed

Configure the run

Drive the Actor with a search term, and set a maximum package count so only the top N matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
"searchQuery": "lens",
"maxItems": 10
}

A larger pull:

{
"searchQuery": "lens",
"maxItems": 200
}

Pricing

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

Results collectedApproximate cost
100 results$2.10
1,000 results$21.00
10,000 results$210.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 Hackage Haskell Packages 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 Hackage 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/hackage-haskell-packages-scraper"

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

Troubleshooting

Why am I getting no results for my search term?

The search matches package names only, not descriptions. Try a shorter or more common term. Check the spelling. If the package exists but the name is different, the search will miss it.

The run stopped before reaching my maxItems limit.

The Actor stops when there are no more matching packages on Hackage. If your search term matches 47 packages and you set maxItems to 100, the run ends after 47 results.

Some fields are empty in my dataset.

Not every package on Hackage has a maintainer, category, or description filled in. Empty fields mean Hackage did not provide that metadata for that package.

The run is taking a long time.

Large maxItems values mean more requests. The Actor processes packages sequentially to be polite to Hackage. Reduce maxItems or use a more specific search term to speed things up.

I got an error about the input schema.

Make sure you provided a searchQuery string. The field is required. If you left it empty, the Actor cannot start.

FAQ

QuestionAnswer
What data does this Actor return for each package?It returns the package name, version, synopsis, full description, license, maintainer, category, upload date, and the list of dependencies. The exact fields are shown in the sample output on the Actor's page.
Can I scrape a specific package by name instead of searching?Yes. Enter the exact package name as the search term and set maxItems to 1. The Actor will return that package's metadata if it exists.
Does this Actor handle Hackage's rate limiting?The Actor reads Hackage's public pages at a polite rate. If you need very large runs, the built-in request queue spaces requests so you stay within reasonable limits.
What search terms work best?Any term that appears in a package name works. Try 'json', 'http', 'parser', or a library name like 'aeson'. The search matches package names, not descriptions.
Can I filter by license or maintainer inside the Actor?The Actor returns all matching packages. You can filter by license, maintainer, or any other field after the run by loading the dataset into a spreadsheet or using Apify's dataset filtering.
How many packages can I scrape in one run?Free users can scrape up to 10 packages as a preview. Paid users can set maxItems up to 1,000,000, limited only by how many packages match the search term.
Does this Actor need a Hackage account or API key?No. It reads the public Hackage website directly. You do not need to register an app or obtain credentials.
What output formats are supported?You can export the dataset as CSV, JSON, Excel, or XML from the Apify console or via the API.
Can I schedule this Actor to run automatically?Yes. Apify supports scheduled runs. Set a daily or weekly schedule to track new package releases or monitor changes over time.
Does the Actor return dependency version constraints?It returns the list of dependency package names. Version constraint details depend on what Hackage displays on the package page at the time of the run.

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 haskell.org. 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.