\usepackage{curl}

API REST FormaTeX avec 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.

Also available in:Python·Node.js·Go·PHP·Ruby·Rust·cURL|Full API reference

\section{Compilation de base}

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.

terminal
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}

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.

terminal
# 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}

Compiler à 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.

terminal
# 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}

Vérifier les 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.

terminal
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}

Points de terminaison de l'API

MéthodePoint de terminaisonDescription
POST/api/v1/compileCompile du LaTeX de façon synchrone. Renvoie les octets bruts du PDF.
POST/api/v1/compile/asyncSoumet 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}

Authentification

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
  • → Générez des clés API depuis votre tableau de bord après votre inscription.
  • → Les clés ne s'affichent qu'une seule fois à la création : enregistrez la vôtre immédiatement.
  • → Ajoutez la ligne export à votre ~/.bashrc ou ~/.zshrc pour la conserver d'une session à l'autre.

\end{curl}

Commencez à compiler du LaTeX avec 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.