---
title: "Record Idea Abandoned"
method: POST
path: "/v1/me/idea-abandoned"
---

# Record Idea Abandoned

`POST /v1/me/idea-abandoned`

## Request

- Base URL: `https://api.quantradin.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.quantradin.com/v1/me/idea-abandoned`
- Auth: none declared

ONE `vega_events` row `idea_abandoned` when a member leaves the
talk-build card after exactly one test (no second test, no deploy).

Sent by `navigator.sendBeacon` from pagehide / visibilitychange, so the
body arrives as text/plain (a CORS-safelisted type — a beacon cannot
make a preflight) and is parsed here as JSON.

  - SESSION ONLY (the cookie): an API key or account pair gets 401 —
    this is the browser's own page lifecycle, nothing else sends it.
  - user_id from the session, never the body.
  - `idea_text` is cut to IDEA_TEXT_MAX chars; `verdict`/`surface` are
    whitelisted; the whole body is size-capped.
  - IDEMPOTENT per `page_session`: a second beacon for the same page
    session (pagehide AND visibilitychange both fire on many browsers)
    writes nothing.
  - Server-written only — deliberately NOT in `_EVENT_NAMES`, so the
    raw-text event cannot be forged anonymously through /v1/events.
The raw words stay FIRST-PARTY: the web sends PostHog only the verdict,
the length and a hash prefix.

## Response `204`

Successful Response

---

[API](https://skmtc.dev/quantradin/apis/vega-api.md) · [All operations](https://skmtc.dev/quantradin/apis/vega-api/llms.txt) · [OpenAPI document](https://skmtc.dev/quantradin/apis/vega-api/revisions/47add154ef38?raw)
