Skip to main content

Partnerships & integrations

WebFileTools API for your products

Automate file processing in your B2B apps, internal workflows, or white-label offers. Bearer API keys, documented quotas, job webhooks, and copy-paste examples.

Use cases

Document SaaS

Add PDF→Word, compression, and OCR to your import flow without maintaining LibreOffice or Tesseract.

  • POST /api/v1/process/compress-pdf
  • POST /api/v1/process/pdf-to-images
  • POST /api/v1/process/ocr

No-code automation

Zapier, Make, or cron scripts: upload via API key, retrieve the download link as JSON.

  • POST /api/upload
  • GET /api/v1/process/...

Client portal / MSP

Offer file sharing and PDF processing under your brand via iframe widgets or headless API.

  • POST /api/upload
  • Embeds /embed/*

SDK examples

cURL — compress a PDF

curl -X POST "https://webfiletools.com/api/v1/process/compress-pdf" \
  -H "Authorization: Bearer wft_YOUR_KEY" \
  -F "file=@document.pdf" \
  -o document-compressed.pdf

Node.js — upload + public link

const form = new FormData();
form.append("file", blob, "photo.jpg");

const res = await fetch("https://webfiletools.com/api/upload", {
  method: "POST",
  headers: { Authorization: "Bearer wft_YOUR_KEY" },
  body: form,
});
const { url, token } = await res.json();
console.log("Share link:", url);

Python — async OCR (job polling)

import requests, time

r = requests.post(
    "https://webfiletools.com/api/v1/process/ocr",
    headers={"Authorization": "Bearer " + API_KEY},
    files={"file": open("scan.png", "rb")},
)
job = r.json()
job_id, token = job["jobId"], job["ownerToken"]

while True:
    st = requests.get(
        f"https://webfiletools.com/api/jobs/{job_id}",
        headers={"X-Job-Token": token},
    ).json()
    if st["status"] == "done":
        break
    time.sleep(2)

Full documentation: /en/api-docs

Pro plan & volume

Unlimited API quota, 500 MB files, and priority webhooks with the Pro plan (coming soon). High-volume partners can request a dedicated SLA via /en/contact.