LintPDF LintPDF

Preflight Modes

Three ways to submit a PDF — engine, external, minimal — and when to pick each.

Preflight Modes

Every PDF you submit to LintPDF runs in one of three modes. Pick the right mode on submission with the preflight_source form field on POST /api/v1/jobs.

Modepreflight_sourceWhat runsFindings sourceTypical latency
Engine (default)engineFull 500+ analyzer pipelineLintPDF engine3–45 s depending on file
ExternalexternalNo analyzers — imports findings from your existing preflight toolYour tool (PitStop, callas, Acrobat, or custom)<3 s
MinimalminimalViewer-only extraction (pages, geometry, metadata)No findings<2 s

All three modes produce a job you can open in the interactive viewer. Engine mode populates every capability; external and minimal modes start with a subset and can fill in specific capabilities on demand. See Viewer Capabilities & On-Demand Fill-In for the mechanics.

Engine mode — the default

Engine mode runs the full LintPDF preflight pipeline: font embedding, color spaces, image resolution, transparency, page geometry, PDF/X and PDF/A conformance, barcode grading, overprint — every one of the 500+ checks referenced in the Checks Reference. Pick engine mode when LintPDF is your preflight engine of record.

curl -X POST https://api.lintpdf.com/api/v1/jobs \
  -H "Authorization: Bearer lpdf_live_..." \
  -F file=@brochure.pdf \
  -F profile_id=lintpdf-default
# preflight_source=engine is implicit

External mode — bring your own preflight

External mode accepts a PDF plus a preflight report you already produced with Enfocus PitStop, callas pdfToolbox, Adobe Acrobat Preflight, or a proprietary tool. LintPDF parses your report into canonical findings and renders them in the viewer and reports exactly as if our engine had produced them — so your operators keep their familiar preflight tool upstream and your stakeholders get LintPDF’s interactive viewer, branded PDF output, and share links downstream.

curl -X POST https://api.lintpdf.com/api/v1/jobs \
  -H "Authorization: Bearer lpdf_live_..." \
  -F file=@brochure.pdf \
  -F external_report=@pitstop-report.xml \
  -F preflight_source=external \
  -F external_format=pitstop_xml

Supported built-in formats: pitstop_xml, callas_json, callas_xml, acrobat_xml, lintpdf_json. Omit external_format to let auto-detection pick. If your tool emits a proprietary shape, see Custom Import Mappings — a tenant-defined mapping teaches LintPDF how to read it without us shipping a new parser.

Full walkthrough: External Preflight Imports.

Minimal mode — viewer only

Minimal mode runs nothing. You submit a PDF, we extract page count, page geometry (media/crop/trim/bleed boxes, rotation), and document metadata, and that’s it — the viewer opens immediately with page navigation, zoom, and download. Pick minimal when:

  • You want to share a PDF with a stakeholder and let them choose which tools to invoke.
  • You’re embedding the viewer and need a fast open on files that will be reviewed manually.
  • You don’t have preflight findings but still want branded, anonymized, or tokenized sharing.
curl -X POST https://api.lintpdf.com/api/v1/jobs \
  -H "Authorization: Bearer lpdf_live_..." \
  -F file=@brochure.pdf \
  -F preflight_source=minimal

On the resulting job the viewer surfaces the five fillable capabilities (separations, TAC, fonts, images — and findings via a full engine run) as Load buttons. One click runs the single analyzer that fills that capability, keeping the one-click cost under a full engine run. See Viewer Capabilities.

Cost and counting

Every job counts as one “file processed” against your plan regardless of mode. Capability fill-in runs (requested from the viewer) are counted separately, one per analyzer invocation — typically cheaper than a full engine run. See Pricing for plan limits and overage rates.

Plan-level gating

Some plans restrict which preflight_source values a tenant may submit. The Viewer tier, for example, is sized around minimal / external workflows only and forbids engine submissions. The restriction is enforced at the submit route — attempts return 403 plan_upgrade_required with a structured envelope that dashboards render as an inline upgrade CTA.

PlanengineexternalminimalCapability fill-inReport downloadsAnnotations
FreeJSON only
Viewer✗ (viewer link only)
Starter / Growth / Scale / EnterprisePDF / JSON / XML (+ annotated PDF on Scale+)

Picking a mode

  • Your shop runs PitStop / callas / Acrobat today → external mode, feed us the native report.
  • Your shop runs a proprietary preflight tool → external mode with a custom mapping.
  • You’re building an approval workflow and want the viewer without findings up front → minimal mode + on-demand capability fill-in.
  • Everything else → engine mode.