TEASEDocs
ProductsLinkLanding-page builder

Build a teaser card stack/carousel

Show up to 8 locked previews with swipe or pin instead of one teaser tile.

Instead of a single button teaser tile, the stack section of POST /api/admin/bg/ui renders a deck of up to 8 locked preview cards a visitor can page through — sticky (top card stays, next one slides over), pinned-swap, or a plain carousel.

Set up the stack

curl -X POST "https://app.tease.link/api/admin/bg/ui?domain=links.creator.com" \
  -H "Authorization: Bearer $TEASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "stack": {
      "enabled": true,
      "mode": "pinned_swap",
      "direction": "horizontal",
      "gap": 20,
      "snap": true,
      "dots": { "on": true, "position": "bottom", "style": "bar" },
      "cards": [
        {
          "src": "teaser_0123456789abcdef.webp",
          "title": "New shower set",
          "subtitle": "12 photos",
          "lock": true,
          "lock_label": "$8",
          "href": "https://onlyfans.com/creator"
        },
        {
          "src": "teaser_fedcba9876543210.mp4",
          "kind": "video",
          "poster": "teaserp_fedcba9876543210.webp",
          "title": "Behind the scenes",
          "lock": true,
          "lock_label": "FREE"
        }
      ]
    }
  }'
KeyMeaning
modesticky (default) — top card sticks, next slides over it; pinned_swap; carousel
directiondown (default), up, horizontal
stick, gap, spinesPixel offsets for the sticky effect (0–160), gap between cards (0–96), and how many card edges peek out behind the top one (1–8)
snapSnap-scroll between cards
scale / translate / rotate / fadeOptional depth effects for cards behind the top one, each { "on": true, "strength": 0–1 }
dotsProgress indicator: { on, position: right/left/bottom, style: dot/bar/ring, active, inactive } colors
cards[].srcAn uploaded teaser image (.webp) or video (.mp4) filename
cards[].kind"video" — must match a .mp4 src
cards[].title, .subtitleUp to 60 / 120 characters
cards[].lock, .lock_labelLock badge with caption, up to 24 characters
cards[].hrefOptional per-card link (http(s) only); without one the card isn't clickable on its own

Cards with no src are rejected — every card needs an image or video. { "stack": null } (or an empty cards list with enabled omitted) removes the stack.

Confirm it worked

ui.stack.cards in the response should list your cards in order. On the published/preview page, swipe or click through — the configured mode/direction should match what you see, and each card's lock badge and caption should render as set.

What's next

On this page