---
title: "Check whether the current user may unlock the full content catalog"
method: GET
path: "/v1/acquisition/leads/content-access"
tags: ["Acquisition Leads"]
---

# Check whether the current user may unlock the full content catalog

`GET /v1/acquisition/leads/content-access`

Authenticated endpoint. The Firebase UID and email are taken from the verified auth token — the app never passes them. Returns `hasAccess: true` when that UID — or, as a fallback, that email — belongs to a lead that came through a web acquisition funnel. The app uses this to decide whether to show the `explicitContent` toggle. The email fallback keeps access tied to a user who deleted and recreated their account with the same email. Works for both anonymous and registered Firebase users (anonymous users simply have no email, so only the UID is matched). The result is cached server-side.

## Response `200`

- AcquisitionContentAccessDto
  - `hasAccess` boolean, required — True when the identity (Firebase UID, email, or a completed funnel run recorded for that UID) belongs to a user who came through a web acquisition funnel.
  - `source` 'firebase_uid' | 'email' | 'web_user_funnel' | 'none' | 'feature_disabled', required — Which identifier matched a funnel origin. `web_user_funnel` means no lead matched but the funnel tracking row (`web_users`) for this UID shows a completed run — the lead was created under the pre-registration UID. `none` means no funnel origin was found. `feature_disabled` means the decision was forced by the global NSFW_CONTENT_ACCESS_MODE ('all' grants everyone, 'none' denies everyone) without a lookup.
  - `leadId` string, nullable — The acquisition lead id that granted access, when matched.

---

[API](https://skmtc.dev/miaai/apis/backend-template-api.md) · [All operations](https://skmtc.dev/miaai/apis/backend-template-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/miaai/backend-template-api/revisions/2a8d88a5124f/schema)
