Create events in bulk
Record multiple events using the same validation, Activity idempotency, metric emission, and flow-trigger behavior as the single-event endpoint. Results are returned in request order; one invalid item does not prevent valid items from being processed.
/v2026-04/events/bulk/Usage
Start from this cURL example and add filters as needed.
curl -X POST https://core.appliedlabs.ai/v2026-04/events/bulk/ \
-H "Authorization: Bearer <api-token>" \
-H "X-Shop-Id: 66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10" \
-H "Content-Type: application/json" \
--data '{
"events": [
{
"contact": {
"email": "string",
"name": "string",
"phone": "string",
"remote_id": "string"
},
"description": "",
"event_time": "2026-04-07T14:30:00Z",
"metric": {
"additional_properties": {
"additionalProp1": "string"
},
"context_object_id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10",
"context_object_type": "string",
"deduping_key": "string",
"metric_name": "string",
"metric_object_id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10",
"metric_object_type": "string",
"value": 1
},
"name": "string",
"remote_id": "string",
"remote_platform": "string"
}
]
}'Authorizations
Send your Applied API key as Authorization: Bearer AL.... Create the key in the Applied dashboard and keep it on your server.
Header parameters
X-Shop-Idstring · uuidrequiredThe shop whose data you want to read.
Body
eventsarrayrequiredUp to 100 events to record in one request.
events.contactallOfResolve or create a contact and add the event to their timeline.
events.descriptionstringOptional human-readable Activity description.
events.event_timestring · date-timeWhen the event occurred. Defaults to now.
events.metricallOfrequiredEmit a metric event for analytics and Activity Event flow triggers.
events.namestringrequiredHuman-readable event name used as the Activity title. The metric's metric_name remains the machine-readable signal type.
events.remote_idstring | nullYour system's durable ID for this event Activity.
events.remote_platformstring | nullThe external platform or source namespace for remote_id.
{
"events": [
{
"contact": {
"email": "string",
"name": "string",
"phone": "string",
"remote_id": "string"
},
"description": "",
"event_time": "2026-04-07T14:30:00Z",
"metric": {
"additional_properties": {
"additionalProp1": "string"
},
"context_object_id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10",
"context_object_type": "string",
"deduping_key": "string",
"metric_name": "string",
"metric_object_id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10",
"metric_object_type": "string",
"value": 1
},
"name": "string",
"remote_id": "string",
"remote_platform": "string"
}
]
}Response
Per-item event results in request order.
resultsarrayrequiredresults.errorobjectresults.eventobjectresults.indexintegerrequiredresults.statusenum<string>requiredsuccesserror{
"results": [
{
"error": {
"code": "string",
"fields": {
"additionalProp1": null
},
"message": "string",
"request_id": "string"
},
"event": {
"contact": {
"email": "string",
"id": "66e4c4d2-34e8-4f85-8f51-84b6ed7b5f10",
"phone": "string",
"remote_id": "string"
}
},
"index": 42,
"status": "success"
}
]
}