Get Case Details API
Overview
The Get Case API allows you to retrieve case information associated with a specific journey.
The API returns the current state of the case along with assignment details and the complete change history associated with the case.
API Endpoint
Method: GET
Endpoint:
GET /otk-service/v1/get-case/{journey_id}Example
GET /otk-service/v1/get-case/ABCDEOC123Path Parameter
Parameter | Type | Required | Description |
|---|---|---|---|
journey_id | String | Yes | Unique identifier of the journey for which the associated case information needs to be retrieved |
Sample Response
{
"result": {
"incident_id": "IncidentId",
"parent_incident_id": "<parentId>",
"organization_id": "<orgid>",
"team_id": "<teamid>",
"journey_id": "<journeyId>",
"flagged": true,
"status": {
"lookup_id": "<uuid>",
"name": "Escalated"
},
"priority": "High",
"risk_level": {
"lookup_id": "<uuid>",
"name": "Medium"
},
"category": {
"lookup_id": "<uuid>",
"name": "Investment"
},
"assigned_to": {
"user_id": "<uuid>",
"name": "test user",
"email": "[email protected]",
"phone": "0000000000",
"job_title": "Sales Manager"
},
"created_at": "2026-09-02T07:07:20.763788Z",
"updated_at": "2026-09-02T07:07:42.999265Z",
"closed_at": null,
"change_history": [
{
"change_id": "<uuid>",
"changed_by": {
"user_id": "<uuid>",
"name": "Chaitra M",
"email": "[email protected]",
"phone": "0000000000",
"job_title": "Compliance Manager"
},
"changed_at": "2026-09-02T07:07:43.086801Z",
"status": {
"lookup_id": "<uuid>",
"name": "Escalated"
},
"priority": "High",
"risk_level": {
"lookup_id": "<uuid>",
"name": "Medium"
},
"category": {
"lookup_id": "<uuid>",
"name": "Investment"
},
"assigned_to": {
"user_id": "<uuid>",
"name": "test user",
"email": "[email protected]",
"phone": "0000000000",
"job_title": "Sales Manager"
},
"comments": "test comments"
}
]
}
}Response Fields
Case Information
Field | Type | Description |
|---|---|---|
incident_id | String | Unique identifier of the case/incident |
parent_incident_id | String / Null | Identifier of the parent case, if applicable |
organization_id | String | Unique identifier of the organization |
team_id | String | Unique identifier of the team associated with the case |
journey_id | String | Unique identifier of the journey associated with the case |
flagged | Boolean | Indicates whether the journey/case has been flagged |
created_at | DateTime | Timestamp when the case was created |
updated_at | DateTime | Timestamp when the case was last updated |
closed_at | DateTime / Null | Timestamp when the case was closed. Returns null if the case is not closed |
Status
Field | Type | Description |
|---|---|---|
status.lookup_id | String | Unique identifier of the status |
status.name | String | Name of the current case status |
Example statuses may include Open, Escalated, Closed etc.
Priority
Field | Type | Description |
|---|---|---|
priority | String | Priority assigned to the case, such as Low, Medium or High |
Risk Level
Field | Type | Description |
|---|---|---|
risk_level.lookup_id | String | Unique identifier of the risk level |
risk_level.name | String | Name of the risk level |
Category
Field | Type | Description |
|---|---|---|
category.lookup_id | String | Unique identifier of the case category |
category.name | String | Name of the case category |
Assigned To
The assigned_to object provides information about the user currently assigned to the case.
Field | Type | Description |
|---|---|---|
user_id | String | Unique identifier of the assigned user |
name | String | Name of the assigned user |
String | Email address of the assigned user | |
phone | String | Phone number of the assigned user |
job_title | String | Job title/designation of the assigned user |
Example:
"assigned_to": {
"user_id": "<uuid>",
"name": "test user",
"email": "[email protected]",
"phone": "0000000000",
"job_title": "Sales Manager"
}Change History
The change_history array contains the history of changes made to the case.
Each entry represents a change and captures the relevant case information at the time of that change.
Field | Type | Description |
|---|---|---|
change_id | String | Unique identifier of the change record |
changed_by | Object | User who made the change |
changed_at | DateTime | Timestamp when the change was made |
status | Object | Status associated with the change |
priority | String | Priority associated with the change |
risk_level | Object | Risk level associated with the change |
category | Object | Category associated with the change |
assigned_to | Object / Null | User assigned to the case at the time of the change |
comments | String / Null | Comments added as part of the change |
Changed By
The changed_by object identifies the user who performed the change.
Field | Type | Description |
|---|---|---|
user_id | String | Unique identifier of the user who made the change |
name | String | Name of the user |
String | Email address of the user | |
phone | String | Phone number of the user |
job_title | String | Job title/designation of the user |
Example:
"changed_by": {
"user_id": "8c315fbd-1b81-47db-8311-6583692eff57",
"name": "Chaitra M",
"email": "[email protected]",
"phone": "0000000000",
"job_title": "Compliance Manager"
}Date and Time Format
All timestamps are returned in ISO 8601 UTC format.
Example:
2026-09-02T07:07:20.763788ZThe Z indicates that the timestamp is in UTC.
Error Responses
404 CASE_NOT_FOUND
The journey exists and belongs to the authenticated client, but no case has been created for the journey.
{
"status": "CASE_NOT_FOUND",
"message": "No case has been created for this journey"
}Recommended client handling: Treat this as "no case exists for this journey" rather than as a system failure.
404 JOURNEY_NOT_FOUND
The journey does not exist or does not belong to the authenticated client.
{
"status": "JOURNEY_NOT_FOUND",
"message": "Journey not found"
}401 UNAUTHORIZED
The request contains missing or invalid authentication credentials.
{
"status": "UNAUTHORIZED",
"message": "Invalid authentication credentials"
}403 FORBIDDEN
The request can be rejected when the calling IP is not present in the configured IP allowlist.
{
"status": "FORBIDDEN",
"message": "Forbidden - IP not whitelisted"
}500 INTERNAL_SERVER_ERROR
The case could not be retrieved because of a server-side error.
{
"status": "INTERNAL_SERVER_ERROR",
"message": "Failed to fetch case details"
}HTTP Status Summary
HTTP Status | Code | Description |
|---|---|---|
200 | - | Case successfully returned |
401 | UNAUTHORIZED | Missing or invalid authentication |
403 | FORBIDDEN | Calling IP is not allowlisted |
404 | CASE_NOT_FOUND | Journey exists but no case has been created |
404 | JOURNEY_NOT_FOUND | Journey does not exist for the client |
500 | INTERNAL_SERVER_ERROR | Case could not be retrieved |