File size: 2,800 Bytes
a9e7096 145743e a9e7096 145743e a9e7096 145743e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | ---
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](https://github.com/VikParuchuri/marker).
This Space provides a **FREE REST API** powered by HuggingFace's GPU infrastructure.
## Usage
### API Endpoints
**Convert PDF:**
```bash
POST https://YOUR-USERNAME-marker-pdf-converter.hf.space/marker
```
**Check Status:**
```bash
GET https://YOUR-USERNAME-marker-pdf-converter.hf.space/status/{request_id}
```
### Example
```python
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
```javascript
// 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`) |
|