Skip to main content
POST

Authorizations

Authorization
string
header
required

Organization-scoped Mailr API key. Header: Authorization: Bearer ak_….

Body

application/json
event_type
string
required

Your event name as noun.verb, lowercase, ≤64 chars. Bound in the app as custom.<event_type>.

Maximum string length: 64
Pattern: ^[a-z][a-z0-9_]*\.[a-z][a-z0-9_]*$
Example:

"job.completed"

object_type
enum<string>
required

What kind of record this event is about. A contact event with an address and email/phone is also run through indirect attribution.

Available options:
job,
deal,
contact
dedup_id
string
required

Your idempotency key for this event. Replaying the same value is absorbed per bound automation.

Maximum string length: 255
Example:

"job-8842-completed"

record
object
required
occurred_at
string<date-time> | null

When the event happened (ISO-8601). Optional. May lead the server clock by at most 24h.

dry_run
boolean
default:false

Validate and report outcomes without writing anything. Still consumes rate-limit quota.

Response

Accepted. The event was validated and processed. matched_automations counts bindings whose event_type/object_type matched — not bindings that actually mailed; read outcomes[].reason for the per-automation result. duplicate is true only when every candidate hit the campaign queue's dedup.

received
boolean
required
duplicate
boolean
required

True only when there was at least one candidate binding and every one hit the campaign-queue dedup.

matched_automations
integer
required

Count of bindings whose event_type/object_type matched — not the count that mailed.

outcomes
object[]
required
dry_run
boolean

Present and true only when the request set dry_run.