OPAM OCaml Packages Scraper avatar

OPAM OCaml Packages Scraper

Pricing

from $19.00 / 1,000 results

Go to Apify Store
OPAM OCaml Packages Scraper

OPAM OCaml Packages Scraper

Scrapes OCaml package metadata from the OPAM repository. Filter by package name or keyword, or collect the full index. Each package is returned as a flat row with its version, dependencies, license, synopsis, and maintainer.

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

6 days ago

Last modified

Share

ParseForge

OPAM OCaml Packages Scraper

Scrape OCaml package metadata from the OPAM repository by keyword or from the full index, up to a million per run. Every package comes with its version, dependencies, license, synopsis, and maintainer. Export to CSV, JSON, Excel, or XML.

Finding the right OCaml library means browsing the OPAM package index by hand or writing one-off scripts against the repository. This reads the public package listing directly, filters by package name or keyword, and returns each match in one fixed schema. No API key, no rate-limit headaches.

Who uses itWhat they scrape OPAM for
OCaml developersAudit the dependency tree and license of every package a project pulls in.
DevOps engineersBuild a private mirror of allowed OPAM packages with their checksums and URLs.
Security researchersScan the OPAM ecosystem for packages with outdated dependencies or missing maintainers.
Data analystsChart the growth of the OCaml package ecosystem over time by version count and author.

What it does

This Actor collects OCaml package records from the OPAM repository by keyword search or from the full index, and returns each one as a flat row.

  • ๐Ÿ”Ž Keyword filter: supply a package name or keyword like lwt, dune, or async and collect only matching packages.
  • ๐Ÿ“ฆ Full-index mode: leave the search field empty to walk the entire OPAM package listing from the top.
  • ๐Ÿงฎ Volume control: set a ceiling from 1 to 1,000,000 packages so a quick spot-check does not turn into a full mirror.

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

What you can do with OPAM data

๐Ÿ“‹ Audit project dependencies.

A lead developer searches for every package a codebase depends on, collects the license and maintainer fields, and decides which ones need a legal review before the next release.

๐Ÿ” Build an allowed-package mirror.

A platform team scrapes the full OPAM index, filters by an internal allowlist of licenses, and publishes only vetted packages to a private opam-repository.

๐Ÿ“Š Track ecosystem growth.

A researcher runs the Actor weekly with no keyword, collects the version count and author list, and plots the month-over-month growth of the OCaml package set.

โš ๏ธ Find unmaintained packages.

A security engineer scrapes the index, filters for packages whose latest version is older than two years, and flags them for replacement or forking.

Why choose this scraper

What you get
Flat row per packageOne package equals one row with its name, version, synopsis, license, dependencies, and maintainer.
No API registrationReads the public OPAM index directly. No app registration, no OAuth, no token refresh.
Fixed schemaEvery run returns the same columns, so your downstream pipeline never breaks on a schema change.

How it compares

No other Store actor targets OPAM the same way, so the honest comparison is with the alternatives teams actually weigh.

OPAM OCaml Packages ScraperBuild it in-houseBy hand
SetupRun it now, zero configDays of engineeringNone, but hours per pull
When OPAM changesMaintained for youYou fix itYou re-learn the page
Proxies, retries, anti-botBuilt inYour problemBrowser only
OutputFixed JSON schema, CSV/Excel exportWhatever you buildCopy-paste
CostPay per resultEngineering timeAnalyst hours

Configure the run

Drive the Actor from a package-name keyword or leave it empty for the full index, and the filter runs 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.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 OPAM OCaml 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 OPAM 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/opam-ocaml-scraper"

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

Troubleshooting

Why am I getting no results?

Check the search keyword. It must match part of a package name. Try a broader term or leave the field empty to scrape the full index. Also confirm that maxItems is set to a number greater than zero.

The run stopped before collecting all packages I wanted.

Increase the maxItems value. The Actor stops when it hits that ceiling. If you need the full index, set maxItems to a number larger than the total package count.

Some fields are empty in the output.

Not every OPAM package declares every metadata field. A missing maintainer or license in the output means the package did not publish that information upstream.

The run timed out.

A full-index scrape with a very high maxItems value can hit the default timeout. Increase the run timeout in the Actor's advanced settings, or raise the memory allocation.

I got an error about the website being unreachable.

The OPAM repository may have been temporarily down. Retry the run after a few minutes. If the error persists, check the OPAM status page or contact support.

FAQ

QuestionAnswer
Do I need an OPAM account or API key?No. The Actor reads the public OPAM package index. You do not need an account, an API key, or any authentication.
What does one row of output look like?Each row is a flat JSON object with the package name, version, synopsis, license, dependencies, maintainer, and other metadata fields. The exact field list is shown in the sample output on the Actor page.
Can I scrape the entire OPAM repository?Yes. Leave the search field empty and set the maximum packages high enough. The Actor will walk the full index and return every package it finds.
How do I filter for a specific package?Type a package name or keyword into the search field. The Actor will return only packages whose name contains that text.
Does this scrape package source code or tarballs?No. It collects the metadata record for each package: name, version, dependencies, license, synopsis, and maintainer. It does not download source archives.
What export formats are supported?You can export the dataset to CSV, JSON, Excel, or XML from the Apify dataset tab after the run finishes.
How long does a full-index scrape take?It depends on the number of packages and the Actor's memory allocation. A few thousand packages finish in minutes. A full mirror of the entire OPAM index may take longer.
Can I run this on a schedule?Yes. Use Apify's scheduler to run the Actor daily or weekly and track new packages or version bumps automatically.
What happens if the OPAM website changes its layout?The Actor is maintained to track the OPAM repository structure. If a change breaks the scraper, report it and we will update the parser.

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 OCaml.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.