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:
| Header | Value | Description |
|---|---|---|
authorization | Bearer {token} | JWT access token |
user-email | user@example.com | Email 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:
| Header | Value |
|---|---|
authorization | Bearer {token} |
user-email | user@example.com |
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
page | number | ✅ Yes | Page number (0-indexed) |
size | number | ✅ Yes | Number of items per page |
interactionName | string | ❌ No | Filter by interaction name |
userEmail | string | ❌ No | Filter 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:
| Field | Type | Description |
|---|---|---|
data.interactions | array | Array of interaction objects |
data.totalInteractions | number | Total 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:
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Yes | Interaction name identifier |
Request Headers:
| Header | Value |
|---|---|
authorization | Bearer {token} |
user-email | user@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:
| Header | Value |
|---|---|
authorization | Bearer {token} |
user-email | user@example.com |
Content-Type | application/json |
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Yes | Unique interaction name identifier |
description | string | ❌ No | Human-readable description |
uptimeLowerLimitInMs | number | ✅ Yes | Lower threshold for uptime (milliseconds) |
uptimeMidLimitInMs | number | ✅ Yes | Mid threshold for uptime (milliseconds) |
uptimeUpperLimitInMs | number | ✅ Yes | Upper threshold for uptime (milliseconds) |
thresholdInMs | number | ✅ Yes | Maximum acceptable duration (milliseconds) |
events | array | ✅ Yes | Array of event definitions |
globalBlacklistedEvents | array | ❌ No | Array of globally blacklisted events |
Event Object:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Yes | Event name |
props | array | ❌ No | Array of property filters |
isBlacklisted | boolean | ❌ No | Whether this event is blacklisted |
Property Filter Object:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Yes | Property name |
value | string | ✅ Yes | Property value to match |
operator | string | ❌ No | Comparison 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:
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Yes | Interaction name identifier |
Request Headers:
| Header | Value |
|---|---|
authorization | Bearer {token} |
user-email | user@example.com |
Content-Type | application/json |
Request Body:
All fields are optional. Only include fields you want to update.
| Field | Type | Description |
|---|---|---|
description | string | Human-readable description |
uptimeLowerLimitInMs | number | Lower threshold for uptime (milliseconds) |
uptimeMidLimitInMs | number | Mid threshold for uptime (milliseconds) |
uptimeUpperLimitInMs | number | Upper threshold for uptime (milliseconds) |
thresholdInMs | number | Maximum acceptable duration (milliseconds) |
status | string | Interaction status: "RUNNING" or "STOPPED" |
events | array | Array of event definitions |
globalBlacklistedEvents | array | Array 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:
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Yes | Interaction name identifier |
Request Headers:
| Header | Value |
|---|---|
authorization | Bearer {token} |
user-email | user@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