---
title: "POST /tracking/attribution"
method: POST
path: "/tracking/attribution"
tags: ["tracking"]
---

# POST /tracking/attribution

`POST /tracking/attribution`

## Request

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

## Request body

- StoreAttributionDto
  - `email` string, email, required
  - `capture` 'utm' | 'referrer' | 'direct' | 'unknown': TBP-474 — how the client obtained this record. `direct` and `unknown` are NOT interchangeable. `direct` means capture ran and found no channel, which is a real answer. `unknown` means capture could not run at all, which is a measurement failure. Collapsing them makes `direct` absorb every failure and then look like the strongest channel at exactly the moment a budget decision rests on it.
  - `marketing_consent` boolean: Whether the visitor granted marketing consent. Gates the Reddit CAPI fire only — that sends a hashed email to a third party for advertising. Writing the tenant's own attribution record is first-party processing and happens regardless, which is what keeps the measurement honest for people who refuse cookies.
  - `rdt_cid` string
  - `utm_source` string
  - `utm_medium` string
  - `utm_campaign` string
  - `utm_content` string
  - `utm_term` string
  - `gclid` string
  - `fbclid` string
  - `li_fat_id` string

## Response `200`

---

[API](https://skmtc.dev/thebridge/apis/bridge-api.md) · [All operations](https://skmtc.dev/thebridge/apis/bridge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thebridge/apis/bridge-api/revisions/290fffcb3d80?raw)
