PDF tools for humansREST on the same host at /v1

PDFTrusted API

PDF tools as a REST API

One host for docs and REST. Upload to R2, process with the same engines as pdftrusted.com, then poll or receive a signed webhook — without putting secrets in the browser.

POST https://api.pdftrusted.com/v1/files/upload-url
Authorization: Bearer pt_live_…
→ { file_id, upload_url }

PUT  upload_url   (PDF bytes → R2)
POST /v1/ocr      { file_id, page_count, webhook_url? }
GET  /v1/jobs/{id}

Request workflow

Four steps — same pattern for compress, merge, OCR, and AI. See the API reference for parameters.

  1. Upload URL

    POST /v1/files/upload-url → file_id + presigned R2 PUT

  2. PUT bytes

    Upload the PDF directly to R2 (no key in the PUT body)

  3. Start job

    POST /v1/ocr or /v1/pdf/{op} with Bearer pt_live_…

  4. Poll or webhook

    GET /v1/jobs/{id} or webhook_url with HMAC signature

Operations

Live MVP endpoints. Image and e-sign REST are out of scope — PDF, OCR, and AI only.

Try it

Create a key in the developer console (Pro), then run the sample.

import PDFTrusted from "@pdftrusted/sdk";

const pdf = new PDFTrusted({ apiKey: process.env.PDFTRUSTED_API_KEY });
const up = await pdf.createUploadUrl({
  filename: "doc.pdf",
  size: bytes.length,
});
await pdf.putFile(up.upload_url, bytes, "application/pdf");
const job = await pdf.ocr({ fileId: up.file_id, pageCount: 12 });
const done = await pdf.waitForJob(job.job_id);
console.log(done.status, done.result);