---
title: "Site event"
method: POST
path: "/v1/events/site"
tags: ["Settings"]
---

# Site event

`POST /v1/events/site`

## Request

- Base URL: `https://api.vicem.ai`
- URL: `https://api.vicem.ai/v1/events/site`
- Auth: none required

## Request body

- union
  - object
    - `kind` 'site_engaged', required
    - `what` 'hero_audio_play' | 'lang_audio_play' | 'hero_scroll_2' | 'pricing_view' | 'watch_call_play' | 'watch_call_done' | 'example_call_play' | 'hear_yours_play', required
    - `job` string
    - `paid` 'google' | 'microsoft' | 'meta' | 'other'
  - object
    - `kind` 'site_cta_clicked', required
    - `placement` string, required
    - `paid` 'google' | 'microsoft' | 'meta' | 'other'
  - object
    - `kind` 'public_page_action', required
    - `action` 'call' | 'text' | 'write' | 'book', required
  - object
    - `kind` 'funnel_step', required
    - `step` string, required
    - `method` 'google' | 'apple' | 'email'
    - `reason` string
    - `src` string
    - `paid` 'google' | 'microsoft' | 'meta' | 'other'
    - `flow` 'onetap' | 'popup' | 'redirect'
    - `dev` 'ios' | 'android' | 'desktop' | 'iab'
    - `code` unknown
    - `provider` unknown
    - `ms` unknown
    - `dwellMs` unknown
    - `via` unknown
    - `seconds` unknown
    - `verdict` unknown
    - `transport` unknown
    - `declineCode` unknown
    - `angle` unknown
    - `errorType` unknown
    - `errorCode` unknown
    - `errorKind` unknown
    - `errorMsg` unknown
    - `tax` unknown
    - `job` unknown
    - `page` unknown
    - `props` object
  - object
    - `kind` 'get_engagement', required
    - `angle` string
    - `page` string
    - `paid` 'google' | 'microsoft' | 'meta' | 'other'
    - `termCluster` string
    - `device` 'mobile' | 'tablet' | 'desktop'
    - `maxScrollPct` integer, required
    - `visibleMs` integer, required
    - `audioPlayed` boolean, required
    - `reclick` boolean, required
  - object
    - `kind` 'web_vitals', required
    - `path` string, required
    - `device` 'mobile' | 'tablet' | 'desktop'
    - `lcp` number
    - `inp` number
    - `cls` number
    - `lcpEl` string
    - `inpEl` string

## Response `200`

OK. The body is not part of the contract (usually `{"ok": true}`).

- object

## Other responses

- `400`: Invalid request (body not JSON, or schema validation failed).
- `413`: Body over the limit (64 KB; 512 KB for contact import).
- `429`: Too many requests from this caller; wait and try again.
- `500`: Unexpected server error (reported to Sentry).

---

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