---
title: "Fire a product-analytics event"
method: POST
path: "/api/passport/metrics/event"
tags: ["Analytics"]
---

# Fire a product-analytics event

`POST /api/passport/metrics/event`

## Request

- Base URL: `https://passport.me`
- URL: `https://passport.me/api/passport/metrics/event`
- Auth: none required

Fire-and-forget beacon. Event names are allowlisted server-side (see body schema). Rate-limited 300 events / 5 min / IP. Response is 204 on success; unknown event names return 400.

## Request body

- MetricsEvent
  - `name` 'landing_cta_click' | 'trust_section_view' | 'landing_slide_view' | 'landing_scroll_depth' | 'first_run_promise_view' | 'first_run_step_click' | 'welcome_dismiss' | 'sidebar_nav_click' | 'developer_section_view', required
  - `path` string
  - `props` object: Shallow properties. Only string/number/boolean values accepted. Total JSON capped at 512 bytes.

## Response `204`

Accepted (no body).

## Other responses

- `400`: Invalid request payload.
- `429`: Rate-limited.

---

[API](https://skmtc.dev/passport-me/apis/passport-me-api.md) · [All operations](https://skmtc.dev/passport-me/apis/passport-me-api/llms.txt) · [OpenAPI document](https://skmtc.dev/passport-me/apis/passport-me-api/revisions/c0081754a2dc?raw)
