API Reference

Public API endpoints for managing cases — create, search, update, assign, change status, and delete.

Endpoints

MethodEndpointDescription
GET/api/cases/{id}Get a case by ID
POST/api/casesCreate a new case
PUT/api/casesFull update of a case
PATCH/api/casesPartial update (only non-null fields are applied)
DELETE/api/cases/{id}Delete a case (soft delete)
POST/api/cases/searchSearch cases with filters and pagination
POST/api/cases/{id}/assigntoAssign a case to a user
POST/api/cases/{id}/changestatusChange the status of a case

All endpoints require authentication. Read endpoints require case read access, while write operations (create, update, assign, delete) require case admin access.

OmniumCase Model

The full case model returned by GET and search endpoints:

FieldTypeDescription
IdstringUnique case identifier
CaseNumberstringHuman-readable case number
SubjectstringCase title
DescriptionstringCase description
StatusstringCurrent status
PrioritystringCurrent priority
SourcestringCase origin (Email, Phone, Web, etc.)
AssignedToUserIdstringAssigned agent's user ID
AssignedToNamestringAssigned agent's display name
CustomerIdstringLinked customer ID
CustomerNamestringCustomer display name
CustomerEmailstringCustomer email address
Tagsstring[]List of tags
RelatedOrdersstring[]Linked order IDs
RelatedCustomersstring[]Linked customer IDs
RelatedProjectsstring[]Linked project IDs
RelatedCartsstring[]Linked cart IDs
RelatedSkuIdsstring[]Related SKU IDs
RelatedProductIdsstring[]Related product IDs
ParticipantsOmniumCaseParticipant[]Case participants
CaseNotesOmniumComment[]Public case notes (visible to customer)
InternalNotesOmniumComment[]Internal notes (staff only)
PropertiesOmniumPropertyItem[]Custom properties
CaseStatusLogOmniumCaseStatusLogItem[]Status change history
FollowUpDateDateTime?Follow-up reminder date
ResolvedDateDateTime?When the case was resolved
ClosedDateDateTime?When the case was closed
LastCommentDateDateTime?Date of the last comment (UTC)
LastCommenterNamestringName of the last commenter
CommentCountintTotal number of comments
CreatedDateTimeCreation timestamp (UTC)
ChangedDateTimeLast modification timestamp (UTC)
MarketIdstringMarket ID
MarketGroupIdstringMarket group ID

OmniumCaseParticipant

FieldTypeDescription
NamestringParticipant display name
EmailstringParticipant email
CustomerIdstringOptional linked customer ID
RolestringRole in the case

OmniumCaseStatusLogItem

FieldTypeDescription
StatusstringStatus name
TimestampDateTimeWhen the status was set
DurationSincePreviousMslong?Milliseconds since the previous status change (null for the first status)

OmniumCasePatch Model

Use PATCH for partial updates. Only non-null fields are applied:

FieldTypeDescription
IdstringRequired. Case ID to update
SubjectstringUpdated subject
DescriptionstringUpdated description
StatusstringUpdated status
PrioritystringUpdated priority
SourcestringUpdated source
AssignedToUserIdstringUpdated assigned agent's user ID
AssignedToNamestringUpdated assigned agent's display name
CustomerNamestringUpdated customer name
CustomerEmailstringUpdated customer email
CustomerIdstringUpdated customer ID
Tagsstring[]Updated tags
RelatedOrdersstring[]Updated related order IDs
RelatedCustomersstring[]Updated related customer IDs
RelatedProjectsstring[]Updated related project IDs
RelatedCartsstring[]Updated related cart IDs
RelatedSkuIdsstring[]Updated related SKU IDs
RelatedProductIdsstring[]Updated related product IDs
ParticipantsOmniumCaseParticipant[]Updated participants
PropertiesOmniumPropertyItem[]Updated custom properties
FollowUpDateDateTime?Updated follow-up date
MarketIdstringUpdated market ID
MarketGroupIdstringUpdated market group ID

Use PATCH for most updates. It's safer — you won't accidentally clear fields you didn't intend to change. See the PATCH patterns section in the API Developer Guide for details.

OmniumCaseSearchRequest

FieldTypeDescription
SearchTextstringFree-text search across case number, subject, description, customer name
StatusstringFilter by status
PrioritystringFilter by priority
AssignedToUserIdstringFilter by assigned user
Tagsstring[]Filter by tags
CustomerIdstringFilter by linked customer
OrderIdstringFilter by linked order
DateFromDateTime?Cases created after this date
DateToDateTime?Cases created before this date
SortOrderstringSort field and direction
PageintPage number (zero-based)
TakeintResults per page (default: 20)
IncludeDeletedboolInclude soft-deleted cases

Sort Options

ValueDescription
CreatedAscending / CreatedDescendingSort by creation date
ChangedAscending / ChangedDescendingSort by last modified date
StatusAscending / StatusDescendingSort by status
PriorityAscending / PriorityDescendingSort by priority
SubjectAscending / SubjectDescendingSort by subject
CustomerNameAscending / CustomerNameDescendingSort by customer name
AssignedToNameAscending / AssignedToNameDescendingSort by assignee name
FollowUpDateAscending / FollowUpDateDescendingSort by follow-up date

Code Examples

Create a Case

POST /api/cases
Content-Type: application/json
 
{
  "Subject": "Order arrived damaged",
  "Description": "Customer reports that package was visibly damaged on arrival. Items inside may be affected.",
  "Priority": "High",
  "Source": "Phone",
  "CustomerEmail": "customer@example.com",
  "Tags": ["Shipping", "Product Issue"],
  "RelatedOrders": ["ORD-10542"]
}

Search Cases

POST /api/cases/search
Content-Type: application/json
 
{
  "SearchText": "damaged",
  "Status": "New",
  "Priority": "High",
  "SortOrder": "CreatedDescending",
  "Page": 0,
  "Take": 20
}

Response:

{
  "Items": [
    {
      "Id": "abc123",
      "CaseNumber": "CS-1042",
      "Subject": "Order arrived damaged",
      "Status": "New",
      "Priority": "High",
      "CustomerName": "Jane Smith",
      "Created": "2026-03-15T10:30:00Z"
    }
  ],
  "TotalHits": 1,
  "Page": 0,
  "PageSize": 20
}

Partial Update (PATCH)

PATCH /api/cases
Content-Type: application/json
 
{
  "Id": "abc123",
  "Priority": "Critical",
  "Tags": ["Shipping", "Product Issue", "Escalated"]
}

Assign a Case

POST /api/cases/abc123/assignto?userId=user-456&userName=John%20Agent

Change Status

POST /api/cases/abc123/changestatus?status=In%20Progress

Swagger Documentation

For the full interactive API reference including request/response schemas, see the Swagger documentation available at your Omnium API instance: /swagger.

On this page