- Sign in (OAuth): apps such as ChatGPT and Claude open a Print.App page where you paste the key and allow access. The app never sees the key: it gets its own access, tied to that key.
- Send the key: developer tools and your own code send
Authorization: Bearer sk_…with every request.
Connect a client
- ChatGPT
- Claude
- Claude Code
- Cursor
- VS Code
- Claude API
- Codex
- OpenAI API
- In ChatGPT, add a custom MCP server (it is in developer mode; see OpenAI’s Connecting custom MCP servers in ChatGPT for where it is on your plan).
- Name it Print.App, enter the URL
https://api.print.app/mcp, and choose OAuth as the authentication. - ChatGPT opens the Print.App connect page. Paste a secret key of your store and click Allow access.
POST and keeps no sessions.
How signing in works
Clients find the sign-in on their own: a request without credentials gets a401 that points to https://api.print.app/.well-known/oauth-protected-resource/mcp, and from there to the authorization server’s metadata at https://api.print.app/.well-known/oauth-authorization-server. It supports dynamic client registration and client ID metadata documents, PKCE (S256) and refresh tokens. Access lasts an hour and the client renews it on its own; it stops within a minute of the key it was approved with being revoked.
Redirect URIs must be https addresses, as ChatGPT’s and Claude’s are. Apps that sign in through a local address (http://localhost:…) can’t register; send the key as a header from those instead.
What an agent can do
Each tool calls the REST API with your key, so the same rules, limits and errors apply. Tools that only read are marked read-only; tools that can delete are marked destructive, so clients that ask before running those will ask.
How an agent builds a design
create_designat the trim size, with bleed and a safe margin.upload_filefor logos, photos and SVG graphics.get_design_contentto read the page size and safe area, thenedit_designwith a batch of operations: text, shapes, graphics, photo frames, QR codes, calendars. The batch saves as one change, or not at all.preview_designreturns images of the pages, so the agent can look at its work and fix what it sees with anotheredit_design.set_product_designsto sell it on a store product, orcreate_editor_linkto share it.
Things to know
- Page content can only be edited on accounts that use the new editor. Others get
editor_not_supported. - SVG graphics go in as files. The firewall in front of the API refuses requests that carry markup, so an agent should upload an SVG with
upload_fileand place it as anasset, not write SVG into an operation. It stays vector in print. A tool call with SVG or HTML in its arguments fails with an HTTP403before it reaches the server, so the client reports a connection error rather than a tool error. - Fonts must be families your account has.
list_fontslists them;manage_fontimports any Google font. - Previews are redrawn each time a design is saved. They are for checking a layout; the PDF is made from the design itself.