---
title: "Record Attribution"
method: POST
path: "/api/auth/attribution"
---

# Record Attribution

`POST /api/auth/attribution`

## Request

- Base URL: `https://api.openshorts.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openshorts.app/api/auth/attribution`
- Auth: none declared

Record where a brand-new account came from. First touch wins.

Fire-and-forget from the client right after sign-in: it never fails the
sign-up, it just returns ``recorded: false`` when the row already exists or
the account is too old to be a genuine sign-up.

## Request body

- AttributionPayload
  - `referrer` string, nullable
  - `landing_path` string, nullable
  - `utm_source` string, nullable
  - `utm_medium` string, nullable
  - `utm_campaign` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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