> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zixflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Page

> Record a web page view

#### Description

Record a web page view. Equivalent to [Screen](/api-reference/zixflow-ai/events/screen) but for web apps.

Short alias: `POST /v1/p`

**When to use:**

* Web apps and marketing sites
* Track specific page metadata (title, URL, referrer)

#### Headers

<ParamField header="Authorization" type="string" required placeholder="Basic <base64(api_key:)>">
  HTTP Basic Auth. See [Events Authentication](/api-reference/zixflow-ai/events/authentication).
</ParamField>

<ParamField header="Content-Type" type="string" required default="application/json">
  Must be `application/json`.
</ParamField>

#### Body

<ParamField body="userId" type="string" placeholder="user_12345">
  Identified user ID. At least one of `userId` or `anonymousId` is required.
</ParamField>

<ParamField body="anonymousId" type="string" placeholder="anon_abc-123">
  Anonymous user ID. Required if `userId` is not provided.
</ParamField>

<ParamField body="name" type="string" placeholder="Pricing">
  Page name.
</ParamField>

<ParamField body="properties" type="object">
  Page metadata such as `path`, `url`, `referrer`, and `title`.
</ParamField>

<ParamField body="timestamp" type="string" placeholder="2026-05-04T14:32:15.000Z">
  When the page view occurred, as ISO 8601.
</ParamField>

<ParamField body="context" type="object">
  Optional environment metadata (device, OS, app, IP, locale, campaign, and more). SDKs populate this automatically. See [Context Object](/api-reference/zixflow-ai/events/context).
</ParamField>

#### Response

Successful requests return `HTTP 200` with an empty JSON object.

<ResponseExample>
  ```json 200-Success theme={null}
  {}
  ```

  ```json 400-Bad Request theme={null}
  {
    "error": "VALIDATION_FAILED",
    "details": [
      {
        "reason": "REQUIRED",
        "field": "userId",
        "message": "userId is required"
      }
    ]
  }
  ```

  ```json 401-Unauthorised theme={null}
  {
    "error": "UNAUTHORIZED",
    "details": []
  }
  ```
</ResponseExample>
