Welcome to the TeX and LaTeX documentation lookup system.

Documentation lookup

Topics

Our API

You are visiting the front-end for the TeXdoc online software. In the backend, it is running a RESTful API that provides a few endpoints for you to use. Please make sure you read the following instructions about what to expect and what not to.

Each of these requests will return either HTTP status code 200 (OK) or, in the case of any error, HTTP status code 422 (Unprocessable Entity). The /version endpoint is guaranteed not to fail.

Endpoint Description
/version This endpoint returns the versions of the API and data format (api), the installed version of texdoc (texdoc) and the date of the last TeX Live update as ISO date string (tlpdb). Make sure your client software always expects the correct API version to avoid problems. Our API versions follow semantic versioning will all its consequences.
/texdoc/〈name〉 On this path, the list of entries is returned that a local call to texdoc -l would result in. For each entry, there are two fields:
  • path containing the path to the documentation file relative to the doc subfolder of the TEXMFDIST directory.
  • description containing the file's description if existent (empty otherwise).
The application will always return a JSON array of such entries.
/serve/〈name〉/〈index〉 This call results in the file corresponding to the documentation file at index 〈index〉 of the result of /texdoc/〈name〉 being responded to the client.
/pkg/〈name〉 This endpoint is actually a shortcut to the /serve/〈name〉/0 endpoint previously introduced to preserve compatibility with the API of texdoc.net.
/topics/list This endpoint returns the list of topics known to the application specified by their key and a caption called details. This is a direct interface to CTAN's API for topics. Network access for the server software is required.
/topic/〈name〉 This endpoint returns details for a topic by returning the key (what is passed in as 〈name〉), a string with a short description called details and a list of package names (strings) called packages. This is a direct interface to CTAN's API for topics. Network access for the server software is required.

Deploying your own instance

Running an executable JAR file

TeXdoc online is an open-source product available at its GitLab repository page. It consists of one server component that does host the API and the front-end at the same time. If you simply want to have these features available to you, download the latest build artifacts from there (i.e. the JAR file with dependencies) and run it with your local Java installation. Please note that the software requires a local TeX distribution installed and internet connection for fetching the topics.

When running the JAR file, a local webserver will start up and host the service at 127.0.0.1:8080 which is not configurable at the moment. Calling this address will open up the web interface. Appending API paths will execute the API calls and return the JSON objects. To stop the server from running, simply CTRL+C the Java process.

Booting up a container

Alternatively, the preferred way to host your own instance should be running our Docker container (a list of available tags may be found at GitLab). The Docker container runs the web service as its entrypoint so running the server will start up the web server. Because the Docker container is built on top of our TeX Live images, it does not require a local TeX installation which might be beneficial for web servers. Internet connection is required, though. This all comes at the cost of being quite a big docker image of some gigabytes.

If your Docker container runs for multiple days, it features an automated update of TeX Live. Every day at 00:01 in the morning, a full update of the distribution is performed updating to the latest and greatest package versions TeX Live has to offer. Please note, that updates between distribution releases will not be performed that way; in order to upgrade from TL 2020 to TL 2021 you would need to pull the latest Docker image again but that means that the need for re-pulling the Docker image reduces to once per year.