Skip to content

Convert it. We forget it. - Based in Germany

Contact
EN – EnglishDE – Deutsch
Wandlix
Pricing

API documentation

Every tool can be called over HTTP from your own programs – the same processing as on the website, on our servers in Germany.

Machine-readable as an OpenAPI file: /api/v1/openapi.json

Quickstart

From zero to your first call in three steps.

  1. Create a test key

    Sign in (free, only an email code) and create a key in your account under “API keys”. Choose a test key: it is free, limited to 20 calls per day and files up to 5 MB.

    Open API keys

  2. Store the key

    Keep the key in an environment variable instead of in your code:

    export OWT_KEY=owk_test_...
  3. Build and run your call

    Choose a tool below, copy the call and run it. The result is the processed file (or, for check tools, a JSON report).

Call builder

Pick a tool and its options and copy a ready call in curl, JavaScript, Python or PHP. Everything happens in your browser; nothing is sent.

curl -X POST 'https://wandlix.com/api/v1/tools/merge-pdf' \
  -H "Authorization: Bearer $OWT_KEY" \
  -F 'files=@file1.pdf' \
  -F 'files=@file2.pdf' \
  -OJ

The examples read your key from the environment variable OWT_KEY. Never put a key into code that you publish.

Access

Create an API key in your account and send it in the Authorization header with every request. Go to your account

Authorization: Bearer owk_YOUR_KEY

An invalid or revoked key is rejected (HTTP 401) – never treated as a guest. Keep keys out of public code, browser programs and repositories.

Test keys

Keys starting with owk_test_ are free and never touch your balance. They are meant for trying out your integration and are limited to 20 calls per day and files up to 5 MB. After that you get HTTP 402 (quota_exceeded).

In your account you can set your own limit of requests per minute for each key; it then replaces the per-IP limit.

Request

One request per job, as multipart/form-data. Files stay in memory only and are discarded after the response.

POST https://wandlix.com/api/v1/tools/<tool>
Content-Type: multipart/form-data
  • files – one or more files; the order is the processing order
  • options – optional, JSON text with the tool’s options (see the table below)

Tools that take no files (for example qr-code and create-einvoice) also accept Content-Type: application/json with the body {"options": {…}}. That helps with clients that cannot send form uploads, such as online curl services.

curl

curl -X POST "https://wandlix.com/api/v1/tools/merge-pdf" \
  -H "Authorization: Bearer $OWT_KEY" \
  -F "files=@a.pdf" -F "files=@b.pdf" \
  -o merged.pdf
curl -X POST "https://wandlix.com/api/v1/tools/compress-image" \
  -H "Authorization: Bearer $OWT_KEY" \
  -F "files=@photo.png" \
  -F 'options={"quality":70,"maxWidth":1600}' \
  -o photo-small.png

JavaScript (Node.js)

const form = new FormData();
form.append("files", new Blob([await fs.readFile("a.pdf")]), "a.pdf");
form.append("files", new Blob([await fs.readFile("b.pdf")]), "b.pdf");

const res = await fetch("https://wandlix.com/api/v1/tools/merge-pdf", {
  method: "POST",
  headers: { Authorization: "Bearer " + process.env.OWT_KEY },
  body: form,
});
if (!res.ok) throw new Error((await res.json()).error);
await fs.writeFile("merged.pdf", Buffer.from(await res.arrayBuffer()));

Python

import os, requests

res = requests.post(
    "https://wandlix.com/api/v1/tools/merge-pdf",
    headers={"Authorization": "Bearer " + os.environ["OWT_KEY"]},
    files=[("files", open("a.pdf", "rb")), ("files", open("b.pdf", "rb"))],
)
res.raise_for_status()
open("merged.pdf", "wb").write(res.content)

PHP

$ch = curl_init("https://wandlix.com/api/v1/tools/merge-pdf");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("OWT_KEY")],
    CURLOPT_POSTFIELDS => [
        "files[0]" => new CURLFile("a.pdf"),
        "files[1]" => new CURLFile("b.pdf"),
    ],
    CURLOPT_RETURNTRANSFER => true,
]);
file_put_contents("merged.pdf", curl_exec($ch));

Response

On success (HTTP 200) you get the result file, or a ZIP when there are several result files. The file name is in the Content-Disposition header, extra details in the X-Result-Info header (URL-encoded JSON).

The e-invoice check returns JSON with the check report under result instead.

Tools and options

The tool identifier goes into the URL. Options you leave out use their default.

ToolFiles / sizeFile typesOptions
validate-einvoice
Validate e-invoice
1–20, ≤ 50 MBpdf, xml–
create-einvoice
Create e-invoice (XRechnung)
0, ≤ 1 MBpdf, xmlJSON text (seller, buyer, invoice, payment, lines); no files. Returns the XML and the check report.
merge-pdf
Merge PDF
2–20, ≤ 50 MBpdf–
split-pdf
Split PDF
1, ≤ 50 MBpdf
  • mode: ranges | extract | each (default ranges)
  • pages: text
pdf-to-image
PDF to image
1, ≤ 50 MBpdf
  • format: jpg | png (default jpg)
  • dpi: 96 | 150 | 200 | 300 (default 150)
  • pages: text
compress-pdf
Compress PDF
1, ≤ 50 MBpdf
  • level: low | medium | high (default medium)
ocr-pdf
Make PDF searchable (OCR)
1, ≤ 50 MBpdf
  • language: both | deu | eng (default both)
protect-pdf
Protect PDF
1, ≤ 50 MBpdf
  • password: text
unlock-pdf
Unlock PDF
1, ≤ 50 MBpdf
  • password: text
delete-pdf-pages
Delete PDF pages
1, ≤ 50 MBpdf
  • pages: text
rotate-pdf
Rotate PDF
1, ≤ 50 MBpdf
  • angle: 90 | 180 | 270 (default 90)
  • scope: all | pages (default all)
  • pages: text
watermark-pdf
Add watermark to PDF
1, ≤ 50 MBpdf
  • text: text (default CONFIDENTIAL)
  • layout: diagonal | center | tiled (default diagonal)
  • size: small | medium | large (default medium)
  • color: gray | red | blue | black (default gray)
  • opacity: 10–80, step 5 (default 30)
  • pages: text
add-page-numbers
Add page numbers to PDF
1, ≤ 50 MBpdf
  • position: bottom-center | bottom-right | bottom-left | top-center | top-right | top-left (default bottom-center)
  • format: plain | slash | dash (default plain)
  • size: 9 | 11 | 13 (default 11)
  • from: 1–9999 (default 1)
  • start: 1–9999 (default 1)
reorder-pdf
Reorder PDF pages
1, ≤ 50 MBpdf
  • mode: custom | reverse (default custom)
  • order: text
  • rest: append | drop (default append)
crop-pdf
Crop PDF
1, ≤ 50 MBpdf
  • top: 0–200 (default 10)
  • right: 0–200 (default 10)
  • bottom: 0–200 (default 10)
  • left: 0–200 (default 10)
  • pages: text
pdf-to-pdfa
PDF to PDF/A
1–10, ≤ 50 MBpdf, doc, docx, odt, rtf, xls, xlsx, ods, ppt, pptx, odp
  • level: 1b | 2b | 3b (default 2b)
pdf-to-text
PDF to text / Markdown
1, ≤ 50 MBpdf
  • format: md | txt (default md)
  • pages: text
remove-metadata
Remove metadata
1–20, ≤ 50 MBpdf, jpg, jpeg, png, webp–
images-to-pdf
Images to PDF
1–50, ≤ 50 MBjpg, jpeg, png, webp, gif, tif, tiff, avif, svg
  • pageSize: fit | a4 | letter (default fit)
  • margin: none | small | large (default none)
ocr-image
Image to text (OCR)
1–10, ≤ 50 MBjpg, jpeg, png, webp, gif, tif, tiff, avif, svg
  • language: both | deu | eng (default both)
  • output: txt | pdf (default txt)
convert-image
Convert image
1–20, ≤ 50 MBjpg, jpeg, png, webp, gif, tif, tiff, avif, svg
  • format: jpg | png | webp | avif (default jpg)
  • quality: 40–100, step 5 (default 90)
compress-image
Compress image
1–20, ≤ 50 MBjpg, jpeg, png, webp
  • quality: 30–95, step 5 (default 75)
  • maxWidth: 0–8000 (default 0)
edit-image
Edit image
1–20, ≤ 50 MBjpg, jpeg, png, webp, gif, tif, tiff, avif, svg
  • rotate: 0 | 90 | 180 | 270 (default 0)
  • flip: none | horizontal | vertical | both (default none)
  • aspect: free | 1:1 | 4:3 | 3:2 | 16:9 | 3:4 | 2:3 | 9:16 (default free)
  • trimTop: 0–45 (default 0)
  • trimRight: 0–45 (default 0)
  • trimBottom: 0–45 (default 0)
  • trimLeft: 0–45 (default 0)
  • format: keep | jpg | png | webp (default keep)
  • quality: 60–100, step 5 (default 90)
word-to-pdf
Word to PDF
1–5, ≤ 50 MBdocx, doc, odt, rtf, pages–
excel-to-pdf
Excel to PDF
1–5, ≤ 50 MBxlsx, xls, ods, csv, numbers–
powerpoint-to-pdf
PowerPoint to PDF
1–5, ≤ 50 MBpptx, ppt, odp, key–
numbers-to-excel
Numbers to Excel
1–5, ≤ 50 MBnumbers–
convert-office
Document converter (DOCX, ODT, XLSX, ODS …)
1–5, ≤ 50 MBdocx, doc, odt, rtf, xlsx, xls, ods, pptx, ppt, odp
  • target: docx | odt | rtf | xlsx | ods | pptx | odp (default docx)
pdf-to-word
PDF to Word
1–3, ≤ 50 MBpdf
  • mode: layout | text (default layout)
text-to-pdf
Text to PDF
1–10, ≤ 50 MBtxt, md, log
  • font: sans | mono (default sans)
  • size: 10 | 11 | 12 | 14 (default 11)
  • pageSize: a4 | letter (default a4)
extract-einvoice-xml
Extract XML from ZUGFeRD PDF
1–10, ≤ 50 MBpdf–
einvoice-to-pdf
E-invoice to PDF
1–10, ≤ 50 MBpdf, xml
  • language: auto | de | en (default auto)
csv-to-excel
CSV to Excel
1–10, ≤ 50 MBcsv, tsv, txt
  • delimiter: auto | comma | semicolon | tab | pipe (default auto)
  • decimal: auto | comma | dot (default auto)
excel-to-csv
Excel to CSV
1–10, ≤ 50 MBxlsx, xls, ods
  • delimiter: semicolon | comma | tab (default semicolon)
  • decimal: auto | comma | dot (default auto)
  • encoding: utf8bom | utf8 (default utf8bom)
  • sheets: all | first (default all)
zip-files
Create ZIP file
1–50, ≤ 50 MB*–
unzip-files
Unzip files
1, ≤ 50 MBzip–
qr-code
QR code generator
0, ≤ 1 MB*JSON text, no files: "type" (text, url, wifi, email, phone, sms, vcard, geo, event, sepa, whatsapp) with the fields of that type, plus format (png, svg, pdf), size, ecc, margin, fg, bg, transparent, style. Returns the image.
convert-data
JSON, CSV, XML, YAML converter
1–10, ≤ 20 MBjson, csv, tsv, xml, yaml, yml, txt
  • from: auto | json | csv | xml | yaml (default auto)
  • to: json | csv | xml | yaml (default json)
  • delimiter: auto | comma | semicolon | tab | pipe (default auto)
  • values: text | auto (default text)
  • decimal: dot | comma (default dot)
  • indent: 2 | 4 (default 2)
  • bom: no | yes (default no)
  • rootName: text (default root)
convert-encoding
Convert text encoding
1–20, ≤ 20 MB*
  • from: auto | utf-8 | utf-16 | windows-1252 | iso-8859-1 | iso-8859-15 | windows-1250 | iso-8859-2 (default auto)
  • to: utf-8 | utf-8-bom | utf-16le | windows-1252 | iso-8859-1 | iso-8859-15 | windows-1250 | iso-8859-2 (default utf-8)
  • newlines: keep | lf | crlf (default keep)
base64
Base64 encode and decode
1–10, ≤ 50 MB*
  • mode: encode | decode (default encode)
  • variant: standard | url (default standard)
  • wrap: none | 76 (default none)
  • uri: plain | datauri (default plain)

Usage and limits

Every call is charged to your account – just like on the website.

  • Your account’s daily free quota applies first.
  • After that credits are deducted (the month’s free credits first, then purchased ones). The cost per tool is shown in your account.
  • Failed calls cost nothing.
  • At most 15 requests per minute per IP address; beyond that you get HTTP 429.

Errors

Errors come as JSON with an error field and the matching HTTP status.

HTTP 402
{"error":"quota_exceeded"}
HTTPerrorMeaning
400too_fewToo few files for this tool.
400too_manyToo many files.
415bad_typeFile type or request format not allowed.
400bad_optionsInvalid options.
409conflictConflict with the current state.
413too_largeThe files are too large.
422too_many_pagesThe PDF has more pages than allowed for this tool.
422encryptedThe file is password-protected.
422wrong_passwordWrong password for the PDF.
422invalidThe file is damaged or unreadable.
503busyThe server is busy. Try again later.
422infectedThe virus scan found malware.
422no_einvoiceNo e-invoice found in the file.
422no_textThe PDF contains no extractable text (for example a scan).
402quota_exceededQuota and balance are used up.
429rate_limitedToo many requests. Wait a moment.
401login_requiredSign-in required.
401invalid_keyThe API key is invalid or revoked.
400bad_urlNot a valid web address.
422blocked_urlThe address is not allowed (block list).
400bad_aliasInvalid custom name.
409alias_takenCustom name already taken.
503unavailableThe tool is temporarily unavailable. Try again later.
500serverInternal error.

Privacy

The API works exactly like the website: processing in Germany, files in memory only, deleted after an hour at the latest, no logging of file names or contents.

Wandlix

Convert it.We forget it.Based in Germany.

  • MADEINGERMANY
  • Servers inGermany

E-Invoice

  • Validate e-invoice
  • Create e-invoice (XRechnung)
  • Extract XML from ZUGFeRD PDF
  • E-invoice to PDF

File & utility tools

  • Create ZIP file
  • Unzip files
  • QR code generator
  • JSON, CSV, XML, YAML converter
  • Convert text encoding
  • Base64 encode and decode

PDF tools

  • Merge PDF
  • Split PDF
  • PDF to image
  • Compress PDF
  • Make PDF searchable (OCR)
  • Protect PDF
  • Unlock PDF
  • Delete PDF pages
  • Rotate PDF
  • Add watermark to PDF
  • Add page numbers to PDF
  • Reorder PDF pages
  • Crop PDF
  • PDF to PDF/A
  • PDF to text / Markdown
  • Remove metadata
  • PDF to Word
  • Text to PDF

Image tools

  • Images to PDF
  • Image to text (OCR)
  • Convert image
  • Compress image
  • Edit image

Office to PDF

  • Word to PDF
  • Excel to PDF
  • PowerPoint to PDF
  • Numbers to Excel
  • Document converter (DOCX, ODT, XLSX, ODS …)
  • CSV to Excel
  • Excel to CSV

Popular topics

Merge PDF files  ·  Combine PDFs online  ·  Join PDF documents  ·  PDF merger  ·  Merge PDF free  ·  Split PDF online  ·  Extract pages from PDF  ·  Separate PDF pages  ·  Cut a PDF into parts  ·  Delete pages from PDF  ·  Remove pages from PDF  ·  Remove unwanted PDF pages  ·  Rotate PDF pages  ·  Rotate PDF 90 degrees  ·  Fix sideways scans  ·  Add watermark to PDF  ·  PDF watermark online  ·  Mark PDF as confidential  ·  Add page numbers to PDF  ·  Number PDF pages  ·  PDF page numbering  ·  PDF to text  ·  PDF to Markdown  ·  Extract text from PDF  ·  Compress PDF  ·  Reduce PDF file size  ·  Make PDF smaller for email  ·  PDF shrinker  ·  Password protect PDF  ·  Encrypt PDF online  ·  Lock PDF with password  ·  PDF encryption AES-256  ·  Unlock PDF  ·  Remove PDF password  ·  Remove PDF restrictions  ·  PDF password remover  ·  PDF OCR online  ·  Make scanned PDF searchable  ·  Scan to searchable PDF (OCR)  ·  PDF to JPG  ·  PDF to PNG  ·  Convert PDF pages to images  ·  Save PDF as image  ·  JPG to PDF  ·  PNG to PDF  ·  Images to PDF  ·  Photos to PDF  ·  Convert image format  ·  JPG to PNG  ·  PNG to JPG  ·  Convert to WebP  ·  Compress images  ·  Reduce image size  ·  Resize and compress photos  ·  Shrink JPG  ·  Remove metadata from PDF  ·  Remove EXIF data  ·  Delete photo location data  ·  Word to PDF  ·  DOCX to PDF  ·  Convert DOC to PDF  ·  ODT to PDF  ·  Excel to PDF  ·  XLSX to PDF  ·  CSV to PDF  ·  PowerPoint to PDF  ·  PPTX to PDF  ·  Presentation to PDF  ·  Create ZIP file  ·  ZIP files online  ·  Compress files into ZIP  ·  Validate e-invoice  ·  XRechnung validator  ·  ZUGFeRD validator  ·  Check e-invoice online  ·  Factur-X check  ·  Create e-invoice  ·  Create XRechnung  ·  Create ZUGFeRD PDF  ·  Invoice to XRechnung  ·  Numbers to Excel  ·  Numbers to XLSX  ·  Convert Numbers file  ·  Image to text  ·  OCR image online  ·  Extract text from image  ·  CSV to Excel  ·  CSV to XLSX  ·  Open CSV in Excel  ·  Excel to CSV  ·  XLSX to CSV  ·  Export Excel as CSV  ·  Convert DOCX to ODT  ·  XLSX to ODS  ·  Convert ODT to DOCX  ·  PDF to Word  ·  PDF to DOCX  ·  Edit PDF as Word  ·  Text to PDF  ·  TXT to PDF  ·  Markdown file to PDF  ·  Extract XML from ZUGFeRD  ·  Factur-X XML extract  ·  ZUGFeRD PDF to XML  ·  XRechnung to PDF  ·  Make e-invoice readable  ·  View XRechnung XML  ·  Unzip files  ·  Open ZIP archive  ·  Extract ZIP online  ·  PDF to PDF/A  ·  Convert to PDF/A  ·  PDF/A archiving  ·  Reorder PDF pages  ·  Sort PDF pages  ·  Rearrange PDF  ·  Crop PDF  ·  Cut PDF margins  ·  Trim PDF pages  ·  Crop image  ·  Rotate image  ·  Flip image  ·  QR code generator  ·  WLAN QR code  ·  QR code for link  ·  Dynamic QR code  ·  Check XRechnung online for free  ·  Check ZUGFeRD PDF for validity  ·  Validate e-invoice against EN 16931  ·  Understand e-invoice error BR-CO-15  ·  Check several e-invoices at once  ·  Create an e-invoice for small businesses  ·  Create XRechnung without software  ·  Create a ZUGFeRD invoice online  ·  Show XRechnung as a readable PDF  ·  Read XML from ZUGFeRD PDF for bookkeeping  ·  Merge PDF files for free without signing up  ·  Combine application documents into one PDF  ·  Split a PDF by page range into several files  ·  Rotate scanned PDF pages by 90 degrees and save  ·  Shrink a PDF heavily for an e-mail attachment  ·  Password protect a PDF without Adobe Acrobat  ·  Remove a PDF password permanently if you know it  ·  Turn scanned documents into a searchable PDF  ·  Copy text from a photo or screenshot  ·  Prepare PDF text for ChatGPT and AI  ·  Convert PDF to Word and edit it without signing up  ·  Combine several photos into one PDF  ·  Shrink photos for a job application portal  ·  Remove location and camera data from photos before sharing  ·  Convert Word to PDF without Microsoft Office  ·  Open a CSV file with umlauts correctly in Excel  ·  Convert PDF to PDF/A-3 for archiving  ·  Unzip a ZIP file online without a program  ·  Create a Wi-Fi QR code for guests  ·  Create a dynamic QR code and change the target later  ·  JSON to CSV  ·  CSV to JSON  ·  XML to JSON  ·  JSON to XML  ·  YAML to JSON  ·  JSON to YAML  ·  CSV to XML  ·  XML to CSV  ·  CSV to YAML  ·  Format and indent a JSON file  ·  Convert a semicolon CSV file to JSON  ·  Open JSON in Excel as a table  ·  Windows-1252 to UTF-8  ·  UTF-8 to Windows-1252  ·  ISO-8859-1 to UTF-8  ·  Fix broken umlauts in a CSV file  ·  Convert a text file to UTF-8  ·  UTF-16 to UTF-8  ·  Change line endings from CRLF to LF  ·  Save a CSV as UTF-8 with BOM for Excel  ·  Base64 encode a file  ·  Base64 decode to a file  ·  Image to Base64  ·  Base64 to image  ·  PDF to Base64  ·  Base64 to PDF  ·  File to data URI  ·  URL-safe Base64

© 2026 Wandlix · Made in Germany

Security & privacyLegal noticePrivacy policyTerms & withdrawalDPAAccessibilityPricingGuidesContactCancel contracts hereAPIIntegrationsShort linksSpeed testStatusOpen-source licenses