← clify home · catalogue

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'