---
title: "ValidateEvent parses and validates an event, returning its derived metadata."
method: POST
path: "/v1.1/test/validate_event"
tags: ["ControlService"]
---

# ValidateEvent parses and validates an event, returning its derived metadata.

`POST /v1.1/test/validate_event`

Uses the same parsing logic as the live ingestor pipeline.
 Call this when the user inputs or changes a test event to surface errors early.

## Request body

- ProtobufControlpbV1ValidateEventRequest
  - `inputEvent` union — The raw client event to validate. Runs through the same parser as the live ingestor pipeline.
    - object, nullable
    - GoogleProtobufStruct
      - `fields` object, nullable — Unordered map of dynamically typed values.

## Response `200`

OK

- ProtobufControlpbV1ValidateEventResponse
  - `anonymousId` string — The anonymous identifier from the parsed event.
  - `eventName` string — The original event name as parsed from the input. For track events this comes from the `event` field (e.g., "Order Completed"). For other types this comes from the `type` field (e.g., "page", "mr_experiment").
  - `normalizedEventName` string — The event name lowercased with non-alphanumeric characters replaced by underscores. Used by the forwarder for stanza matching in playbooks (e.g., "Order Completed" becomes "order_completed").
  - `userId` string — The user identifier from the parsed event.
  - `writeKey` string — The api key identifying the source customer.

## Other responses

- `4XX` — Something is wrong with your request such as missing or invalid data. Correct your request and try again.
- `5XX` — Internal server error. Try again later or reach out to MetaRouter support.

---

[API](https://skmtc.net/metarouter/apis/control-api.md) · [All operations](https://skmtc.net/metarouter/apis/control-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/metarouter/control-api/versions/5afc05bfaaa2/schema)
