Overview
The Standard Incident API is a REST integration layer that enables client systems to create, update, query, and manage ServiceNow incidents through a unified interface. It supports the full incident lifecycle, including attachments, incident tasks, and system health monitoring.
Key Capabilities
POST and PUT operations with comprehensive payload validation and ServiceNow field mapping
GET with 20+ filter parameters including state, date ranges, users, CI, and RPA/Moogsoft identifiers
Upload (async) and download attachments with Base64 encoding, up to ~3 MB per file
Stats and healthcheck endpoints for load balancers and observability tooling
Use Cases
- Monitoring Integration: Auto-create incidents from Nagios, Moogsoft, or other alerting systems
- Service Desk Automation: Programmatic ticket creation and updates from client portals
- Reporting Dashboards: Query active incidents with rich filtering for real-time dashboards
- Bi-Directional Sync: Keep external ticketing systems in sync with ServiceNow
Architecture
The API follows the MuleSoft API-Led Connectivity pattern, sitting between client systems and ServiceNow with routing, validation, and transformation logic.
Environment URLs
| Environment | Base URL |
|---|---|
| QC (Quality Control) | https://muleqc.diam.compucom.com/api/standard |
| Production | https://muleprod.diam.compucom.com/api/standard |
Available Versions
- v1 —
/api/standard/incident(Basic Auth; nointerfaceTyperequired on GET) - v2 —
/api/standard/v2/incident(OAuth 2.0 Bearer;interfaceTyperequired on GET; supports GET by incident number)
Authentication
The API supports two authentication methods depending on the API version selected.
Basic Authentication (v1)
Username and password base64-encoded in the Authorization header.
OAuth 2.0 (v2)
Token-based authentication with automatic refresh. Provides enhanced security with time-limited access tokens.
Request Envelope
Every POST and PUT request requires the following envelope fields, with the incident data nested inside payload:
| Field | Type | Required | Description |
|---|---|---|---|
transmitId |
string | Yes | Unique transaction identifier (not the client ticket number) |
interfaceType |
string | Yes | Interface type (e.g., "ESB Client", "Twilio") |
senderId |
string | Yes | Sender system identifier |
transmitDt |
string | Yes | Transaction timestamp in GMT (YYYY-MM-DDTHH:MM:SSZ) |
openedDt |
string | Yes | Incident open timestamp in GMT |
sourceRefNumber |
string | No | External reference number, useful for idempotent updates |
payload |
object | Yes | Incident data (must include longDescription and caller.company) |
API Endpoints
The API exposes the following operations. All endpoints are prefixed with /api/standard.
📝 POST /incident
Create a new incident in ServiceNow.
Response: 201 Created
✓ Success Response (201 Created)
🔄 PUT /incident
Update an existing incident. The incidentNumber field is required inside payload.
Response: 200 OK
🔍 GET /incident
Query incidents with 20+ filter parameters (state, date ranges, users, CI, include options, and more).
Response: 200 OK — v2 requires interfaceType; supports GET by {incidentNumber}.
📋 Full parameter list: See the API Specification.
📎 POST /incident/attachments
Upload attachments to an existing incident. Operation is asynchronous — a 202 response means accepted, not completed.
Response: 202 Accepted | Limits: max 5 attachments per request, ~3 MB per file
⬇️ GET /incident/attachments
Download an attachment from ServiceNow by sysId and fileName.
Supported types: PDF, PNG, JPEG, CSV, plain text, Office documents, ZIP, and more.
🗂️ POST /incidentTask
Create a task associated with an existing incident.
Response: 201 Created — returns generated TASK number.
🩺 GET /stats & GET /healthcheck
Observability endpoints. /stats returns detailed API and dependency health; /healthcheck is a lightweight liveness probe for load balancers.
Response Codes & Error Handling
| Code | Meaning | Usage |
|---|---|---|
| 200 | OK | Successful GET or PUT |
| 201 | Created | Successful POST |
| 202 | Accepted | Async attachment upload accepted |
| 400 | Bad Request | Invalid input or missing required fields |
| 404 | Not Found | Incident or resource not found |
| 500 | Internal Server Error | Retry with exponential backoff |
Support & Resources
- Interactive API Spec: Try requests and view examples in the API Specification
- Support Email: CompucomMuleSoftSupport@compucom.com
- MuleSoft Portal: Anypoint Exchange