Create an event

Name an event and its properties, so the builder can offer it and its data is checked when it arrives.

POSThttps://app.usenotix.dev/api/v1/events/definitions

Needs a full access key. Sending access keys cannot call this. Key permissions lists the extra rules some calls have.

Name an event and its properties, so the builder can offer it and its data is checked when it arrives. Names use lowercase letters, numbers and dots, like order.shipped; names starting with notix. are reserved. Property types are text, number, date and boolean; Resend's schema object ({ "plan": "string" }) works too. A team can name 200 events. Needs a full access key made by a team admin (403 otherwise). Any key but a sending-only one can read events.

Body parameters

namestringrequired
propertiesobject[]

Typed properties: text, number, date or boolean. Send this or schema.

properties[].namestringrequired
properties[].typestringrequired

One of text, number, date, boolean, string, bool.

schemamap of string

Resend's form of properties: { "plan": "string" }.

Headers

Authorizationstringrequired

Bearer followed by your API key.

Errors

400

The name or a property is not valid, or the team already named 200 events.

403

The key is not a full access key made by a team admin.

409

There is already an event with this name.

Every error has the same shape. See all error codes.

curl -X POST "https://app.usenotix.dev/api/v1/events/definitions" \
  -H "Authorization: Bearer $NOTIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "order.shipped"
}'
Response201
{
  "id": "cm1x8f3k20001qz7v5b9d2e4a",
  "name": "Acme",
  "properties": [
    {
      "name": "Acme",
      "type": "text"
    }
  ],
  "createdAt": "2026-10-01T09:00:00Z",
  "updatedAt": "2026-10-01T09:00:00Z"
}
Open in ClaudeOpen in ChatGPT