Social Print Studio — Developer Integration

This is the starting point for AI agents, LLMs, and developers to build photo-printing apps that submit orders to Social Print Studio — or integrate printing features into existing applications.

The goal: you build creative applications (anything from niche tools to mainstream flows), collect or generate images for a customer, and then hand off an order to Social Print Studio through our cart and checkout system.

Our docs are written and organized to be readable by agents & LLMs. Just share this link with your LLM or agent and say “get the info you need to add print features to this application.”

Fast Start for LLMs

Three essential resources to get started immediately:

  1. Fetch the catalog: GET https://printkit.dev/products.json
  2. For each product: GET https://printkit.dev/products/{handle}.json
  3. Follow order handoff: See Order Handoff API

What’s in Here

You’ll typically use three layers of documentation:

1. Product Catalog (overview)

A single JSON file listing all products currently available for integration. It includes product descriptions, website URLs, product type and category, product photos, and high-level submission notes.

See the Product Catalog docs for details.

GEThttps://printkit.dev/products.json

2. Per-Product Detail Files (variant-level requirements)

Each product has a dedicated JSON file with complete, precise requirements. This is the source of truth for variants (sizes and options), required image count, required aspect ratios and crop ratios per variant, and any print-specific submission constraints.

GEThttps://printkit.dev/products/{handle}.json

3. Variant Index (flat SKU lookup)

Use the normalized variant index when you want the fastest machine-friendly path to a SKU. It exposes stable fields like size, style, exact_image_count, and normalized_image_ratio across the whole catalog.

GEThttps://printkit.dev/variants.json

4. Order Submission + Image Upload (technical integration)

These docs cover how to submit an order and, optionally, how to upload images if you need hosting.

5. Authentication & API Keys (optional)

No account required to use PrintKit. Register to unlock order tracking, a revenue split on completed orders, and hosted cart integrations. AI agents can self-register in one API call. When you have a key, pass it as an Authorization: Bearer <key> header — the API validates it and uses it for attribution. Invalid keys return 401; omitting the header is fine.

See Authentication & API Keys.

How to integrate printing features into your application, step by step:

  1. Read the product catalog file, products.json, to understand what exists, get ideas, and pick the product(s) you want to integrate or evaluate more deeply.
  2. Open the specific per-product JSON file(s) for the product you’re implementing using the product handle from the catalog file.
  3. Reference a specific product variant by its unique sku from the product JSON file. This is the SKU that will be used to submit the order.
  4. Implement your UX and validation based on the exact variant requirements: image count, aspect ratio and crop rules, and any specific submission constraints.
  5. Integrate order submission via the Order Handoff API.
  6. If your app is frontend-only (no backend), use the Image Upload API to upload images and get public URLs, since all order submissions require publicly accessible image URLs.
  7. Once the implementation is complete, the user should be able to create a product in your application and submit it. By default, they’ll land on our cart page to review and check out. If your app sells a single product or you want a faster handoff, you can set "checkout": true to skip the cart and send the customer straight to checkout — see Direct Checkout.

Product Model: Quick Mental Map

Products generally fall into two practical buckets:

Single-image products

A single photo asset becomes a single printed item per selected variant. Examples: metal prints, wood prints, framed prints.

Integration implication: collect one or more images plus a variant choice, then submit. Multiple images will be printed individually — 3 photos uploaded will result in 3 unique items added to cart with one API call.

Multi-image / set-based products

A customer selects a variant that implies a set size, and you collect that many photos. Most set-based products don’t care about photo order, but some products like photo books use the order of photos submitted as the order they are printed.

Example: magnets that come in a set of 10 for a given size.

Integration implication: collect exactly N images (the count depends on the variant), then submit as a single product. The catalog tells you the general behavior; the per-product JSON defines the exact requirements for each variant.

Important Rules

The per-product JSON is the source of truth

The catalog is an overview. Your integration should rely on the detailed product file for correctness, not the catalog summary.

Validate inputs before submission

If a variant requires 10 images at 1:1 ratio, your UI should enforce that before submission. Don’t rely on the API to catch mismatches.

Use exact crop ratios

Use the exact aspect ratio and crop requirements specified in the product’s variant definitions. Estimates or rounded values may result in incorrect cropping.

General Guidance for Building Great Apps

We don’t recommend building a full “everything photo printing store” UI with lots of products and endless options. The integrations work best when you:

Attribution / App Identity

When your app submits an order through our cart handoff, it includes an source identifier. That identifier is used for attribution so we can understand which orders came from which app, and support tracking and reporting as needed.

Pick a consistent, descriptive identifier for your app and use it on every request. For example: "my-photo-app", "wedding-album-tool".

Downloadable Markdown files you can bring into your code repo for easy reference:

Machine-readable product data: