Aller au contenu principal

Référence API

API RESTful puissante et simple : implémentez une conversion professionnelle de PDF en eBook en quelques lignes de code seulement

Requêtes API

URL de base:
https://fusion-api.oomol.com/v1
POST/pdf-transform-markdown/submit

Soumettre le PDF à la tâche Markdown

Téléchargez l'URL du fichier PDF et soumettez la tâche pour la convertir au format Markdown

Paramètres de la requête

  • pdfURL - URL du cloud du fichier PDF (chaîne, obligatoire, obtenue à partir de l'API de téléchargement de fichiers)
  • model - Modèle de conversion (chaîne, obligatoire, valeur fixe : "gundam")
  • filename - Nom du fichier de sortie sans extension (facultatif), utilisé pour une reconnaissance plus facile du fichier
  • ignore_pdf_errors - Ignorer les erreurs d'analyse PDF (facultatif, par défaut : vrai)
  • ignore_ocr_errors - Ignorer les erreurs OCR (facultatif, par défaut : vrai)

Exemple de requête

{
  "pdfURL": "https://pdfcraft.ai/examples/api-quickstart.pdf",
  "model": "gundam",
  "filename": "my-document",
  "ignore_pdf_errors": true,
  "ignore_ocr_errors": true
}

Exemple de réponse

{
  "success": true,
  "sessionID": "019aa097-f28d-7000-8d56-6a2987a7b144"
}
GET/pdf-transform-markdown/result/:taskId

Requête PDF vers le résultat Markdown

Statut de la tâche de conversion de requête et résultat par ID de tâche

Paramètres d'URL

  • taskId - ID de tâche (ID de session renvoyé par l'API de soumission)

Exemple de réponse (traitement)

{
  "success": true,
  "state": "processing",
  "progress": 66
}

Exemple de réponse (terminé)

{
  "success": true,
  "state": "completed",
  "progress": 100,
  "data": {
    "downloadURL": "https://cdn.oomol.com/result.md"
  }
}

Exemple de réponse (échec)

{
  "success": false,
  "state": "failed",
  "progress": 0,
  "error": "Raison de l'échec de la conversion"
}
POST/pdf-transform-epub/submit

Soumettre un PDF à une tâche EPUB

Téléchargez l'URL du fichier PDF et soumettez la tâche pour la convertir au format EPUB

Paramètres de la requête

  • pdfURL - URL du cloud du fichier PDF (chaîne, obligatoire, obtenue à partir de l'API de téléchargement de fichiers)
  • model - Modèle de conversion (chaîne, obligatoire, valeur fixe : "gundam")
  • filename - Nom du fichier de sortie sans extension (facultatif), utilisé pour une reconnaissance plus facile du fichier
  • ignore_pdf_errors - Ignorer les erreurs d'analyse PDF (facultatif, par défaut : vrai)
  • ignore_ocr_errors - Ignorer les erreurs OCR (facultatif, par défaut : vrai)

Exemple de requête

{
  "pdfURL": "https://pdfcraft.ai/examples/api-quickstart.pdf",
  "model": "gundam",
  "filename": "my-document",
  "ignore_pdf_errors": true,
  "ignore_ocr_errors": true
}

Exemple de réponse

{
  "success": true,
  "sessionID": "019aa097-f28d-7000-8d56-6a2987a7b144"
}
GET/pdf-transform-epub/result/:taskId

Résultat de la requête PDF vers EPUB

Statut de la tâche de conversion de requête et résultat par ID de tâche

Paramètres d'URL

  • taskId - ID de tâche (ID de session renvoyé par l'API de soumission)

Exemple de réponse (traitement)

{
  "success": true,
  "state": "processing",
  "progress": 66
}

Exemple de réponse (terminé)

{
  "success": true,
  "state": "completed",
  "progress": 100,
  "data": {
    "downloadURL": "https://cdn.oomol.com/result.epub"
  }
}

Exemple de réponse (échec)

{
  "success": false,
  "state": "failed",
  "progress": 0,
  "error": "Raison de l'échec de la conversion"
}

cURL

# 1. Submit PDF to Markdown task
curl -X POST https://fusion-api.oomol.com/v1/pdf-transform-markdown/submit \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"pdfURL": "https://pdfcraft.ai/examples/api-quickstart.pdf",
"model": "gundam",
"filename": "my-document"
}'
# Response: {"success": true, "sessionID": "019aa097-f28d-7000-8d56-6a2987a7b144"}
# 2. Query conversion result
curl -X GET https://fusion-api.oomol.com/v1/pdf-transform-markdown/result/019aa097-f28d-7000-8d56-6a2987a7b144 \
-H "Authorization: Bearer YOUR_API_KEY"
# Response: {"success": true, "state": "completed", "data": {"downloadURL": "https://cdn.oomol.com/result.md"}}

SDK Python

Un SDK Python pour interagir avec l'API PDF Craft. Il simplifie le processus de conversion de PDF en Markdown ou EPUB en gérant l'authentification, la soumission des tâches et l'interrogation des résultats.

Voir sur GitHub

Installation

pip install pdf-craft-sdk

Utilisation de base

from pdf_craft_sdk import PDFCraftClient
# Initialize the client
client = PDFCraftClient(api_key="YOUR_API_KEY")
# Convert a local PDF to Markdown
try:
download_url = client.convert_local_pdf("document.pdf")
print(f"Conversion successful! Download URL: {download_url}")
except Exception as e:
print(f"An error occurred: {e}")

Téléchargement de fichiers locaux avec suivi de la progression

from pdf_craft_sdk import PDFCraftClient, UploadProgress
def on_progress(progress: UploadProgress):
print(f"Upload: {progress.percentage:.2f}% - Part {progress.current_part}/{progress.total_parts}")
client = PDFCraftClient(api_key="YOUR_API_KEY")
# Upload local file with progress tracking
download_url = client.convert_local_pdf(
"large_document.pdf",
progress_callback=on_progress
)

Conversion PDF à distance

from pdf_craft_sdk import PDFCraftClient, FormatType
client = PDFCraftClient(api_key="YOUR_API_KEY")
# Convert remote PDF to EPUB
download_url = client.convert(
pdf_url="https://example.com/file.pdf",
format_type=FormatType.EPUB,
includes_footnotes=True
)
print(f"Download URL: {download_url}")

Utilisation avancée (étape par étape)

from pdf_craft_sdk import PDFCraftClient, FormatType
client = PDFCraftClient(api_key="YOUR_API_KEY")
# Step 1: Upload file
cache_url = client.upload_file("document.pdf")
# Step 2: Submit conversion task
task_id = client.submit_conversion(
cache_url,
format_type=FormatType.MARKDOWN
)
print(f"Task submitted. ID: {task_id}")
# Step 3: Wait for completion
download_url = client.wait_for_completion(task_id)
print(f"Download URL: {download_url}")

Options de configuration

  • max_wait_ms : temps d'attente maximum en millisecondes (par défaut : 7 200 000, soit 2 heures)
  • check_interval_ms : intervalle d'interrogation initial en millisecondes (par défaut : 1 000)
  • max_check_interval_ms : intervalle d'interrogation maximum en millisecondes (par défaut : 5 000)
  • backoff_factor : multiplicateur pour un intervalle croissant, ou utilisez l'énumération PollingStrategy (par défaut : PollingStrategy.EXPONENTIAL / 1.5)
  • model : Le modèle à utiliser pour la conversion (par défaut : 'gundam')
from pdf_craft_sdk import PDFCraftClient, FormatType, PollingStrategy
client = PDFCraftClient(api_key="YOUR_API_KEY")
# Example with custom polling configuration
download_url = client.convert(
pdf_url="https://example.com/file.pdf",
format_type=FormatType.MARKDOWN,
model="gundam",
includes_footnotes=True,
ignore_pdf_errors=True,
ignore_ocr_errors=True,
max_wait_ms=600000, # Maximum wait time: 10 minutes
check_interval_ms=2000, # Initial polling interval: 2 seconds
max_check_interval_ms=10000, # Maximum polling interval: 10 seconds
backoff_factor=PollingStrategy.EXPONENTIAL # or 1.5
)

SDK TypeScript

Un SDK TypeScript pour interagir avec l'API PDF Craft. Il simplifie le processus de conversion de PDF en Markdown ou EPUB en gérant l'authentification, la soumission des tâches et l'interrogation des résultats.

Voir sur GitHub

Installation

npm install pdf-craft-sdk-ts
# or
yarn add pdf-craft-sdk-ts

Utilisation de base

import { PDFCraftClient, FormatType } from 'pdf-craft-sdk-ts';
const client = new PDFCraftClient("YOUR_API_KEY");
async function main() {
try {
const downloadUrl = await client.convert("cache://your-pdf-file.pdf", {
formatType: FormatType.Markdown
});
console.log(`Success! Download: ${downloadUrl}`);
} catch (error) {
console.error("Error:", error);
}
}
main();

Téléchargement de fichiers locaux avec suivi de la progression

import { PDFCraftClient, FormatType, UploadProgress } from 'pdf-craft-sdk-ts';
const client = new PDFCraftClient("YOUR_API_KEY");
const onProgress = (progress: UploadProgress) => {
console.log(`Progress: ${progress.percentage.toFixed(2)}%`);
console.log(`Part ${progress.currentPart}/${progress.totalParts}`);
};
// Upload and convert local file
const downloadUrl = await client.convertLocalPdf("document.pdf", {
formatType: FormatType.Markdown,
progressCallback: onProgress,
includesFootnotes: true,
uploadMaxRetries: 5
});

Traitement par lots

import { PDFCraftClient, FormatType } from 'pdf-craft-sdk-ts';
const client = new PDFCraftClient("YOUR_API_KEY");
// Create batch conversion
const files = [
{ url: "cache://file1.pdf", fileName: "document1.pdf" },
{ url: "cache://file2.pdf", fileName: "document2.pdf" }
];
const batch = await client.createBatch(files, FormatType.Markdown, false);
const result = await client.startBatch(batch.batchId);
// Monitor progress
const status = await client.getBatchStatus(batch.batchId);
console.log(`Completed: ${status.completedCount}/${status.totalCount}`);

Utilisation avancée (étape par étape)

import { PDFCraftClient, FormatType } from 'pdf-craft-sdk-ts';
const client = new PDFCraftClient("YOUR_API_KEY");
// Step 1: Submit task
const taskId = await client.submitConversion(
"cache://file.pdf",
FormatType.Markdown
);
console.log(`Task submitted. ID: ${taskId}`);
// Step 2: Poll for completion
const downloadUrl = await client.waitForCompletion(
taskId,
FormatType.Markdown
);
console.log(`Download URL: ${downloadUrl}`);

Options de configuration

  • formatType : FormatType.Markdown | FormatType.EPUB (par défaut : FormatType.Markdown)
  • model : Modèle à utiliser (par défaut : 'gundam')
  • wait : s'il faut attendre la fin (par défaut : true)
  • maxWaitMs : temps d'attente maximum en millisecondes (par défaut : 7 200 000, soit 2 heures)
  • checkIntervalMs : intervalle d'interrogation initial en millisecondes (par défaut : 1 000)
  • maxCheckIntervalMs : intervalle d'interrogation maximal en millisecondes (par défaut : 5 000)
  • backoffFactor : multiplicateur pour un intervalle croissant, ou utilisez l'énumération PollingStrategy (par défaut : PollingStrategy.Exponential / 1.5)
import { PDFCraftClient, FormatType, PollingStrategy } from 'pdf-craft-sdk-ts';
const client = new PDFCraftClient("YOUR_API_KEY");
// Example with custom polling configuration
const downloadUrl = await client.convert("cache://file.pdf", {
formatType: FormatType.Markdown,
model: "gundam",
wait: true,
includesFootnotes: true,
ignorePdfErrors: true,
ignoreOcrErrors: true,
maxWaitMs: 600000, // Maximum wait time: 10 minutes
checkIntervalMs: 2000, // Initial polling interval: 2 seconds
maxCheckIntervalMs: 10000, // Maximum polling interval: 10 seconds
backoffFactor: PollingStrategy.Exponential // or use a number like 1.5
});