API Documentation

Base URL: {{ base_url }}
{% for route in routes %}
{% for method in route.methods.split(',') %} {{ method }} {% endfor %} {{ route.endpoint }}

{{ route.description }}

Example Request:
{% set method = route.methods.split(',')[0] %}{{ method }} {{ base_url }}{{ route.endpoint }}
{% endfor %}

Quick Examples

Python Example
import requests
import time

# Get device info
response = requests.get('{{ base_url }}/api/device-info')
print(response.json())

# Upload a PDF
files = {'files[]': open('document.pdf', 'rb')}
data = {'extraction_mode': 'both'}  # or 'images' or 'markdown'
response = requests.post('{{ base_url }}/api/upload', files=files, data=data)
task_id = response.json()['task_id']

# Check progress
while True:
    progress = requests.get(f'{{ base_url }}/api/progress/{task_id}').json()
    print(f"Progress: {progress['progress']}% - {progress['message']}")
    if progress['status'] == 'completed':
        break
    time.sleep(0.5)

# Get results
results = progress['results']
for result in results:
    print(f"Processed: {result['filename']}")
    print(f"  Figures: {result['figures_count']}")
    print(f"  Tables: {result['tables_count']}")
cURL Example
# Get device info
curl {{ base_url }}/api/device-info

# Upload a PDF
curl -X POST {{ base_url }}/api/upload \
  -F "files[]=@document.pdf" \
  -F "extraction_mode=both"

# Check progress (replace TASK_ID)
curl {{ base_url }}/api/progress/TASK_ID

# List processed PDFs
curl {{ base_url }}/api/pdf-list

API Endpoints Overview

{% for route in routes %} {% endfor %}
Method Endpoint Description
{% for method in route.methods.split(',') %} {{ method }} {% endfor %} {{ route.endpoint }} {{ route.description }}