Skip to main content

Sales catalog (interactive PDF)

Stop emailing a stale PDF line sheet. Publish an interactive catalog that reps and buyers can browse, search, and zoom, backed by a board you update in one place. It behaves like an interactive PDF, but it is always current, and buyers can still download the originals when they need a file.

An interactive sales catalog built on the Playbook API
Live preview

Open the interactive preview →  ·  a self-contained index.html you can click through in your browser (flip through pages, browse styles) or download.

The flow

  1. Build the line sheet on a board, one asset per style.
  2. Tag each style with fields buyers care about (style number, wholesale price, availability).
  3. Publish it as an interactive catalog link, and embed it in your sales portal.
  4. Let buyers download originals or spec sheets on demand.

1. Build the line sheet board

curl -X POST "https://api.playbook.com/v1/$ORG/boards" \
-H "Authorization: Bearer $PLAYBOOK_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "title": "Fall 2026 Line Sheet", "description": "Wholesale catalog for sales reps" }'

Add each style with batch upload, passing the board's token. Attach the fields reps quote from:

curl -X POST "https://api.playbook.com/v1/$ORG/assets/batch_create_from_urls" \
-H "Authorization: Bearer $PLAYBOOK_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"batch": {
"collection_token": "fall-2026-line-sheet",
"assets": [
{
"uuid": "1",
"uri": "https://example.com/line/coat-01.jpg",
"title": "Belted Wool Coat",
"fields": { "Style No": "F26-114", "Wholesale": "142.00", "MOQ": "6" }
}
]
}
}'

2. Publish the interactive catalog

Publishing turns the board into a hosted, searchable, zoomable catalog. This is your interactive PDF, no export step, no version drift.

curl -X POST "https://api.playbook.com/v1/$ORG/boards/fall-2026-line-sheet/publish" \
-H "Authorization: Bearer $PLAYBOOK_TOKEN"
{ "data": { "url": "https://playbook.com/p/your-org/fall-2026-line-sheet" } }

Send reps the link, or embed it in your sales portal:

<iframe
src="https://playbook.com/p/your-org/fall-2026-line-sheet"
style="width:100%;height:900px;border:0"
title="Sales catalog"
></iframe>

Update the board and every open catalog reflects it immediately. For a link-gated catalog instead of a fully public one, use POST /v1/$ORG/boards/fall-2026-line-sheet/share. See published vs. shared.

3. Let buyers download a style

When a buyer wants the high-res image or a spec sheet, hand them the original through the shared-download endpoint with the catalog's share slug:

download.ts
const ORG = "your-org";
const TOKEN = process.env.PLAYBOOK_TOKEN!;

async function styleDownloadUrl(assetToken: string, shareSlug: string) {
const res = await fetch(
`https://api.playbook.com/v1/shared/${ORG}/assets/${assetToken}/download?sharedlinkslug=${shareSlug}`,
{ headers: { Authorization: `Bearer ${TOKEN}` } },
);
const { data } = await res.json();
return data.raw_url; // full-resolution original
}