Aller au contenu principal

Documentation API

Intégrez l'analyse PDF dans vos applications grâce à notre API REST

Gérer les jetons API

Votre première analyse

Essayez une analyse PDF sans compte. Ajoutez un jeton pour utiliser les limites de votre compte et enregistrer les résultats.

POST/api/v1/pdf/analyze
Exemple de requête
curl -X POST https://pdfcheck.online/api/v1/pdf/analyze \
  -H "Accept: application/json" \
  -F "file=@document.pdf"

La copie a échoué. Sélectionnez le code et copiez-le manuellement.

Authentification
Facultatif
Limite par fichier
50 MB
URL de base
https://pdfcheck.online/api/v1

Authentification

Le jeton est facultatif pour analyser un PDF. Les informations du compte, les analyses enregistrées et la gestion des jetons nécessitent un jeton Bearer.

Gardez vos jetons secrets. Utilisez une variable d’environnement et révoquez les jetons inutilisés depuis votre compte. Gérer les jetons API

Exemple de requête
curl -X POST https://pdfcheck.online/api/v1/pdf/analyze \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $PDFCHECK_API_TOKEN" \
  -F "file=@document.pdf"

La copie a échoué. Sélectionnez le code et copiez-le manuellement.

Utilisation et limites

Sans compte : 10 analyses par jour et par adresse IP. Free : 100 par jour. Pro et AI : aucune limite quotidienne. Les points de terminaison de traitement sont également limités à 30 requêtes par minute. Les réponses d’analyse indiquent le nombre de vérifications restantes.

AccèsAnalyses par jourLimite par fichier
Aucun jeton requis1050 MB
Free10050 MB
Pro / AIAucune limite quotidienne100 MB

Les points de terminaison de traitement acceptent également jusqu’à 30 requêtes par minute. Une réponse 429 peut indiquer une limite quotidienne ou par minute.

POST/pdf/analyze

Importe et analyse un fichier PDF. Renvoie les métadonnées détaillées extraites du PDF.

NomTypeDescription
filemultipart/form-dataRequis. PDF à analyser : jusqu’à 50 Mo sans compte et avec Free ; 100 Mo avec Pro et AI.

Exemple de réponse ; les valeurs varient selon le document.

Exemple de réponse
{
    "success": true,
    "data": {
        "id": "example-analysis-token",
        "view_key": "example-view-key",
        "filename": "document.pdf",
        "file_size": 1048576,
        "file_size_formatted": "1.00 MB",
        "metadata": {
            "basic": {
                "pages": 10,
                "pdf_version": "1.7",
                "analysis_mode": "lightweight",
                "partial_analysis": true
            },
            "document": {
                "title": "Example document",
                "author": "Example author",
                "creator": "Microsoft Word",
                "producer": "Adobe PDF Library"
            }
        },
        "analyzed_at": "2026-09-29T12:00:00+00:00"
    },
    "remaining_checks": 9
}

La copie a échoué. Sélectionnez le code et copiez-le manuellement.

L’analyse des métadonnées de l’API utilise un mode léger et limité. L’analyse détaillée des polices, des images et des couleurs est ignorée ; metadata.basic.partial_analysis vaut true.

Les métadonnées et les indicateurs logiciels ne prouvent ni la paternité du contenu, ni son authenticité, ni sa conformité aux normes.

Les données du fichier envoyé sont supprimées après le traitement ; les résultats d’analyse et les métadonnées peuvent être conservés. Consultez la politique de confidentialité. Politique de confidentialité

GET/user

Renvoie les informations sur l'utilisateur authentifié, y compris ses limites d'utilisation quotidiennes.

Jeton requis. Exemple de réponse ; les valeurs varient selon le document.

Exemple de réponse
{
    "success": true,
    "data": {
        "name": "Example user",
        "email": "user@example.com",
        "daily_limit": 100,
        "remaining_checks": 99,
        "checks_used_today": 1
    }
}

La copie a échoué. Sélectionnez le code et copiez-le manuellement.

GET/pdf

Liste toutes les analyses PDF de l'utilisateur authentifié, avec pagination.

Jeton requis

Paramètres de requêtePar défautDescription
per_page20Nombre de résultats par page (1-100)
page1integer
Exemple de réponse
{
    "success": true,
    "data": [
        {
            "id": "example-analysis-token",
            "filename": "document.pdf",
            "file_size": 1048576,
            "file_size_formatted": "1.00 MB",
            "analyzed_at": "2026-09-29T12:00:00+00:00"
        }
    ],
    "meta": {
        "current_page": 1,
        "last_page": 1,
        "per_page": 20,
        "total": 1
    }
}

La copie a échoué. Sélectionnez le code et copiez-le manuellement.

GET/pdf/{token}

Renvoie les résultats d'analyse détaillés à partir de l'identifiant d'analyse (jeton de partage).

Jeton requis

Exemple de requête
curl https://pdfcheck.online/api/v1/pdf/example-analysis-token \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $PDFCHECK_API_TOKEN"

La copie a échoué. Sélectionnez le code et copiez-le manuellement.

Référence des points de terminaison

POST/pdf/extract-text

Extrayez le texte d’un PDF. Envoyez le fichier dans le champ pdf ; ce point de terminaison limite les fichiers à 50 Mo et renvoie data.pages.

Exemple de requête
curl -X POST https://pdfcheck.online/api/v1/pdf/extract-text \
  -H "Accept: application/json" \
  -F "pdf=@document.pdf"

La copie a échoué. Sélectionnez le code et copiez-le manuellement.

POST/pdf/to-markdown

Convertissez un PDF en Markdown. Envoyez le fichier dans le champ pdf (limite de 50 Mo). Quota distinct : 10 conversions par jour sans compte et avec Free ; 100 par jour avec Pro et AI. Les pages numérisées peuvent utiliser un OCR AI externe. La réponse inclut remaining_conversions.

Exemple de requête
curl -X POST https://pdfcheck.online/api/v1/pdf/to-markdown \
  -H "Accept: application/json" \
  -F "pdf=@document.pdf"

La copie a échoué. Sélectionnez le code et copiez-le manuellement.

Gestion des jetons

La création de jetons via l’API nécessite un jeton existant. Créez votre premier jeton depuis votre compte. Gérer les jetons API

Points de terminaisonDescription
GET /tokensListe tous les jetons API de l'utilisateur authentifié.
POST /tokensCrée un nouveau jeton API. Le jeton n'est affiché qu'une seule fois dans la réponse. name: string (max: 255)
DELETE /tokens/{tokenId}Révoque (supprime) définitivement un jeton API.
Exemple de requête
curl -X POST https://pdfcheck.online/api/v1/tokens \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $PDFCHECK_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"My integration"}'

La copie a échoué. Sélectionnez le code et copiez-le manuellement.

Codes d'erreur

Code HTTPCode d'erreurDescription
401Unauthenticated.Jeton API invalide ou manquant
404not_foundRessource introuvable ou accès refusé
422message / errors
corrupted_pdf
password_protected
analysis_failed
Requête non valide ou échec du traitement PDF, notamment un fichier non pris en charge, un fichier trop volumineux, un PDF corrompu ou protégé par mot de passe
429daily_limit_exceeded
message
Limite quotidienne ou par minute dépassée ; réessayez lorsque la limite concernée est réinitialisée

Exemples de code

Lisez le résultat dans data.metadata.basic.pages. Tous les extraits de réponse sont illustratifs.

Node.js 20 ou version ultérieure ; utilise les API natives fetch, FormData et Blob.

analyze-pdf.mjs
import { readFile } from 'node:fs/promises';

const form = new FormData();
form.append('file', new Blob([await readFile('document.pdf')], {
  type: 'application/pdf'
}), 'document.pdf');

const headers = { Accept: 'application/json' };
if (process.env.PDFCHECK_API_TOKEN) {
  headers.Authorization = `Bearer ${process.env.PDFCHECK_API_TOKEN}`;
}

const response = await fetch('https://pdfcheck.online/api/v1/pdf/analyze', {
  method: 'POST', headers, body: form
});
const result = await response.json();
if (!response.ok || !result.success) throw new Error(JSON.stringify(result));
console.log(result.data.metadata.basic.pages);
console.log(result.remaining_checks);

La copie a échoué. Sélectionnez le code et copiez-le manuellement.

Python (requests)
Python
import os
import requests

headers = {'Accept': 'application/json'}
if os.getenv('PDFCHECK_API_TOKEN'):
    headers['Authorization'] = f"Bearer {os.environ['PDFCHECK_API_TOKEN']}"

with open('document.pdf', 'rb') as pdf:
    response = requests.post(
        'https://pdfcheck.online/api/v1/pdf/analyze',
        headers=headers,
        files={'file': ('document.pdf', pdf, 'application/pdf')},
        timeout=120,
    )
response.raise_for_status()
result = response.json()
print(result['data']['metadata']['basic']['pages'])
print(result['remaining_checks'])

La copie a échoué. Sélectionnez le code et copiez-le manuellement.

PHP (cURL)
PHP
<?php
$headers = ['Accept: application/json'];
if ($token = getenv('PDFCHECK_API_TOKEN')) {
    $headers[] = 'Authorization: Bearer ' . $token;
}
$curl = curl_init('https://pdfcheck.online/api/v1/pdf/analyze');
curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_POSTFIELDS => ['file' => new CURLFile('document.pdf', 'application/pdf')],
]);
$body = curl_exec($curl);
if ($body === false) throw new RuntimeException(curl_error($curl));
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
$result = json_decode($body, true, flags: JSON_THROW_ON_ERROR);
if ($status >= 400 || !($result['success'] ?? false)) {
    throw new RuntimeException($body);
}
echo $result['data']['metadata']['basic']['pages'];

La copie a échoué. Sélectionnez le code et copiez-le manuellement.