CTAN TeX Packages Scraper avatar

CTAN TeX Packages Scraper

Pricing

from $7.50 / 1,000 results

Go to Apify Store
CTAN TeX Packages Scraper

CTAN TeX Packages Scraper

Scrapes CTAN TeX package metadata by keyword search. Returns each package as a flat row with key, name, caption, and topics, with an option to hydrate full detail JSON.

Pricing

from $7.50 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

ParseForge

CTAN TeX Packages Scraper

Scrape CTAN TeX package metadata by keyword or name, up to a million packages per run. Every package comes with its key, caption, topics, and optional full detail JSON. No login or API key. Export to CSV, JSON, Excel, or XML.

CTAN's package list is spread across thousands of directory pages with no single download. This reads the official JSON API directly, matching packages by name, key, or caption substring, and returns each match in one fixed schema. You can hydrate full package details with one checkbox.

Who uses itWhat they scrape CTAN for
LaTeX package authorsMonitor how their own packages are indexed and captioned on CTAN.
TeX distribution maintainersAudit package metadata across the entire CTAN archive for consistency.
Academic librariansBuild a searchable catalog of LaTeX packages available for researchers.
Dev tool buildersPopulate a package browser or IDE autocomplete with live CTAN data.

What it does

This Actor collects CTAN TeX package metadata by keyword search and returns each package as a flat row, with an option to fetch full detail JSON for every match.

  • ๐Ÿ”Ž Keyword search: substring match against package key, name, or caption, case-insensitive.
  • ๐Ÿ“ฆ Bulk collection: set a maximum up to 1,000,000 packages per run and let the Actor paginate.
  • ๐Ÿ’ง Optional hydration: toggle full detail JSON per package, including version, author, and dependencies.

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

What you can do with CTAN data

๐Ÿ“‹ Audit package metadata.

A TeX distribution maintainer searches for all packages with a topic keyword, hydrates details, and checks for missing license or author fields before a release.

๐Ÿ” Build a package search engine.

A dev tool builder scrapes the full CTAN catalog, stores the flat rows in a database, and powers a web search interface for LaTeX users.

๐Ÿ“Š Track package ecosystem growth.

A researcher runs the Actor monthly with no search filter, collects all package keys, and plots the growth of CTAN over time.

๐Ÿ›  Populate IDE autocomplete.

A plugin author scrapes package names and captions, then ships the list as a completion source inside a LaTeX editor.

Why choose this scraper

What you get
No API keyReads CTAN's public JSON endpoint directly, no registration or token.
Flat schemaEvery package returns as one row with key, name, caption, and topics.
Full detail optionHydrate each package to get version, author, license, and dependencies.
Large runsCollect up to a million packages in a single run with automatic pagination.

How it compares

This Actor and the CTAN Packages Scraper both collect metadata from CTAN, but they differ in hydration support and the fields they expose.

FeatureParseForgeCTAN Packages Scraper - LaTeX Package Metadata
Keyword search by package name or captionYes, case-insensitive substring matchNot listed
Hydrate full package detail JSONYes, optional per-package detail fetchNot listed
Configurable max items per runYes, up to 1,000,000Not listed
Returns package topicsYesYes
Returns package key and captionYesYes

Configure the run

Drive the Actor with a package name or keyword substring, set a maximum item count, and choose whether to fetch full detail JSON for each match. The Input tab lists every parameter.

A first run with the defaults:

{
"maxItems": 10
}

A larger pull:

{
"maxItems": 200
}

Pricing

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

Results collectedApproximate cost
100 results$0.85
1,000 results$8.50
10,000 results$85.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 CTAN TeX 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 CTAN 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/ctan-tex-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 term. The match is a case-insensitive substring against package key, name, and caption. Try a shorter or more general keyword. Also verify that maxItems is set to at least 1.

The run is very slow with hydration enabled.

Hydration fetches one detail JSON per package, so a run of 1,000 packages makes 1,000 extra requests. Disable hydration if you only need the basic fields, or reduce maxItems.

Some packages are missing author or license fields even with hydration.

CTAN's detail JSON only contains what package authors have provided. If a package uploader did not fill in the author or license metadata, those fields will be empty in the output.

The Actor stopped before reaching my maxItems limit.

The Actor stops when CTAN's API returns no more matching packages. If your search term matches fewer packages than your maxItems, the run ends early. Try broadening your search.

I get a timeout error on large runs.

Large hydrated runs can take a long time. Increase the Actor's timeout in the run settings, or split the work into multiple runs with different search terms.

FAQ

QuestionAnswer
Does this Actor need a CTAN account or API key?No. It reads CTAN's public JSON endpoint directly, so no registration, token, or login is required.
What does the hydrate option do?When hydrate is enabled, the Actor fetches each package's detail JSON from CTAN, which includes version, author, license, dependencies, and long description. This makes the run slower because it issues one extra request per package.
How many packages can I collect in one run?You set the maximum with the maxItems field, up to 1,000,000. The Actor paginates through CTAN's JSON API until it reaches your limit or exhausts the matches.
Can I search for packages by topic?The search field matches against package key, name, and caption as a case-insensitive substring. If a topic word appears in the caption, the package will be returned.
What output formats are supported?You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform.
Does this Actor download the actual.sty or.cls files?No. It collects only metadata from CTAN's JSON API. To download package archives, you would need a different Actor that fetches the zip files.
How do I get only a specific package by exact name?Enter the exact package key or name in the search field. The substring match will find it, and you can set maxItems to 1 if you only want that single result.
Is the Actor fast without hydration?Yes. Without hydration, the Actor makes one paginated request to the CTAN package list endpoint, which returns many packages per page. Hydration adds one request per package.
Can I run this on a schedule?Yes. Apify supports scheduled runs, so you can set this Actor to collect CTAN metadata daily, weekly, or monthly to track changes.
What fields are in the flat row output?Each row includes the package key, name, caption, and topics. When hydration is enabled, additional fields like version, author, license, and dependencies are added.

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