Recipe: a small shop
A complete request body for a shop: the current drop, categories as cards, delivery info, support chat.
A shop page is a set of doors. Each card is one door; the first is whatever is new this week.
{
"username": "salt-ceramics",
"locale": "en",
"page": {
"displayName": "Salt Ceramics",
"bio": "Hand-thrown tableware, fired in Porto. New drop every first Friday.",
"templateId": "showcase",
"layout": "grid",
"theme": {
"accent": "#C25B2A"
},
"utm": true,
"blocks": [
{
"type": "link",
"label": "October drop",
"url": "https://saltceramics.example/collections/october",
"featured": true,
"badge": "New",
"path": "drop"
},
{
"type": "link",
"label": "Mugs",
"url": "https://saltceramics.example/collections/mugs"
},
{
"type": "link",
"label": "Plates and bowls",
"url": "https://saltceramics.example/collections/plates"
},
{
"type": "link",
"label": "Gift cards",
"url": "https://saltceramics.example/products/gift-card"
},
{
"type": "text",
"variant": "paragraph",
"content": "Ships worldwide from Portugal. EU orders arrive in 3–5 days."
},
{
"type": "messenger",
"platform": "whatsapp",
"handle": "+351912345678",
"label": "Order help"
},
{
"type": "socialRow",
"items": [
{
"platform": "instagram",
"url": "https://instagram.com/saltceramics"
},
{
"platform": "pinterest",
"url": "https://pinterest.com/saltceramics"
},
{
"platform": "etsy",
"url": "https://etsy.com/shop/saltceramics"
}
]
}
]
},
"avatarUrl": "https://example.com/salt.png"
}Why it is shaped this way
showcase+gridturns links into product cards; upload one photo per category askind: "card"and setimageon each.utm: truebecause a shop owner wants to see Tapmy traffic in their own store analytics.- The drop has a short path (
/drop) for the packaging insert. - Shipping info as text, once, above the support button — the question it answers is the one people would otherwise ask.
Replace every URL and every word with the person's own. Then POST https://tapmy.link/api/agent/pages, read page.md, hand over.