---
title: "Record an aggregate-safe entity analytics beacon"
method: POST
path: "/entity-analytics"
---

# Record an aggregate-safe entity analytics beacon

`POST /entity-analytics`

Client beacon for SEO/profile traffic, outbound clicks, and search impressions. Raw identifiers are hashed or stripped before storage and provider dashboards only show aggregates.

## Request body

- EntityAnalyticsEvent
  - `entity_page_id` string, uuid, required
  - `event_type` 'profile_view' | 'search_impression' | 'profile_click' | 'outbound_click' | 'api_result_shown', required
  - `source` string
  - `anonymous_session_id` string
  - `search_query` string
  - `searcher_city` string
  - `searcher_state` string — Two-letter state code or full state name, normalized before storage.
  - `metadata` object — Allowlisted analytics context. Identifiers and email-like values are stripped before storage.
  - `dedupe_key` string

## Response `200`

Analytics event accepted.

- EntityAnalyticsResponse
  - `request_id` string, required
  - `ok` boolean, required

## Other responses

- `400` — InvalidAnalyticsEvent.
- `429` — AnalyticsRateLimited.
- `500` — AnalyticsWriteFailed.

---

[API](https://skmtc.net/loacare/apis/loa-healthcare-pricing-api.md) · [All operations](https://skmtc.net/loacare/apis/loa-healthcare-pricing-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/loacare/loa-healthcare-pricing-api/versions/daa3a7e12b1e/schema)
