REST API
Submit a file to the API with your key and receive the full preflight result as JSON. Ideal for connecting a web-to-print portal, an MIS, or a custom intake app so every incoming job is checked programmatically.
A REST API and hot-folder intake for automated packaging and label preflight. Send a file, get a structured JSON report and a PASS, CONDITIONAL_PASS, or FAIL verdict, wired into the MIS and prepress systems you already run.
Preflight.art offers a REST API and a hot-folder intake for automated print preflight, available on the Enterprise plan. Send a packaging or label PDF and it returns a structured JSON report covering spot colors and plate count, dieline dimensions, bleed, barcode check-digit validation, image resolution, total ink coverage, and a PASS, CONDITIONAL_PASS, or FAIL verdict. File checks run automatically inside your workflow instead of one file at a time on a desktop.
Submit a file to the API with your key and receive the full preflight result as JSON. Ideal for connecting a web-to-print portal, an MIS, or a custom intake app so every incoming job is checked programmatically.
Point a watched folder at Preflight. Files dropped in are picked up, analyzed, and returned with a report, no code required. The fastest way to automate intake for a team already working from shared folders.
All requests go to the /v1 base over HTTPS and carry your API key in an x-api-key header (not an Authorization bearer token). Keys are issued on the Enterprise plan and managed self-serve from your account.
| Method | Path | Description |
|---|---|---|
| GET | /v1/profiles | List the print profiles available to your key. |
| POST | /v1/preflight | Submit a file (multipart) for preflight. Returns a job id and poll URL. |
| GET | /v1/preflight/{id}/status | Job status, progress, and verdict. |
| GET | /v1/preflight/{id}/report | Full structured findings as JSON. |
| GET | /v1/preflight/{id}/pdf | Rendered PDF report. |
| GET | /v1/preflight/{id}/source | Download the original uploaded file. |
| GET | /v1/preflight/{id} | Full job record. |
| DELETE | /v1/preflight/{id} | Delete a job and its stored file. |
| POST | /v1/webhooks/test | Send a test event to your configured webhook. |
| GET | /v1/webhooks/events | List recent webhook delivery attempts. |
Full request and response schemas: /v1/openapi.json
Submit a file, then fetch the report once the job is complete. Examples in curl, JavaScript, and Python are in the quickstart.
Full reference: /v1/docs · OpenAPI spec: /v1/openapi.json
Pass a profile with each submission so checks are calibrated to the print method. Fetch the live list any time from GET /v1/profiles.
Rather than poll, subscribe to the preflight.completed event and Preflight will POST to your endpoint when a job finishes, with the verdict and counts attached. Send yourself a test event with POST /v1/webhooks/test, and review recent deliveries with GET /v1/webhooks/events.
Errors return the matching HTTP status and a JSON body with a stable code and a human-readable message. Requests are rate limited per plan; exceeding a limit returns 429.
| HTTP | Code | Meaning |
|---|---|---|
| 401 | API_KEY_REQUIRED | Missing, malformed, or unrecognized x-api-key header. |
| 403 | NOT_AVAILABLE_ON_THIS_PLAN | The key's plan does not include API access. The API is Enterprise-only. |
| 403 | IP_NOT_ALLOWED | Request came from an IP outside the key's allowlist. |
| 400 | INVALID_PROFILE | Unknown profile id. Use one returned by GET /v1/profiles. |
| 400 | INVALID_PDF | The uploaded file could not be read as a valid PDF. |
| 413 | PAYLOAD_TOO_LARGE | The uploaded file exceeds the size limit. |
| 404 | JOB_NOT_FOUND | No job with that id exists for this key. |
| 409 | NOT_READY | The report is not finished yet. Poll status first. |
| 429 | RATE_LIMIT_HOURLY / RATE_LIMIT_DAILY | Too many requests for the plan's limit. |
Full error reference: /v1/errors
Most ways of automating preflight sit at an extreme: script a desktop plug-in that was never built for unattended use, or commission an enterprise server with a heavy license and a months-long IT deployment. The Preflight API delivers automated, workflow-connected checks as a cloud service, with packaging-native analysis and an AI validation layer neither of those typically includes.
| Approach | Preflight API | Scripting a desktop tool | Enterprise preflight server |
|---|---|---|---|
| Integration | REST API + hot folder, connects to MIS / prepress | Hot-folder add-ons bolted onto a per-seat app | Deep, but engineered and billed per change |
| Where it runs | Cloud. Nothing to install or maintain | A machine per seat, kept running manually | On-site server plus desktop software |
| Output | Structured JSON + shareable report | Report file, not always machine-readable | Structured, format varies by system |
| Packaging-native checks | Yes. Dieline, spot plates, bleed by profile | Generic PDF rules, tuned by hand | Yes, with configuration |
| AI validation layer | Yes. Cross-checks the report before it's returned | No | No |
| Setup | Guided, typically live in about two weeks | Per-seat install and scripting | Multi-month deployment |
| Commercials | Included with the Enterprise plan | Per seat, per year | License plus deployment, five and six figures |
Third-party positioning is indicative, based on publicly available information. Product and company names are trademarks of their respective owners.
The API and hot folder are part of the Enterprise plan. Tell us about your systems and the files you handle, and we will provision a key and scope the connection to your workflow.