Marker / README.md
guyba's picture
Upload 4 files
145743e verified
|
Raw
History Blame Contribute Delete
2.8 kB
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)