{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/mailkite-dev/json-schema/mailkite-dev-post-v1-events-request-schema.json",
  "title": "PostV1EventsRequest",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/mailkite-dev-openapi-generated.yml#/components/schemas/PostV1EventsRequest",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Event name: 1-64 characters of letters, digits, dot, dash, or underscore, starting alphanumeric. Names beginning `mailkite.`, `mailkite:`, or `email.` are reserved for platform events."
    },
    "event": {
      "type": "string",
      "description": "Alias for `name`, accepted so a payload written for another provider works unchanged. `name` wins when both are given."
    },
    "email": {
      "type": "string",
      "description": "The address this event is about. Give either this or `contactId`, never both."
    },
    "contactId": {
      "type": "string",
      "description": "A contact you own (ctc_…), as an alternative to `email`. Give either this or `email`, never both."
    },
    "payload": {
      "type": "object",
      "description": "Free-form context carried with the event."
    },
    "dedupeKey": {
      "type": "string",
      "description": "Idempotency key. A second POST with the same key returns the ORIGINAL event and `duplicate: true` instead of recording a second one."
    }
  },
  "required": [
    "name"
  ]
}