Create event (Beta)
Beta. Send a backend event after a meaningful product action happens in your system. Use events for durable server-side context such as account creation, account updates, user-to-user contact, and content uploads. Do not send browser pageviews, button clicks, or other client-only telemetry through this endpoint.
Body ParametersJSONExpand Collapse
body: object { event_name, target_user_id, timestamp, 5 more } or object { content, event_name, timestamp, 4 more } or object { event_name, timestamp, type, 4 more } or 2 moreBackend event or ordered batch of events to send to SafetyKit. Send events from your server after an action has happened in your product. Do not send these events directly from a browser or mobile client.
Backend event or ordered batch of events to send to SafetyKit. Send events from your server after an action has happened in your product. Do not send these events directly from a browser or mobile client.
UserContactEventRequest object { event_name, target_user_id, timestamp, 5 more } A user contacts, transacts with, or otherwise interacts with another user.
A user contacts, transacts with, or otherwise interacts with another user.
Stable, low-cardinality product action name. Use snake_case and put dynamic values in typed fields, content, resources_used, or metadata.
Your stable canonical identifier for the other user in a user-to-user interaction.
The time the event occurred in your system, as an ISO 8601 datetime string.
content: optional array of object { text, type, key } or object { source, type, key } User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
metadata: optional map[string or number or boolean or array of string or number or boolean]Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
resources_used: optional array of object { type, value } Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
ContentUploadedEventRequest object { content, event_name, timestamp, 4 more } A user posts, uploads, publishes, edits, or replaces content.
A user posts, uploads, publishes, edits, or replaces content.
content: array of object { text, type, key } or object { source, type, key } User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
Stable, low-cardinality product action name. Use snake_case and put dynamic values in typed fields, content, resources_used, or metadata.
The time the event occurred in your system, as an ISO 8601 datetime string.
metadata: optional map[string or number or boolean or array of string or number or boolean]Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
resources_used: optional array of object { type, value } Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
CreateAccountEventRequest object { event_name, timestamp, type, 4 more } A user or account is created.
A user or account is created.
Stable, low-cardinality product action name. Use snake_case and put dynamic values in typed fields, content, resources_used, or metadata.
The time the event occurred in your system, as an ISO 8601 datetime string.
content: optional array of object { text, type, key } or object { source, type, key } User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
metadata: optional map[string or number or boolean or array of string or number or boolean]Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
resources_used: optional array of object { type, value } Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
UpdateAccountEventRequest object { event_name, timestamp, type, 4 more } A user or account profile, contact detail, payment detail, or public bio changes.
A user or account profile, contact detail, payment detail, or public bio changes.
Stable, low-cardinality product action name. Use snake_case and put dynamic values in typed fields, content, resources_used, or metadata.
The time the event occurred in your system, as an ISO 8601 datetime string.
content: optional array of object { text, type, key } or object { source, type, key } User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
metadata: optional map[string or number or boolean or array of string or number or boolean]Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
resources_used: optional array of object { type, value } Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
array of object { event_name, target_user_id, timestamp, 5 more } or object { content, event_name, timestamp, 4 more } or object { event_name, timestamp, type, 4 more } or object { event_name, timestamp, type, 4 more }
UserContact object { event_name, target_user_id, timestamp, 5 more } A user contacts, transacts with, or otherwise interacts with another user.
A user contacts, transacts with, or otherwise interacts with another user.
Stable, low-cardinality product action name. Use snake_case and put dynamic values in typed fields, content, resources_used, or metadata.
Your stable canonical identifier for the other user in a user-to-user interaction.
The time the event occurred in your system, as an ISO 8601 datetime string.
content: optional array of object { text, type, key } or object { source, type, key } User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
metadata: optional map[string or number or boolean or array of string or number or boolean]Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
resources_used: optional array of object { type, value } Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
ContentUploaded object { content, event_name, timestamp, 4 more } A user posts, uploads, publishes, edits, or replaces content.
A user posts, uploads, publishes, edits, or replaces content.
content: array of object { text, type, key } or object { source, type, key } User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
Stable, low-cardinality product action name. Use snake_case and put dynamic values in typed fields, content, resources_used, or metadata.
The time the event occurred in your system, as an ISO 8601 datetime string.
metadata: optional map[string or number or boolean or array of string or number or boolean]Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
resources_used: optional array of object { type, value } Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
CreateAccount object { event_name, timestamp, type, 4 more } A user or account is created.
A user or account is created.
Stable, low-cardinality product action name. Use snake_case and put dynamic values in typed fields, content, resources_used, or metadata.
The time the event occurred in your system, as an ISO 8601 datetime string.
content: optional array of object { text, type, key } or object { source, type, key } User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
metadata: optional map[string or number or boolean or array of string or number or boolean]Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
resources_used: optional array of object { type, value } Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
UpdateAccount object { event_name, timestamp, type, 4 more } A user or account profile, contact detail, payment detail, or public bio changes.
A user or account profile, contact detail, payment detail, or public bio changes.
Stable, low-cardinality product action name. Use snake_case and put dynamic values in typed fields, content, resources_used, or metadata.
The time the event occurred in your system, as an ISO 8601 datetime string.
content: optional array of object { text, type, key } or object { source, type, key } User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
User-authored or user-uploaded content parts. Use this for message bodies, bios, listing text, image URLs, and similar content SafetyKit should compare or analyze.
metadata: optional map[string or number or boolean or array of string or number or boolean]Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
Non-PII product context for filtering, segmentation, and debugging. Values may be strings, numbers, booleans, or arrays of those scalar values.
resources_used: optional array of object { type, value } Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
Reusable resources observed during the event. Use this for emails, phone numbers, names, addresses, social handles, URLs, payment identifiers, or similar identifiers.
Create event (Beta)
curl https://api.safetykit.com/v1/events \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $SAFETYKIT_API_KEY" \
-d '{
"event_name": "message_sent",
"target_user_id": "987654321",
"timestamp": "2026-05-21T00:15:15.000Z",
"type": "user_contact",
"user_id": "123456789",
"metadata": {
"conversation_id": "conversation_789",
"channel": "marketplace_dm"
}
}'{
"status": "ok",
"event_id": "01KSR4C8JN1SA9X63T6P368K6W"
}{
"status": "ok",
"event_ids": [
"01KSR4C8JN1SA9X63T6P368K6W",
"01KSR4CB1MFVX1TAYM46YQXZ3E"
]
}Returns Examples
{
"status": "ok",
"event_id": "01KSR4C8JN1SA9X63T6P368K6W"
}{
"status": "ok",
"event_ids": [
"01KSR4C8JN1SA9X63T6P368K6W",
"01KSR4CB1MFVX1TAYM46YQXZ3E"
]
}