---
title: "Start Preview"
method: POST
path: "/api/subscription/start-preview"
tags: ["subscription"]
---

# Start Preview

`POST /api/subscription/start-preview`

## Request

- Base URL: `https://api.equity-rank.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.equity-rank.com/api/subscription/start-preview`
- Auth: HTTP bearer

Start the 14-day full-access preview for a brand-new account (no card).

- 403 when FREE_TIER_ENABLED is off (feature not live).
- 409 when the user already has a subscriptions row with history (paid,
  trialing, cancelled, a Stripe customer, or a previous preview) — the
  preview is strictly once, for accounts with no subscription history. The
  blank row capture-attribution creates on first sign-in is not history;
  it is promoted in place (see _is_blank_shell_row).
- Otherwise inserts {status:'trialing', tier:'free_preview', plan:NULL,
  trial_end: now+14d} and returns {ok, trial_end}.

## Response `200`

Successful Response

- object

---

[API](https://skmtc.dev/equity-rank/apis/equity-rank-api.md) · [All operations](https://skmtc.dev/equity-rank/apis/equity-rank-api/llms.txt) · [OpenAPI document](https://skmtc.dev/equity-rank/apis/equity-rank-api/revisions/c2f2463fee33?raw)
