metadata
title: Marker PDF Converter
emoji: 📄
colorFrom: blue
colorTo: purple
sdk: docker
sdk_version: '3.10'
app_file: app.py
pinned: false
license: mit
Marker PDF Converter
Convert PDF files to clean, LLM-optimized Markdown using Marker AI.
This Space provides a FREE REST API powered by HuggingFace's GPU infrastructure.
Usage
API Endpoints
Convert PDF:
POST https://YOUR-USERNAME-marker-pdf-converter.hf.space/marker
Check Status:
GET https://YOUR-USERNAME-marker-pdf-converter.hf.space/status/{request_id}
Example
import requests
# Upload PDF
with open("document.pdf", "rb") as f:
response = requests.post(
"https://YOUR-USERNAME-marker-pdf-converter.hf.space/marker",
files={"file": f},
data={
"output_format": "markdown",
"paginate": "false"
}
)
request_id = response.json()["request_id"]
# Poll for result
import time
while True:
status_response = requests.get(
f"https://YOUR-USERNAME-marker-pdf-converter.hf.space/status/{request_id}"
)
data = status_response.json()
if data["status"] == "complete":
markdown = data["markdown"]
print(markdown)
break
elif data["status"] == "error":
print(f"Error: {data['error']}")
break
time.sleep(2)
JavaScript Example
// Upload PDF
const formData = new FormData();
formData.append('file', pdfFile);
formData.append('output_format', 'markdown');
const response = await fetch(
'https://YOUR-USERNAME-marker-pdf-converter.hf.space/marker',
{
method: 'POST',
body: formData
}
);
const { request_id } = await response.json();
// Poll for result
while (true) {
const statusResponse = await fetch(
`https://YOUR-USERNAME-marker-pdf-converter.hf.space/status/${request_id}`
);
const data = await statusResponse.json();
if (data.status === 'complete') {
console.log(data.markdown);
break;
} else if (data.status === 'error') {
console.error(data.error);
break;
}
await new Promise(resolve => setTimeout(resolve, 2000));
}
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
file |
File | Required | PDF file to convert |
output_format |
String | "markdown" | Output format (currently only markdown) |
langs |
String | null | Language hints (e.g., "English,Spanish") |
paginate |
Boolean | false | Add page separators |
disable_image_extraction |
Boolean | false | Skip extracting images |
use_llm |
Boolean | false | Use LLM for better quality (slower, requires api_key) |
api_key |
String | null | Gemini API key (required if use_llm=true) |