---
title: "Ingest Website Event"
method: POST
path: "/api/v1/events/website"
tags: ["events"]
---

# Ingest Website Event

`POST /api/v1/events/website`

## Request

- Base URL: `https://api.casaintelligence.com.au` (the document declares no server; this is the origin it was published from)
- URL: `https://api.casaintelligence.com.au/api/v1/events/website`
- Auth: none declared

Ingest a single funnel event from the public website (no API key).

ga_client_id is stored in anonymous_id (the canonical funnel join key) AND
mirrored into metadata; free_check_id lives in metadata so the daily check
can join events back to ci_free_checks rows.

## Request body

- WebsiteEventRequest: A single funnel event from the public website (no API key). event_type must be on the server-side allow-list (see app/api/v1/events.py WEBSITE_EVENT_CATEGORIES) — this is analytics ingestion, not a general write endpoint. ga_client_id is the canonical funnel join key (DATA-CLARITY-AUDIT.md §5); free_check_id links the event to its originating ci_free_checks row.
  - `event_type` string, required
  - `free_check_id` string, nullable
  - `ga_client_id` string, nullable
  - `session_id` string, nullable
  - `address` string, nullable
  - `variant` string, nullable
  - `dev_type` string, nullable
  - `page` string, nullable
  - `metadata` object, nullable: Extra event-specific data (size-capped server-side)

## Response `200`

Successful Response

- WebsiteEventResponse: Response for website event ingestion.
  - `ok` boolean

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/casaintelligence/apis/casa-intelligence-engine.md) · [All operations](https://skmtc.dev/casaintelligence/apis/casa-intelligence-engine/llms.txt) · [OpenAPI document](https://skmtc.dev/casaintelligence/apis/casa-intelligence-engine/revisions/71d711039de0?raw)
