Skip to main content
POST
/
v1
/
events
curl --request POST \
  --url https://brew.new/api/v1/events \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "triggerEventId": "tri_password_reset",
  "payload": {
    "email": "jane@example.com",
    "resetUrl": "https://app.example.com/reset/abc123"
  }
}
'
{
  "success": true,
  "status": "triggered",
  "code": "TRIGGERED",
  "message": "Trigger event accepted and matched published attachments.",
  "triggerEventId": "tri_order_completed",
  "receivedAt": "2026-04-08T12:34:56.789Z",
  "details": {
    "resolvedPayload": {
      "email": "jane@example.com",
      "orderId": "ord_42"
    },
    "executionIds": [
      "exec_01HZX1",
      "exec_01HZX2"
    ],
    "counts": {
      "transactionalEmails": 0,
      "automations": 2
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.brew.new/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
default:Bearer brew_your_api_key
required

Send your Brew API key as Authorization: Bearer brew_xxx.

Headers

Idempotency-Key
string

Optional idempotency key for safe retries. Reusing the same key with the same request body returns the original response for 24 hours.

Required string length: 1 - 100

Body

application/json

Trigger fire request.

triggerEventId
string
required

Internal id of the published trigger event to fire. Returned by POST /api/v1/triggers and listed in GET /api/v1/triggers. The trigger title and providerEventKey are descriptors and are NEVER URL segments — the path is fixed at /api/v1/automation/runs.

Required string length: 1 - 64
payload
object
required

Event payload — fields and types must match the trigger's payloadSchema. Unknown fields are accepted but reported as unexpected_key warnings.

idempotencyKey
string

Legacy body-field alternative to the Idempotency-Key HTTP header. Prefer the header for new integrations. The token is namespaced server-side with the API key org so different tenants cannot collide.

Required string length: 1 - 100

Response

The trigger was accepted and matched (or replayed via idempotency).

success
boolean
required
status
enum<string>
required

Discriminator for the response category. Pairs with code. A disabled trigger returns status: "failed" + code: "TRIGGER_DISABLED" (HTTP 422). An enabled trigger with no published automation attached returns status: "failed" + code: "NO_PUBLISHED_AUTOMATION" (HTTP 422). Successful fires always return status: "triggered".

Available options:
triggered,
idempotent_replay,
ready,
invalid_api_key,
invalid_json,
failed,
forbidden,
payload_mismatch,
trigger_event_not_found
code
string
required
message
string
required
receivedAt
string
required

ISO-8601 timestamp the request was processed at.

triggerEventId
string
details
object