Aller au contenu

API

Une API PDF pour un centime

Compressez, fusionnez et convertissez depuis votre code. $0.01 par document, les 100 premiers chaque mois gratuits. Sans abonnement, sans minimum.

L'API traite les fichiers sur le serveur

Contrairement à l'éditeur du navigateur, l'API envoie le fichier à notre serveur. Il est traité en mémoire, jamais écrit sur disque et non conservé après la réponse ; les noms de fichiers ne sont pas enregistrés. Pour les documents qui ne doivent pas quitter votre réseau, utilisez le navigateur ou Enterprise.

Authentification

Clé Bearer dans l'en-tête

Créez une clé dans votre tableau de bord. Elle commence par sd_live_et n'est affichée qu'une fois : nous ne stockons que son hachage. Envoyez la clé avec chaque requête :

Authorization: Bearer sd_live_XXXXXXXXXXXXXXXXXXXXXXXX

Corps de la requête — multipart/form-dataavec les champs fileou un fichier brut avec Content-Type: application/pdf | image/png | image/jpeg. La réponse est le PDF final. Limite — 100 Mo par fichier et 50 fichiers par requête.

Points d'accès

Trois opérations

POST/api/v1/compress

Compresser

Compression sans perte : supprime les métadonnées Info et XMP ainsi que les objets inutilisés, et reconstruit le document avec des flux d'objets. Le résultat n'est jamais plus volumineux que l'original.

file
Un seul PDF. Peut être envoyé en corps brut avec Content-Type: application/pdf.
curl
curl -X POST https://lockpage.tools/api/v1/compress \
  -H "Authorization: Bearer $LOCKPAGE_KEY" \
  -F file=@contract.pdf \
  -o contract.min.pdf
POST/api/v1/merge

Fusionner

Fusionne les PDF dans l'ordre des champs de fichier. De 2 à 50 fichiers par requête.

file
Champ répété, de 2 à 50 PDF. L'ordre est conservé.
curl
curl -X POST https://lockpage.tools/api/v1/merge \
  -H "Authorization: Bearer $LOCKPAGE_KEY" \
  -F file=@act.pdf \
  -F file=@invoice.pdf \
  -o merged.pdf
POST/api/v1/convert

Convertir

Le serveur prend en charge PNG et JPEG → PDF : chaque image devient une page. Les autres conversions renvoient 501 not_implemented— pour l'instant, elles ne fonctionnent que dans le navigateur.

file
Une ou plusieurs images PNG/JPEG.
to
Format cible : pdf. Pour un corps brut, utilisez le paramètre de requête ?to=pdf.
curl
curl -X POST "https://lockpage.tools/api/v1/convert?to=pdf" \
  -H "Authorization: Bearer $LOCKPAGE_KEY" \
  -H "Content-Type: image/jpeg" \
  --data-binary @scan.jpg \
  -o scan.pdf

Réponses

Succès et erreurs

Une réponse réussie est un PDF accompagné d'en-têtes d'utilisation. Une erreur est un JSON avec un code machine et un message lisible que vous pouvez afficher à vos utilisateurs.

200 OK
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: attachment; filename="securadoc-merge.pdf"
Cache-Control: no-store
X-Lockpage-Documents: 2
X-Lockpage-Price-Usd-Per-Document: 0.01

%PDF-1.7 …
Erreur
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": { "code": "bad_request", "message": "merge needs at least two files" } }
HTTPcodeQuand
400bad_requestAucun fichier, jeu de fichiers inadapté à l'opération, PDF endommagé
401unauthorizedAucun en-tête Authorization, clé invalide ou révoquée
413too_largeLe fichier dépasse 100 Mo
415unsupported_media_typeLe format du fichier d'entrée n'est pas pris en charge
501not_implementedCette conversion n'est pas encore disponible sur le serveur
500internalErreur interne. Veuillez réessayer plus tard.
Node.js 20+
const form = new FormData();
form.append("file", new Blob([await fs.readFile("a.pdf")]), "a.pdf");
form.append("file", new Blob([await fs.readFile("b.pdf")]), "b.pdf");

const res = await fetch("https://lockpage.tools/api/v1/merge", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.LOCKPAGE_KEY}` },
  body: form,
});
if (!res.ok) throw new Error((await res.json()).error.message);
await fs.writeFile("merged.pdf", Buffer.from(await res.arrayBuffer()));

Utilisation

Comment fonctionne la tarification

Un document correspond à un fichier d'entrée dans une requête réussie : fusionner trois PDF compte pour trois documents. Les requêtes en échec sont gratuites. Les 100 premiers documents de chaque mois civil sont gratuits, puis $0.01 par document. L'utilisation de votre mois en cours est affichée dans le tableau de bord.

Documents par moisCoût
jusqu'à 100Gratuit
1,000$9
10,000$99
100,000$999