Peak Beak Print
Sellers

Put your store on your own website

Every option below shows your live products. Customers always check out on print.peakbeak.com, where payment is taken by Stripe before anything is printed. You're paid for those sales the same way as sales from your store link. Replace your-store with your store link from the seller dashboard.

1. Any website (recommended)

Paste this where the products should appear. It loads a product grid that resizes itself to fit.

<div data-peakbeak-store="your-store"></div>
<script src="https://print.peakbeak.com/embed.js" async></script>

You can place several stores on one page by adding more divs. The script only needs to be included once.

2. WordPress

  1. Download the plugin.
  2. Plugins → Add New → Upload Plugin, choose the zip, then Activate.
  3. Settings → Peak Beak Print: enter your store link and save.
  4. Add a Shortcode block to any page: [peakbeak_store]
ShortcodeWhat it does
[peakbeak_store]Your store from Settings
[peakbeak_store store="another-store"]A specific store
[peakbeak_store mode="iframe" height="1200"]Plain iframe, for sites that block outside scripts

On WordPress.com plans that don't allow plugins, use a Custom HTML block with the code from option 1.

3. Wix, Squarespace and other site builders

Add an embed or code block (Wix: Embed HTML; Squarespace: Code block) and paste:

<iframe src="https://print.peakbeak.com/embed/?store=your-store" title="Shop" loading="lazy" style="width:100%;height:1200px;border:0"></iframe>

Change the height to fit how many products you have. Wix and Squarespace also accept the option 1 code.

4. JSON API

Build your own layout with a public, read-only endpoint. It requires no key, allows requests from any website (CORS), and is cached for 60 seconds.

GET https://us-central1-peak-beak-proposals.cloudfunctions.net/printStoreApi?store=your-store

Response

{
  "store": { "name": "Acme Coffee", "slug": "acme-coffee", "bio": "…", "url": "https://print.peakbeak.com/s/acme-coffee/" },
  "products": [
    {
      "id": "abc123",
      "title": "Acme Logo Tee",
      "description": "…",
      "productType": "Unisex Heavy Cotton Tee",
      "priceFrom": { "amountCents": 2499, "currency": "USD", "formatted": "$24.99" },
      "colors": ["White", "Black"],
      "sizes": ["S", "M", "L", "XL"],
      "artworkUrl": "https://…",
      "productImages": ["https://… (photos of the blank product)"],
      "buyUrl": "https://print.peakbeak.com/s/acme-coffee/?item=abc123"
    }
  ],
  "embed": { "script": "https://print.peakbeak.com/embed.js", "iframe": "https://print.peakbeak.com/embed/?store=acme-coffee" },
  "checkout": "Customers pay on print.peakbeak.com. Use buyUrl for each product."
}

Example

fetch("https://us-central1-peak-beak-proposals.cloudfunctions.net/printStoreApi?store=your-store")
  .then(r => r.json())
  .then(({ products }) => {
    document.querySelector("#shop").innerHTML = products.map(p =>
      `<a href="${p.buyUrl}"><img src="${p.productImages[0] || p.artworkUrl}" alt="">${p.title}: from ${p.priceFrom.formatted}</a>`
    ).join("");
  });

Errors

StatusMeaning
400Missing or invalid store
404No live store with that link (not set up, payouts not verified, or suspended)
429Too many requests (limit: 300 per 15 minutes per visitor IP)

Each error body is {"error": "message"}. Prices, products and availability can change, so don't store them for long. Orders can't be placed through the API: send customers to buyUrl.

Need help? hello@peakbeak.com