---
title: "Get device settings"
method: GET
path: "/settings"
tags: ["Settings"]
---

# Get device settings

`GET /settings`

## Request

- Base URL: `https://pdf2md.dev`
- URL: `https://pdf2md.dev/settings`
- Auth: HTTP bearer

Returns the device's current conversion settings. For settings that are not present,
default values are returned.

## Headers

- `X-Timestamp` integer, required
- `X-Nonce` string, required
- `X-Body-SHA256` string, required
- `X-Signature` string, required

## Response `200`

Device settings

- SettingsResponse: The full set of settings. `engine`/`conversion_mode` were added additively — old clients unaware of these fields ignore them (backward compatibility).
  - `image_mode` 'embedded' | 'placeholder', required: Image handling mode in Markdown
  - `ocr_enabled` boolean, required: Enable OCR for text recognition on scans
  - `engine` 'docling' | 'mineru': Conversion engine (EP-015). Both engine containers are running; at most one is resident (single-resident, EP-016). The old extension does not send this field → the backend uses the default. EP-016: default `mineru` (reliable on scans/Cyrillic); changed via env DEFAULT_ENGINE. `docling` — optional for simple PDFs.
  - `conversion_mode` 'simple' | 'auto' | 'full': Conversion mode / fast-path (EP-014). `simple` — the lightweight docling pipeline, `auto` — autodetect + fallback to full, `full` — the full pipeline. Backward compatibility: when the field is absent the backend uses `full` (behavior identical to before). The new extension's UI defaults to `auto`.

## Other responses

- `401`: Invalid or expired device_token / request signature
- `403`: Device blocked
- `409`: Replay detected (nonce already used)

---

[API](https://skmtc.dev/pdf2md/apis/pdf-to-markdown-api-facade.md) · [All operations](https://skmtc.dev/pdf2md/apis/pdf-to-markdown-api-facade/llms.txt) · [OpenAPI document](https://skmtc.dev/pdf2md/apis/pdf-to-markdown-api-facade/revisions/4636782fb8b6?raw)
