ctan API for agents (unofficial) — JSON over curl | clify
CTAN (Comprehensive TeX Archive Network): browse TeX/LaTeX packages, topics, contributors, announcements, licenses, archive directories, ratings and comments from the public ctan.org web pages and their XHR endpoints.
Host: ctan.org. Call these verified read commands with plain curl; no install, key, or account. Use the public JSON API with plain curl. No install, key, account, or browser is needed. Example: curl 'https://clify-dev.netlify.app/sites.json'. Start with /search?q=weather, then call /abc/COMMAND. Responses are one JSON object. The hosted MCP and GitHub repo are also available.
Commands
list-packages
List CTAN packages whose name starts with a given letter (package slug and URL) Params: letter*
curl 'https://clify-dev.netlify.app/ctan/list-packages'
get-package
Get a package's detail page: title and catalogue entry table (version, license, home page, etc.) Params: pkg*
curl 'https://clify-dev.netlify.app/ctan/get-package'
get-package-history
Get a package's release timeline as [year, month, version] tuples Params: pkg*
curl 'https://clify-dev.netlify.app/ctan/get-package-history'
get-package-rating
Get a package's rating breakdown: the number of votes for each star level Params: pkg*
curl 'https://clify-dev.netlify.app/ctan/get-package-rating?pkg=pgf'
list-package-comments
List user comments on a package (commenter, profile link, date), paginated Params: pkg*, offset, max
curl 'https://clify-dev.netlify.app/ctan/list-package-comments?pkg=pgf'
list-topics
List all topics with slug, URL and a tooltip containing the description and package count Params: none
curl 'https://clify-dev.netlify.app/ctan/list-topics'
list-topics-by-count
List topics ranked by number of packages Params: none
curl 'https://clify-dev.netlify.app/ctan/list-topics-by-count'
list-topic-packages
List the packages in a topic Params: topic*
curl 'https://clify-dev.netlify.app/ctan/list-topic-packages'
list-top-contributors
List top contributors with their package counts Params: none
curl 'https://clify-dev.netlify.app/ctan/list-top-contributors'
list-contributors
List contributors whose surname starts with a given letter Params: letter*
curl 'https://clify-dev.netlify.app/ctan/list-contributors'
get-contributor
List the packages maintained by a contributor Params: id*
curl 'https://clify-dev.netlify.app/ctan/get-contributor'
list-announcements
List the latest CTAN-ann announcements (package uploads and updates) Params: none
curl 'https://clify-dev.netlify.app/ctan/list-announcements'
get-announcement
Get the full text of an announcement and the package it concerns Params: msgid*
curl 'https://clify-dev.netlify.app/ctan/get-announcement'
list-package-announcements
List all announcements for one package Params: pkg*
curl 'https://clify-dev.netlify.app/ctan/list-package-announcements'
browse-archive
List subdirectories and files (size, date, download URL) in a CTAN archive directory Params: path*
curl 'https://clify-dev.netlify.app/ctan/browse-archive?path=graphics%2Fpgf%2Fcontrib%2Fpgfplots'
list-licenses
List the license keys used in the TeX Catalogue (free and non-free) Params: none
curl 'https://clify-dev.netlify.app/ctan/list-licenses'
get-license
Get a license's name, text and reference link Params: key*
curl 'https://clify-dev.netlify.app/ctan/get-license'
get-license-stats
Get how many packages use a license, out of the total package count Params: key*
curl 'https://clify-dev.netlify.app/ctan/get-license-stats'
get-upload-stats
Get monthly CTAN upload counts as [year, month, count] tuples Params: none
curl 'https://clify-dev.netlify.app/ctan/get-upload-stats'
get-random-package
Get a random featured package (key, name, caption, description) Params: none
curl 'https://clify-dev.netlify.app/ctan/get-random-package'