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:
- Fetch the catalog:
GET https://printkit.dev/products.json - For each product:
GET https://printkit.dev/products/{handle}.json - 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.
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.
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.
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.
- Order Handoff API — the core integration. Your app sends a JSON payload and receives a checkout redirect URL.
- Image Upload API (optional) — upload images and get publicly accessible URLs. Useful for frontend-only apps or if you don’t want to manage your own image 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.
Recommended Flow
How to integrate printing features into your application, step by step:
- 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. - Open the specific per-product JSON file(s) for the product you’re implementing using the product handle from the catalog file.
- Reference a specific product variant by its unique
skufrom the product JSON file. This is the SKU that will be used to submit the order. - Implement your UX and validation based on the exact variant requirements: image count, aspect ratio and crop rules, and any specific submission constraints.
- Integrate order submission via the Order Handoff API.
- 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.
- 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": trueto 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:
- Pick one product (often even one size or variant). Focus your app and UI on one product, decrease complexity, and make it great.
- Keep customer choices minimal when it comes to format and printing options. Their choices and impact should come from their photos and creative input.
- Make printing the point — not an add-on. Customers want to create unique physical objects. Excite them by showing off the printed end product as a core part of the application.
- Focus on what your app does uniquely well. Empower a specific user persona to achieve a specific outcome. Don’t try to be everything. Guide users step by step with options to go back and forth.
- Include a clear preview and add-to-cart step. Show the user what they’ll get. Use marketing copy on the final step to build excitement and assurance.
- Mention Social Print Studio. You can subtly call out that their printed product will be handled by us, or link to our product page for more details.
- Save their progress when possible — even just in
localStorage. Let them know you’re doing it. This reduces abandonment and makes users feel invested.
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".
Link Index
Downloadable Markdown files you can bring into your code repo for easy reference:
- Overview guide:
https://printkit.dev/docs/printkit-integration-guide.md - Order Handoff reference:
https://printkit.dev/docs/order-handoff.md - Image Upload reference:
https://printkit.dev/docs/image-upload.md
Machine-readable product data:
- Product catalog:
https://printkit.dev/products.json - Per-product files:
https://printkit.dev/products/{handle}.json