Démarrage rapide
Voici le cycle complet avec curl. Il vous faut une clé API et un PDF.
Exportez d’abord la clé :
export ACCESSFUL_API_KEY="ak_votre_cle_ici"export BASE="https://api.accessful.de/api/v1/upload-service"-
Téléversez le PDF. Envoyez-le comme champ multipart
files:Fenêtre de terminal curl -X POST "$BASE/pdf/upload" \-H "X-API-Key: $ACCESSFUL_API_KEY" \-F "files=@document.pdf"La réponse liste un
caseIdpar fichier accepté :{"successfulUploads": ["7c2f1e4a-9b0d-4a1e-8f3c-2d6b5a9e1c40"],"duplicateFiles": [],"message": "Upload completed successfully. Uploaded 1 files. 0 duplicates found.","callbackUrl": null} -
Interrogez le statut de la tâche avec ce
caseIdjusqu’à ce qu’il soitcompleted:Fenêtre de terminal curl "$BASE/job-status/7c2f1e4a-9b0d-4a1e-8f3c-2d6b5a9e1c40" \-H "X-API-Key: $ACCESSFUL_API_KEY"{ "jobStatus": "completed", "stage": "finished", "score": 87 }scoreest la qualité d’accessibilité du résultat (0–100). Voir toutes les valeurs dejobStatus. -
Téléchargez le PDF/UA converti :
Fenêtre de terminal curl -L "$BASE/download/7c2f1e4a-9b0d-4a1e-8f3c-2d6b5a9e1c40" \-H "X-API-Key: $ACCESSFUL_API_KEY" \-o document-pdfua.pdf -
Supprimez le cas lorsque vous n’en avez plus besoin (facultatif, mais recommandé — il s’agit d’une suppression définitive) :
Fenêtre de terminal curl -X DELETE "$BASE/delete/7c2f1e4a-9b0d-4a1e-8f3c-2d6b5a9e1c40" \-H "X-API-Key: $ACCESSFUL_API_KEY"
Exemple complet
Section intitulée « Exemple complet »const BASE = 'https://api.accessful.de/api/v1/upload-service';const headers = { 'X-API-Key': process.env.ACCESSFUL_API_KEY };
// 1. Téléverserconst form = new FormData();form.append('files', new Blob([await readFile('document.pdf')], { type: 'application/pdf' }), 'document.pdf');const up = await fetch(`${BASE}/pdf/upload`, { method: 'POST', headers, body: form });const { successfulUploads: [caseId] } = await up.json();
// 2. Interroger jusqu’à l’état terminalconst terminal = new Set(['completed', 'failed', 'analyzer_failed', 'canceled', 'quota_exceeded']);let status;do { await new Promise((r) => setTimeout(r, 2000)); status = await (await fetch(`${BASE}/job-status/${caseId}`, { headers })).json();} while (!terminal.has(status.jobStatus));
if (status.jobStatus !== 'completed') throw new Error(`Job ${status.jobStatus}`);
// 3. Téléchargerconst pdf = await (await fetch(`${BASE}/download/${caseId}`, { headers })).arrayBuffer();await writeFile('document-pdfua.pdf', Buffer.from(pdf));console.log(`Terminé — score ${status.score}`);Vous préférez cliquer plutôt que taper ? Exécutez le même flux dans le navigateur sur la page Tester en direct.