ITSM API

IT Service Management — Incidents, Problems, Changes, Service Catalog, Service Requests, SLA Policies, Knowledge Base, and CMDB.

All endpoints prefixed with /api/v1/itsm

Incidents

Log, prioritize, and resolve incidents with SLA tracking.

POST /api/v1/itsm/incidents

Create a new incident.

Auth: Bearer token · itsm.create

Request Body
json
{
  "title": "Email server down",
  "description": "Users cannot send or receive emails",
  "category": "infrastructure",
  "urgency": "high",
  "impact": "high",
  "reportedBy": "John Smith"
}
GET /api/v1/itsm/incidents

List incidents with pagination and filtering.

Auth: Bearer token · itsm.view

Query Parameters
Parameter Type Description
page number Page number
limit number Items per page
search string Search by title or description
status string Filter by status
priority string Filter by priority
category string Filter by category
assigneeId number Filter by assignee
GET /api/v1/itsm/incidents/stats

Get incident statistics by status and priority.

Auth: Bearer token · itsm.view

GET /api/v1/itsm/incidents/:id

Get incident by ID (includes timeline and notes).

Auth: Bearer token · itsm.view

PUT /api/v1/itsm/incidents/:id

Update an incident.

Auth: Bearer token · itsm.edit

POST /api/v1/itsm/incidents/:id/status

Update incident status.

Auth: Bearer token · itsm.edit

Request Body
json
{
  "status": "in_progress"
}
POST /api/v1/itsm/incidents/:id/assign

Assign incident to a user.

Auth: Bearer token · itsm.edit

Request Body
json
{
  "assigneeId": 2
}
POST /api/v1/itsm/incidents/:id/notes

Add a note or investigation update.

Auth: Bearer token · itsm.edit

Request Body
json
{
  "content": "Investigating root cause",
  "noteType": "investigation",
  "isInternal": true
}
POST /api/v1/itsm/incidents/:id/resolve

Resolve the incident.

Auth: Bearer token · itsm.edit

Request Body
json
{
  "resolutionNotes": "Restarted mail service"
}

Problems

Root cause analysis with incident linking.

POST /api/v1/itsm/problems

Create a new problem.

Auth: Bearer token · itsm.create

Request Body
json
{
  "title": "Recurring email outages",
  "description": "Email server crashes every 2 weeks",
  "category": "infrastructure",
  "priority": "high"
}
GET /api/v1/itsm/problems

List problems with pagination and filtering.

Auth: Bearer token · itsm.view

Query Parameters
Parameter Type Description
page number Page number
limit number Items per page
search string Search by title or description
status string Filter by status
priority string Filter by priority
category string Filter by category
GET /api/v1/itsm/problems/stats

Get problem statistics.

Auth: Bearer token · itsm.view

GET /api/v1/itsm/problems/:id

Get problem by ID (includes linked incidents).

Auth: Bearer token · itsm.view

PUT /api/v1/itsm/problems/:id

Update a problem.

Auth: Bearer token · itsm.edit

POST /api/v1/itsm/problems/:id/status

Update problem status.

Auth: Bearer token · itsm.edit

POST /api/v1/itsm/problems/:id/link-incident

Link an incident to this problem.

Auth: Bearer token · itsm.edit

Request Body
json
{
  "incidentId": 5
}
POST /api/v1/itsm/problems/:id/convert-to-known-error

Convert problem to a known error.

Auth: Bearer token · itsm.edit

Known Errors

Documented workarounds for known issues.

GET /api/v1/itsm/known-errors

List known errors.

Auth: Bearer token · itsm.view

Query Parameters
Parameter Type Description
page number Page number
limit number Items per page
search string Search by title or description
status string Filter by status
GET /api/v1/itsm/known-errors/:id

Get known error by ID.

Auth: Bearer token · itsm.view

PUT /api/v1/itsm/known-errors/:id

Update workaround or status.

Auth: Bearer token · itsm.edit

Changes

Change request management with CAB approval workflow.

POST /api/v1/itsm/changes

Create a new change request.

Auth: Bearer token · itsm.create

Request Body
json
{
  "title": "Upgrade email server",
  "description": "Upgrade to latest version",
  "category": "infrastructure",
  "changeType": "normal",
  "riskLevel": "medium",
  "plannedStartDate": "2026-07-15T02:00:00Z",
  "plannedEndDate": "2026-07-15T06:00:00Z",
  "implementationPlan": "...",
  "rollbackPlan": "...",
  "testPlan": "..."
}
GET /api/v1/itsm/changes

List change requests with pagination and filtering.

Auth: Bearer token · itsm.view

Query Parameters
Parameter Type Description
page number Page number
limit number Items per page
search string Search by title or description
status string Filter by status
changeType string Filter by change type
riskLevel string Filter by risk level
category string Filter by category
GET /api/v1/itsm/changes/stats

Get change request statistics.

Auth: Bearer token · itsm.view

GET /api/v1/itsm/changes/:id

Get change request by ID (includes approvals and tasks).

Auth: Bearer token · itsm.view

PUT /api/v1/itsm/changes/:id

Update a change request.

Auth: Bearer token · itsm.edit

POST /api/v1/itsm/changes/:id/status

Update change status (8-step transitions).

Auth: Bearer token · itsm.edit

POST /api/v1/itsm/changes/:id/submit

Submit change for CAB approval.

Auth: Bearer token · itsm.edit

POST /api/v1/itsm/changes/:id/approve

CAB member approval.

Auth: Bearer token · itsm.manage

POST /api/v1/itsm/changes/:id/reject

CAB member rejection.

Auth: Bearer token · itsm.manage

POST /api/v1/itsm/changes/:id/tasks

Add an implementation task.

Auth: Bearer token · itsm.edit

PUT /api/v1/itsm/changes/:id/tasks/:taskId

Update an implementation task.

Auth: Bearer token · itsm.edit

Service Catalog

Self-service catalog with categories and service items.

POST /api/v1/itsm/service-catalog/categories

Create a catalog category.

Auth: Bearer token · itsm.manage

Request Body
json
{
  "name": "IT Equipment",
  "description": "Hardware and peripherals"
}
GET /api/v1/itsm/service-catalog/categories

List catalog categories.

Auth: Bearer token · itsm.view

PUT /api/v1/itsm/service-catalog/categories/:id

Update a catalog category.

Auth: Bearer token · itsm.manage

DELETE /api/v1/itsm/service-catalog/categories/:id

Delete a catalog category.

Auth: Bearer token · itsm.manage

POST /api/v1/itsm/service-catalog/items

Create a service item.

Auth: Bearer token · itsm.manage

Request Body
json
{
  "categoryId": 1,
  "name": "New Laptop",
  "description": "Request a new laptop",
  "approvalRequired": true,
  "estimatedDelivery": "5 business days"
}
GET /api/v1/itsm/service-catalog/items

List service items.

Auth: Bearer token · itsm.view

Query Parameters
Parameter Type Description
categoryId number Filter by category
search string Search by name or description
GET /api/v1/itsm/service-catalog/items/:id

Get service item by ID.

Auth: Bearer token · itsm.view

PUT /api/v1/itsm/service-catalog/items/:id

Update a service item.

Auth: Bearer token · itsm.manage

DELETE /api/v1/itsm/service-catalog/items/:id

Delete a service item.

Auth: Bearer token · itsm.manage

Service Requests

Fulfill service requests with approval workflow.

POST /api/v1/itsm/service-requests

Create a service request.

Auth: Bearer token · itsm.create

Request Body
json
{
  "catalogItemId": 1,
  "description": "Need a new laptop for new hire",
  "priority": "medium"
}
GET /api/v1/itsm/service-requests

List service requests with pagination and filtering.

Auth: Bearer token · itsm.view

Query Parameters
Parameter Type Description
page number Page number
limit number Items per page
search string Search by description
status string Filter by status
priority string Filter by priority
catalogItemId number Filter by catalog item
GET /api/v1/itsm/service-requests/stats

Get service request statistics.

Auth: Bearer token · itsm.view

GET /api/v1/itsm/service-requests/:id

Get service request by ID.

Auth: Bearer token · itsm.view

PUT /api/v1/itsm/service-requests/:id

Update a service request.

Auth: Bearer token · itsm.edit

POST /api/v1/itsm/service-requests/:id/approve

Approve the service request.

Auth: Bearer token · itsm.manage

POST /api/v1/itsm/service-requests/:id/reject

Reject the service request.

Auth: Bearer token · itsm.manage

POST /api/v1/itsm/service-requests/:id/fulfill

Mark the service request as fulfilled.

Auth: Bearer token · itsm.edit

SLA Policies

Service level agreement policies with response and resolution targets.

POST /api/v1/itsm/sla/policies

Create an SLA policy.

Auth: Bearer token · itsm.manage

Request Body
json
{
  "name": "Critical Incident SLA",
  "description": "For P1 incidents",
  "priority": "critical",
  "responseTarget": 15,
  "resolutionTarget": 240,
  "responseUnit": "minutes",
  "resolutionUnit": "minutes"
}
GET /api/v1/itsm/sla/policies

List SLA policies.

Auth: Bearer token · itsm.view

GET /api/v1/itsm/sla/policies/:id

Get SLA policy by ID.

Auth: Bearer token · itsm.view

PUT /api/v1/itsm/sla/policies/:id

Update an SLA policy.

Auth: Bearer token · itsm.manage

DELETE /api/v1/itsm/sla/policies/:id

Delete an SLA policy.

Auth: Bearer token · itsm.manage

GET /api/v1/itsm/sla/compliance

Get SLA compliance statistics.

Auth: Bearer token · itsm.view

Knowledge Base

Searchable articles with categories.

POST /api/v1/itsm/kb/categories

Create a knowledge base category.

Auth: Bearer token · itsm.manage

GET /api/v1/itsm/kb/categories

List knowledge base categories.

Auth: Bearer token · itsm.view

PUT /api/v1/itsm/kb/categories/:id

Update a knowledge base category.

Auth: Bearer token · itsm.manage

DELETE /api/v1/itsm/kb/categories/:id

Delete a knowledge base category.

Auth: Bearer token · itsm.manage

POST /api/v1/itsm/kb/articles

Create a knowledge base article.

Auth: Bearer token · itsm.create

Request Body
json
{
  "categoryId": 1,
  "title": "How to reset your password",
  "content": "Step 1...",
  "status": "published"
}
GET /api/v1/itsm/kb/articles

List and search knowledge base articles.

Auth: Bearer token · itsm.view

Query Parameters
Parameter Type Description
page number Page number
limit number Items per page
search string Full-text search
categoryId number Filter by category
status string Filter by status
GET /api/v1/itsm/kb/articles/:id

Get article by ID.

Auth: Bearer token · itsm.view

PUT /api/v1/itsm/kb/articles/:id

Update an article.

Auth: Bearer token · itsm.edit

DELETE /api/v1/itsm/kb/articles/:id

Delete an article.

Auth: Bearer token · itsm.delete

CMDB

Configuration management database for IT asset tracking.

POST /api/v1/itsm/cmdb/config-items

Create a configuration item.

Auth: Bearer token · itsm.create

Request Body
json
{
  "name": "Mail Server 01",
  "ciType": "server",
  "status": "active",
  "environment": "production",
  "owner": "IT Ops",
  "description": "Primary mail server"
}
GET /api/v1/itsm/cmdb/config-items

List configuration items with pagination and filtering.

Auth: Bearer token · itsm.view

Query Parameters
Parameter Type Description
page number Page number
limit number Items per page
search string Search by name or description
ciType string Filter by CI type
status string Filter by status
environment string Filter by environment
GET /api/v1/itsm/cmdb/config-items/:id

Get configuration item by ID (includes relationships and linked incidents).

Auth: Bearer token · itsm.view

PUT /api/v1/itsm/cmdb/config-items/:id

Update a configuration item.

Auth: Bearer token · itsm.edit

DELETE /api/v1/itsm/cmdb/config-items/:id

Delete a configuration item.

Auth: Bearer token · itsm.delete

POST /api/v1/itsm/cmdb/config-items/:id/relationships

Add a relationship to another CI.

Auth: Bearer token · itsm.edit

Request Body
json
{
  "relatedItemId": 2,
  "relationshipType": "depends_on"
}
DELETE /api/v1/itsm/cmdb/config-items/:id/relationships/:relId

Remove a CI relationship.

Auth: Bearer token · itsm.edit

POST /api/v1/itsm/cmdb/config-items/:id/link-incident

Link an incident to this configuration item.

Auth: Bearer token · itsm.edit

Request Body
json
{
  "incidentId": 5
}