---
title: "Preview Variants"
method: GET
path: "/v1/events/preview-variants"
---

# Preview Variants

`GET /v1/events/preview-variants`

## Request

- Base URL: `https://api.shortkit.dev` (the document declares no server; this is the origin it was published from)
- URL: `https://api.shortkit.dev/v1/events/preview-variants`
- Auth: none declared

Preview-window A/B read-out: inline preview starts and tap-throughs per `previewVariant`.

The SDKs echo the server-chosen window's `variant` label on `inlinePreviewStart`
and `inlineTap` (`event_data.previewVariant`, spec
docs/superpowers/specs/2026-11-02-server-preview-windows-design.md). This groups
those events by that label over the timeframe so two preview-selection strategies
can be compared by tap-through, without new storage: the label already lives in
`events.event_data`.

`taps` counts TAP-THROUGHS only — `inlineTap` rows whose `action` is `feed` or
`host` (the card opened the feed or handed the tap to the host). Mute, fullscreen
and `none` taps are card chrome, not conversion, and are excluded so `tap_rate`
(= taps / preview_starts) reads as a rate and cannot exceed 1 through chrome taps.
Rows with no label (old SDKs, no window) land in the `null` row. `by_surface=true`
splits each label by the emitting surface (`tileGroup`, `widget`, `player`);
`content_id` narrows to one item.

Cost: this is a grouped scan of the org's inline events in the window (served by
`ix_events_org_timestamp`; `event_type` is only an INCLUDE column on
`ix_events_org_ts_vsid`, so the type filter trims heap fetches but the scan is still
proportional to the org's events in the window), so the window is capped at
the last 31 days — an A/B is read over days, not quarters — and `timeframe` in the
response says what was actually used. A partial index is the step beyond this cap
(hot-table DDL, out-of-band), deliberately not taken here.

## Query parameters

- `content_id` string, nullable
- `by_surface` boolean
- `limit` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-04** `7c7a51b84821`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/shortkit/apis/shortkit-api/changes/v1/events/preview-variants/get.md)

---

[API](https://skmtc.dev/shortkit/apis/shortkit-api.md) - [All operations](https://skmtc.dev/shortkit/apis/shortkit-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shortkit/apis/shortkit-api/revisions/82ba66751b25?raw)
