Connect
Connect your MIS and web-to-print
Push artwork in, request approvals, run nests and screening, and pull cut files and quotes out. The OpenAPI 3 schema is public, with Swagger and ReDoc, and API keys are per user.
On every plan
curl -sS -X POST https://automateprint.com/a/your-team/estimating/api/v1/estimates/ \
-H "Authorization: Api-Key $API_KEY" \
-F "file=@window-decal.pdf;type=application/pdf" \
-F "external_id=order-1001" \
-F "customer_name=Larkfold Studio" \
-F 'designer_link={"role": "customer", "expires_in_days": 14,
"return_url": "https://shop.example.com/orders/1001/done"}'
Returns the estimate with its designer_url: your customer traces and submits the parts, and Finish brings them back to your shop. The same external_id twice gets 409 with the existing id. Estimating API docs
import os, pathlib, requests
API = "https://automateprint.com/a/your-team/files/api/v1"
api = requests.Session()
api.headers["Authorization"] = f"Api-Key {os.environ['API_KEY']}"
files = [p for p in pathlib.Path("Larkfold").rglob("*") if p.is_file()]
paths = sorted({p.parent.as_posix() for p in files})
folders = api.post(f"{API}/folders/ensure/", json={"paths": paths}).json()["folders"]
for path in files:
with path.open("rb") as handle:
data = {"folder": folders[path.parent.as_posix()], "on_conflict": "version"}
answer = api.post(f"{API}/files/", files={"file": handle}, data=data).json()
print(path, answer["status"]) # new, version, unchanged or skipped
Missing folders are created, and a file sent again becomes its next version. Files up to 100 MiB go in one request; larger ones use an upload session. Files API docs
Today, and with AutomatePrint
Today
With AutomatePrint
Today: Orders are re-keyed from the web shop into prepress.
With AutomatePrint: Push artwork and metadata in with an external id; duplicates are refused.
Today: Someone emails the proof link by hand.
With AutomatePrint: Request approvals and read decisions over the API.
Today: Cut files are copied to the cutter's folder by hand.
With AutomatePrint: Pull print and cut files for a layout when it's ready.
In numbers
- public schema
- OpenAPI 3
- with Swagger and ReDoc
- per user
- Api-Key
- shown once, stored hashed
- API areas
- 12
How it works
-
Create a key
Under API Keys on your profile. It's shown once and acts as you.
-
Read the schema
Browse it in Swagger or ReDoc, or generate a client from the OpenAPI 3 schema in your language.
-
Push and poll
Send work in with your own ids, then poll for what changed.
Every area has an API
-
-
-
-
-
-
-
-
-
-
Equipment
Machines from presets, test cuts, tools, rate cards and die matching.
Learn more: Equipment -
-
Built for integrations
external_id on estimates, their lines and imposition jobs (a duplicate returns 409 with the existing id), free-form metadata, and polling by external_id or changed-since.
- Stable error codes with a sentence you can show people
- Idempotency keys on Files uploads and batches
- Cursor pages and ETags for safe changes
What's in it
- Files API on every plan
- Custom integration API access on Production
- OpenAPI 3 schema with Swagger and ReDoc
- API keys per user
- Polling by external_id and changed-since
- Estimates with a customer designer link in one call
- A ready-made sync script for your file server
What we don't do
- No webhooks yet: poll by external_id or changed-since.
Works with
- Quoting Quick quotes, takeoff and box quotes priced from your own machines.
- Proofing & approvals Private proof links, pinned comments, separations and signed-off approvals.
- Files One library for every customer file: folders, automatic versions, properties and private storage.
Read the docs: API overviewEstimating APIFiles API
On which plan
Compare every plan| Capability | Free | Shop | Production | Plant |
|---|---|---|---|---|
| Files API and API keys | Included | Included | Included | Included |
| Workflow REST API: approvals, preflight, prepress, imposition, nesting, marks, estimating, screening | Not included | Not included | Included | Included |
Files API on every plan; workflow APIs on Production and Plant.
FAQ
Questions, answered
Anything else? Email hello@automateprint.com and a person who knows print will answer.
How do I authenticate?
With an API key per user, sent as “Authorization: Api-Key …”. Keys are stored hashed and shown once.
Are there rate limits?
Starting nests is limited to 60 a minute per user, and estimating's nest and pricing calls to 60 a minute per user or designer link.
Webhooks?
Not yet: poll by external_id or changed-since.
Which plan?
The Files API is on every plan; the workflow APIs are on Production and Plant.
Put every job on one platform
Start free, with 14 days of every Production feature. No card, and your customers review for free.