---
title: "Validate a synthetic event with a Sandbox key"
method: POST
path: "/sandbox/keyed-events"
tags: ["Sandbox"]
---

# Validate a synthetic event with a Sandbox key

`POST /sandbox/keyed-events`

## Request

- Base URL: `https://plainrouter.com/api/v1`
- URL: `https://plainrouter.com/api/v1/sandbox/keyed-events`
- Auth: HTTP bearer

Validates a synthetic event with a short-lived Sandbox key, then discards it without persisting data or contacting an advertising provider.

## Request body

- object
  - `event_id` string: Optional synthetic idempotency key; maximum 128 characters.
  - `event_name` string, required: Synthetic event name; maximum 100 characters.
  - `action_source` string: Synthetic action source.
  - `value_data` object: Optional synthetic commerce data.
    - `value` string
    - `currency` string
    - `order_id` string

## Response `200`

Synthetic event validated with a Sandbox key and discarded.

- object
  - `sandbox` boolean, required
  - `accepted` boolean, required
  - `event_id` string, required
  - `status` string, required
  - `persisted` boolean, required
  - `provider_delivery` boolean, required
  - `message` string, required

## Other responses

- `401`: Sandbox key missing, invalid, or expired.
- `422`: Request validation failed.

---

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