---
title: "Record Attribution"
method: POST
path: "/me/attribution"
tags: ["me"]
---

# Record Attribution

`POST /me/attribution`

## Request body

- RecordAttributionRequest — Persist a captured touch for the authenticated account only.
  - `attribution` CapturedAttributionData, required
    - `first_touch` CapturedAttributionTouch — Profile-sync boundary; validation errors identify the rejected field.
      - `attribution_version` integer
      - `captured_at` string, date-time, nullable
      - `landing_path` string, nullable
      - `referrer_path` string, nullable
      - `capture_state` 'observed_no_referrer', nullable
      - `utm_source` string, nullable
      - `utm_medium` string, nullable
      - `utm_campaign` string, nullable
      - `utm_content` string, nullable
      - `utm_term` string, nullable
      - `utm_id` string, nullable
      - `utm_adgroup` string, nullable
      - `utm_asset_group` string, nullable
      - `utm_creative` string, nullable
      - `utm_content_id` string, nullable
      - `utm_placement` string, nullable
      - `fbclid` string, nullable
      - `twclid` string, nullable
      - `oppref` string, nullable
      - `gclid` string, nullable
      - `gbraid` string, nullable
      - `wbraid` string, nullable
      - `partnership_code` string, nullable
      - `transaction_id` string, nullable
      - `creative_id` string, nullable
    - `last_touch` CapturedAttributionTouch — Profile-sync boundary; validation errors identify the rejected field.
      - `attribution_version` integer
      - `captured_at` string, date-time, nullable
      - `landing_path` string, nullable
      - `referrer_path` string, nullable
      - `capture_state` 'observed_no_referrer', nullable
      - `utm_source` string, nullable
      - `utm_medium` string, nullable
      - `utm_campaign` string, nullable
      - `utm_content` string, nullable
      - `utm_term` string, nullable
      - `utm_id` string, nullable
      - `utm_adgroup` string, nullable
      - `utm_asset_group` string, nullable
      - `utm_creative` string, nullable
      - `utm_content_id` string, nullable
      - `utm_placement` string, nullable
      - `fbclid` string, nullable
      - `twclid` string, nullable
      - `oppref` string, nullable
      - `gclid` string, nullable
      - `gbraid` string, nullable
      - `wbraid` string, nullable
      - `partnership_code` string, nullable
      - `transaction_id` string, nullable
      - `creative_id` string, nullable
    - `last_paid_touch` CapturedAttributionTouch — Profile-sync boundary; validation errors identify the rejected field.
      - `attribution_version` integer
      - `captured_at` string, date-time, nullable
      - `landing_path` string, nullable
      - `referrer_path` string, nullable
      - `capture_state` 'observed_no_referrer', nullable
      - `utm_source` string, nullable
      - `utm_medium` string, nullable
      - `utm_campaign` string, nullable
      - `utm_content` string, nullable
      - `utm_term` string, nullable
      - `utm_id` string, nullable
      - `utm_adgroup` string, nullable
      - `utm_asset_group` string, nullable
      - `utm_creative` string, nullable
      - `utm_content_id` string, nullable
      - `utm_placement` string, nullable
      - `fbclid` string, nullable
      - `twclid` string, nullable
      - `oppref` string, nullable
      - `gclid` string, nullable
      - `gbraid` string, nullable
      - `wbraid` string, nullable
      - `partnership_code` string, nullable
      - `transaction_id` string, nullable
      - `creative_id` string, nullable

## Response `204`

Successful Response

## Other responses

- `422` — Validation Error

## Changes

> 22 revisions in range; 1 not diffed.

- **2026-09-26** `ff95d5d338e4` — 3 breaking, 3 info
  - removed `#/components/schemas/AttributionTouch` from the `attribution/first_touch` request property `anyOf` list
  - removed `#/components/schemas/AttributionTouch` from the `attribution/last_paid_touch` request property `anyOf` list
  - removed `#/components/schemas/AttributionTouch` from the `attribution/last_touch` request property `anyOf` list
  - added `#/components/schemas/CapturedAttributionTouch` to the `attribution/first_touch` request property `anyOf` list
  - …2 more
- **2026-09-23** `5d2121d26b96` — 3 info
  - added the new optional request property `attribution/first_touch/anyOf[subschema #1: AttributionTouch]/oppref`
  - added the new optional request property `attribution/last_paid_touch/anyOf[subschema #1: AttributionTouch]/oppref`
  - added the new optional request property `attribution/last_touch/anyOf[subschema #1: AttributionTouch]/oppref`
- …earlier changes not shown

[Full history](https://skmtc.dev/helloaxel/apis/client-api-gateway/changes/me/attribution/post.md)

---

[API](https://skmtc.dev/helloaxel/apis/client-api-gateway.md) · [All operations](https://skmtc.dev/helloaxel/apis/client-api-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/helloaxel/apis/client-api-gateway/revisions/ff95d5d338e4?raw)
