Skip to main content

Critical Interactions

📖 Learn more about interactions in the Interactions Overview

Endpoints

GET    /v1/interactions
GET /v1/interactions/{name}
POST /v1/interactions
PATCH /v1/interactions/{name}
DELETE /v1/interactions/{name}

Authentication

All endpoints require authentication using JWT tokens and a user email header.

Required Headers:

HeaderValueDescription
authorizationBearer {token}JWT access token
user-emailuser@example.comEmail of the user making the request

Get Interactions

Retrieves a paginated list of critical interactions with optional filtering options.

Endpoint: GET /v1/interactions

Request Headers:

HeaderValue
authorizationBearer {token}
user-emailuser@example.com

Query Parameters:

ParameterTypeRequiredDescription
pagenumber✅ YesPage number (0-indexed)
sizenumber✅ YesNumber of items per page
interactionNamestring❌ NoFilter by interaction name
userEmailstring❌ NoFilter by creator email

Example Request:

GET /v1/interactions?page=0&size=10&interactionName=ContestJoinSuccess&userEmail=user@example.com
authorization: Bearer {token}
user-email: user@example.com

Response:

{
"data": {
"interactions": [
{
"interactionName": "ContestJoinSuccess",
"id": 123456,
"description": "Some description",
"uptimeLowerLimitInMs": 100,
"uptimeMidLimitInMs": 200,
"uptimeUpperLimitInMs": 300,
"thresholdInMs": 60000,
"status": "RUNNING",
"events": [
{
"name": "event1",
"props": [
{
"name": "property1",
"value": "value1",
"operator": "EQUALS"
},
{
"name": "property2",
"value": "value2",
"operator": "CONTAINS"
}
],
"isBlacklisted": false
}
],
"globalBlacklistedEvents": [],
"createdAt": 17874817100,
"createdBy": "user@example.com",
"updatedAt": 17874817100,
"updatedBy": "user@example.com"
}
],
"totalInteractions": 100
}
}

Response Fields:

FieldTypeDescription
data.interactionsarrayArray of interaction objects
data.totalInteractionsnumberTotal count of interactions matching filters

Get Interaction Details

Fetches the complete configuration for a specific interaction, including events, thresholds, and blacklisted events.

Endpoint: GET /v1/interactions/{name}

Path Parameters:

ParameterTypeRequiredDescription
namestring✅ YesInteraction name identifier

Request Headers:

HeaderValue
authorizationBearer {token}
user-emailuser@example.com

Example Request:

GET /v1/interactions/ContestJoinSuccess
authorization: Bearer {token}
user-email: user@example.com

Response:

{
"data": {
"name": "example_interaction",
"description": "Some description",
"id": 123456,
"uptimeLowerLimitInMs": 100,
"uptimeMidLimitInMs": 200,
"uptimeUpperLimitInMs": 300,
"thresholdInMS": 60000,
"status": "RUNNING",
"events": [
{
"name": "event1",
"props": [
{
"name": "property1",
"value": "value1",
"operator": "EQUALS"
}
],
"isBlacklisted": false
}
],
"globalBlacklistedEvents": [],
"createdAt": 17874817100,
"createdBy": "user@example.com",
"updatedAt": 17874817100,
"updatedBy": "user@example.com"
}
}

Create Interaction

Creates a new critical interaction definition for monitoring user flows.

Endpoint: POST /v1/interactions

Request Headers:

HeaderValue
authorizationBearer {token}
user-emailuser@example.com
Content-Typeapplication/json

Request Body:

FieldTypeRequiredDescription
namestring✅ YesUnique interaction name identifier
descriptionstring❌ NoHuman-readable description
uptimeLowerLimitInMsnumber✅ YesLower threshold for uptime (milliseconds)
uptimeMidLimitInMsnumber✅ YesMid threshold for uptime (milliseconds)
uptimeUpperLimitInMsnumber✅ YesUpper threshold for uptime (milliseconds)
thresholdInMsnumber✅ YesMaximum acceptable duration (milliseconds)
eventsarray✅ YesArray of event definitions
globalBlacklistedEventsarray❌ NoArray of globally blacklisted events

Event Object:

FieldTypeRequiredDescription
namestring✅ YesEvent name
propsarray❌ NoArray of property filters
isBlacklistedboolean❌ NoWhether this event is blacklisted

Property Filter Object:

FieldTypeRequiredDescription
namestring✅ YesProperty name
valuestring✅ YesProperty value to match
operatorstring❌ NoComparison operator: EQUALS, CONTAINS, NOTEQUALS, NOTCONTAINS (default: EQUALS)

Example Request:

POST /v1/interactions
authorization: Bearer {token}
user-email: user@example.com
Content-Type: application/json

{
"name": "example_interaction",
"description": "Some description",
"uptimeLowerLimitInMs": 100,
"uptimeMidLimitInMs": 200,
"uptimeUpperLimitInMs": 300,
"thresholdInMs": 60000,
"events": [
{
"name": "event1",
"props": [
{
"name": "property1",
"value": "value1",
"operator": "EQUALS"
},
{
"name": "property2",
"value": "value2",
"operator": "CONTAINS"
}
],
"isBlacklisted": false
}
],
"globalBlacklistedEvents": []
}

Response:

{
"data": {
"id": 123
}
}

Update Interaction

Modifies an existing interaction configuration with new events, thresholds, or status.

Endpoint: PATCH /v1/interactions/{name}

Path Parameters:

ParameterTypeRequiredDescription
namestring✅ YesInteraction name identifier

Request Headers:

HeaderValue
authorizationBearer {token}
user-emailuser@example.com
Content-Typeapplication/json

Request Body:

All fields are optional. Only include fields you want to update.

FieldTypeDescription
descriptionstringHuman-readable description
uptimeLowerLimitInMsnumberLower threshold for uptime (milliseconds)
uptimeMidLimitInMsnumberMid threshold for uptime (milliseconds)
uptimeUpperLimitInMsnumberUpper threshold for uptime (milliseconds)
thresholdInMsnumberMaximum acceptable duration (milliseconds)
statusstringInteraction status: "RUNNING" or "STOPPED"
eventsarrayArray of event definitions
globalBlacklistedEventsarrayArray of globally blacklisted events

Example Request:

PATCH /v1/interactions/example_interaction
authorization: Bearer {token}
user-email: user@example.com
Content-Type: application/json

{
"description": "Updated description",
"status": "STOPPED",
"thresholdInMs": 120000
}

Response:

{
"data": {
"id": 123
}
}

Delete Interaction

Permanently removes a critical interaction definition from the system.

Endpoint: DELETE /v1/interactions/{name}

Path Parameters:

ParameterTypeRequiredDescription
namestring✅ YesInteraction name identifier

Request Headers:

HeaderValue
authorizationBearer {token}
user-emailuser@example.com

Example Request:

DELETE /v1/interactions/example_interaction
authorization: Bearer {token}
user-email: user@example.com

Response: 204 No Content (successful deletion)

Get Interactions

Description: Retrieves paginated list of critical interactions with filtering options. Requires page and size query params, optional interactionName and userEmail for filtering.

GET /v1/interactions?page=0&size=10&interactionName=ContestJoinSuccess&userEmail=user@example.com
authorization: Bearer {token}
user-email: user@example.com

Response:

{
data: {
interactions: [
{
"interactionName": "ContestJoinSuccess",
"id": 123456,
"description": "Some description",
"uptimeLowerLimitInMs": 100, // in Ms
"uptimeMidLimitInMs": 200, // in Ms
"uptimeUpperLimitInMs": 300, // in Ms
"thresholdInMs": 60000, // in Ms
"status": "RUNNING"/"STOPPED"
"events": [
{
"name": "event1",
"props": [
{
"name": "property1",
"value": "value1",
"operator": "EQUALS"
},
{
"name": "property2",
"value": "value2",
"operator": "CONTAINS" // default EQUALS
}
],
"isBlacklisted": true/false/null
},
{
"name": "event2",
"props": [
{
"name": "property3",
"value": "value3",
"operator": "NOTEQUALS" // default EQUALS
}
],
"isBlacklisted": true/false/null
}
],
"globalBlacklistedEvents": [
{
"name": "blacklisted_event",
"props": [
{
"name": "property4",
"value": "value4",
"operator": "NOTCONTAINS"
}
],
"isBlacklisted": true/true
}
],
"createdAt": 17874817100,
"createdBy": "user@example.com",
"updatedAt": "17874817100",
"updatedBy": "user@example.com"
}
],
"totalInteractions": 100
}
}

Get Interaction Details

Description: Fetches complete interaction configuration including events, thresholds, and blacklisted events. Requires name path parameter to identify specific interaction.

Request:

GET /v1/interactions/{name}
authorization: Bearer {token}
user-email: user@example.com

Response:

{
data: {
"name": "example_interaction",
"description": "Some description",
"id": 123456,
"uptimeLowerLimitInMs": 100, // in Ms
"uptimeMidLimitInMs": 200, // in Ms
"uptimeUpperLimitInMs": 300, // in Ms
"thresholdInMS": 60000, // in Ms
"status": "RUNNING"/"STOPPED"
"events": [
{
"name": "event1",
"props": [
{
"name": "property1",
"value": "value1",
"operator": "EQUALS"
},
{
"name": "property2",
"value": "value2",
"operator": "CONTAINS" // default EQUALS
}
],
"isBlacklisted": true/false/null
},
{
"name": "event2",
"props": [
{
"name": "property3",
"value": "value3",
"operator": "NOTEQUALS" // default EQUALS
}
],
"isBlacklisted": true/false/null
}
],
"globalBlacklistedEvents": [
{
"name": "blacklisted_event",
"props": [
{
"name": "property4",
"value": "value4",
"operator": "NOTCONTAINS"
}
],
"isBlacklisted": true/true
}
],
"createdAt": "17874817100,
"createdBy": "user@example.com",
"updatedAt": "17874817100",
"updatedBy": "huser@example.com"
}
}

Create Interaction

Description: Creates new critical interaction definition for monitoring user flows. Requires name, events array, uptime limits, and thresholdInMs fields in request body.

Request:

POST /v1/interactions
authorization: Bearer {token}
user-email: user@example.com
Content-Type: application/json

{
"name": "example_interaction",
"description": "Some description",
"uptimeLowerLimitInMs": 100, // in Ms
"uptimeMidLimitInMS": 200, // in Ms
"uptimeUpperLimitInMs": 300, // in Ms
"thresholdInMs": 60000, // in Ms
"events": [
{
"name": "event1",
"props": [
{
"name": "property1",
"value": "value1",
"operator": "EQUALS"
},
{
"name": "property2",
"value": "value2",
"operator": "CONTAINS" // default EQUALS
}
],
"isBlacklisted": true/false/null
},
{
"name": "event2",
"props": [
{
"vame": "property3",
"value": "value3",
"operator": "NOTEQUALS" // default EQUALS
}
],
"isBlacklisted": true/false/null
}
],
"globalBlacklistedEvents": [
{
"name": "blacklisted_event",
"props": [
{
"name": "property4",
"value": "value4",
"operator": "NOTCONTAINS"
}
],
"isBlacklisted": true/true
}
]
}

Response:

{
data: {
"id": 123
}
}

Update Interaction

Description: Modifies existing interaction configuration with new events or thresholds. Requires name path parameter to identify interaction, updated fields in body to change configuration.

PATCH /v1/interactions/{name}
authorization: Bearer {token}
user-email: user@example.com
Content-Type: application/json
{
"description": "Some description",
"uptimeLowerLimitInMs": 100, // in Ms
"uptimeMidLimitInMs": 200, // in Ms
"uptimeUpperLimitInMS": 300, // in Ms
"thresholdInMs": 60000, // in Ms
"status": "STOPPED"
"events": [
{
"name": "event1",
"props": [
{
"name": "property1",
"value": "value1",
"operator": "EQUALS"
},
{
"name": "property2",
"value": "value2",
"operator": "CONTAINS" // default EQUALS
}
],
"isBlacklisted": true/false/null
},
{
"name": "event2",
"props": [
{
"name": "property3",
"value": "value3",
"operator": "NOTEQUALS" // default EQUALS
}
],
"isBlacklisted": true/false/null
}
],
"globalBlacklistedEvents": [
{
"name": "blacklisted_event",
"props": [
{
"name": "property4",
"value": "value4",
"operator": "NOTCONTAINS"
}
],
"isBlacklisted": true/true
}
]
}

Delete Interaction

Description: Removes critical interaction definition from system permanently. Requires name path parameter to specify which interaction to delete.

DELETE /v1/interactions/{name}
authorization: Bearer {token}
user-email: user@example.com