\usepackage{curl}
Compilez du LaTeX en PDF depuis le terminal avec une seule commande curl. Pas de SDK, pas de dépendances : seulement l'API REST et votre clé API.
\section{Compilation de base}
Envoyez une requête POST à /api/v1/compile avec votre code source LaTeX. Le corps de la réponse est le PDF binaire brut : enregistrez-le directement avec --output.
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"latex": "\\documentclass{article}\\begin{document}Hello World\\end{document}",
"engine": "pdflatex"
}' \
--output output.pdf\section{Choix du moteur}
Définissez le champ engine pour changer de compilateur. Utilisez xelatex pour l'Unicode et les polices système, ou lualatex pour les scripts Lua. Consultez la documentation des moteurs pour la comparaison complète.
# pdfLaTeX (fastest)
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"latex": "...", "engine": "pdflatex"}' \
--output pdflatex.pdf
# XeLaTeX (Unicode + system fonts)
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"latex": "...", "engine": "xelatex"}' \
--output xelatex.pdf\section{À partir d'un fichier .tex}
Utilisez jq pour échapper en toute sécurité le contenu du fichier en chaîne JSON avant de le passer à curl. Les sauts de ligne et les caractères spéciaux sont ainsi gérés correctement.
# Read from file using shell substitution
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"latex\": $(cat main.tex | jq -Rs .), \"engine\": \"pdflatex\"}" \
--output output.pdf
# Or use jq to build the JSON properly
jq -n --rawfile src main.tex '{"latex": $src, "engine": "pdflatex"}' | \
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d @- \
--output output.pdf\section{En-têtes de réponse}
Utilisez --dump-header pour récupérer les en-têtes de réponse. L'API renvoie X-Compile-Duration-Ms et X-Engine à chaque compilation réussie.
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"latex": "...", "engine": "pdflatex"}' \
--output output.pdf \
--dump-header headers.txt
# X-Compile-Duration-Ms: 94
# X-Engine: pdflatex
# Content-Type: application/pdf
cat headers.txt\section{Endpoints}
| Méthode | Point de terminaison | Description |
|---|---|---|
| POST | /api/v1/compile | Compile du LaTeX de façon synchrone. Renvoie les octets bruts du PDF. |
| POST | /api/v1/compile/async | Soumet une tâche de compilation. Renvoie un identifiant de tâche à interroger. |
Codes de réponse : 200 — PDF binaire, 401 — clé API invalide ou absente, 422 — erreur de compilation LaTeX (corps JSON avec un champ error).
\section{Authentication}
Toutes les requêtes nécessitent un en-tête X-API-Key. Exportez votre clé dans une variable d'environnement pour pouvoir la réutiliser dans chaque commande.
export FORMATEX_API_KEY =your-api-key~/.bashrc ou ~/.zshrc pour la conserver d'une session à l'autre.\section{Autres SDK}
\end{curl}
Obtenez votre clé API, exécutez la commande de démarrage rapide et obtenez un PDF en moins d'une seconde, directement depuis votre terminal.