Skip to main content
The Print.App REST API lets your server read your account’s data, for example to check that a project a customer is ordering really belongs to your store before you fulfil it.
The API is server-to-server. Call it from your backend with a secret key, never from browser code. In the browser, the editor runs with your public Domain Key as before.

Base URL

Authentication

Send a secret key as a bearer token on every request:
Create secret keys in the Print.App admin. See Authentication.

Endpoints

To put these together into an order check, follow Verify a project before fulfilling. To be told when a project is created or a file is uploaded rather than asking, use webhooks. Turn on signing so your server can check that each one comes from Print.App.

Conventions

  • JSON request and response bodies, UTF-8, with camelCase field names.
  • Every object carries an object field naming its type ("project", "account", "list").
  • Timestamps are ISO-8601 in UTC, for example 2026-10-17T09:12:03Z.
  • IDs keep their prefixes: dom_… for your account (your Domain Key), project_… for projects, design_… for designs.
  • Every response carries an x-request-id header. Quote it when you contact support.
  • Errors share one shape: see Errors & rate limits.
  • Lists are paged with a cursor: see Pagination.

Versioning

The version is in the path (/v2). Within v2, changes are additive only: new endpoints, new optional parameters, new fields in responses and new error codes. Write your client to ignore fields it doesn’t know.
The older v1 endpoints that the store plugins use, authenticated with the Auth Key, keep working unchanged. New integrations should use v2.