ServiceNow Trouble Ticket Open API

The ServiceNow Trouble Ticket Open API provides endpoints to create, update, and retrieve data from Case, Incident, and Service Problem Case tables. It is a ServiceNow implementation of the TM Forum Trouble Ticket Management API REST specification for managing ticket information between external ticketing systems and the ServiceNow AI Platform.

OpenAPI Specification

trouble-ticket-openapi.yaml Raw ↑
openapi: 3.1.0
info:
  title: ServiceNow Trouble Ticket Open API
  description: |
    The Trouble Ticket Open API provides endpoints to create, update, and retrieve data from the Case [sn_customerservice_case], 
    Incident [incident], and Service Problem Case [sn_sprb_mgmt_case] tables.

    Use this API to manage ticket information between external ticketing systems and the ServiceNow AI Platform.

    This API is a ServiceNow implementation of the TM Forum Trouble Ticket Management API REST specification, 
    based on TMF621 Trouble Ticket Management API User Guide v5.0.0, September 2024.

    **Authentication**: The calling user must have the `ticket_integrator` role.
  version: Zurich
  contact:
    name: ServiceNow
    url: https://docs.servicenow.com
  x-namespace: sn_ind_tsm_sdwan

servers:
- url: https://{instance}.servicenow.com/api/sn_ind_tsm_sdwan/ticket
  description: ServiceNow instance
  variables:
    instance:
      default: instance
      description: Your ServiceNow instance name

security:
- basicAuth: []

tags:
- name: Trouble Ticket
  description: Operations for managing trouble tickets (Cases, Incidents, and Service Problem Cases)

paths:
  /troubleTicket:
    get:
      tags:
      - Trouble Ticket
      summary: Servicenow Retrieve All Trouble Tickets
      description: Retrieves a list of all trouble ticket records from the Case, Incident, and Service Problem Case tables.
      operationId: getTroubleTickets
      parameters:
      - name: fields
        in: query
        description: List of fields to return in the response. Invalid fields are ignored.
        required: false
        schema:
          type: string
        example: "id,name,description,status,severity,ticketType"
      - name: id
        in: query
        description: Filter trouble tickets by sys_id
        required: false
        schema:
          type: string
        example: abc123
      - name: limit
        in: query
        description: Maximum number of records to return
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 25
        example: 10
      - name: offset
        in: query
        description: Starting index at which to begin retrieving records
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
        example: 10
      - name: severity
        in: query
        description: Filter trouble tickets by severity
        required: false
        schema:
          type: string
        example: example_value
      - name: status
        in: query
        description: Filter trouble tickets by status
        required: false
        schema:
          type: string
        example: example_value
      - name: ticketType
        in: query
        description: Filter trouble tickets by ticket type
        required: false
        schema:
          type: string
          enum:
          - Case
          - Incident
          - Service Problem Case
        example: Case
      responses:
        '200':
          description: Request successfully processed. Full resource returned in response (no pagination).
          headers:
            Content-Type:
              schema:
                type: string
                default: application/json
            X-Total-Count:
              description: Total number of records available on the server
              schema:
                type: integer
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TroubleTicket'
              examples:
                Gettroubletickets200Example:
                  summary: Default getTroubleTickets 200 response
                  x-microcks-default: true
                  value:
                  - '@type': example_value
                    id: abc123
                    href: example_value
                    creationDate: '2026-01-15T10:30:00Z'
                    lastUpdate: '2026-01-15T10:30:00Z'
                    name: Example Title
                    description: A sample description.
                    severity: example_value
                    status: example_value
                    ticketType: Case
                    channel:
                      name: Example Title
                    note:
                    - {}
                    relatedEntity:
                    - {}
                    relatedParty:
                    - {}
        '206':
          description: Partial resource returned in response (with pagination).
          headers:
            Content-Range:
              description: Range of content returned in a paginated call
              schema:
                type: string
              example: "items 3-5"
            Content-Type:
              schema:
                type: string
                default: application/json
            Link:
              description: Links to navigate through query results (first, last, next, previous)
              schema:
                type: string
            X-Total-Count:
              description: Total number of records available on the server
              schema:
                type: integer
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TroubleTicket'
              examples:
                Gettroubletickets206Example:
                  summary: Default getTroubleTickets 206 response
                  x-microcks-default: true
                  value:
                  - '@type': example_value
                    id: abc123
                    href: example_value
                    creationDate: '2026-01-15T10:30:00Z'
                    lastUpdate: '2026-01-15T10:30:00Z'
                    name: Example Title
                    description: A sample description.
                    severity: example_value
                    status: example_value
                    ticketType: Case
                    channel:
                      name: Example Title
                    note:
                    - {}
                    relatedEntity:
                    - {}
                    relatedParty:
                    - {}
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Gettroubletickets400Example:
                  summary: Default getTroubleTickets 400 response
                  x-microcks-default: true
                  value:
                    error:
                      message: example_value
                      detail: example_value
        '404':
          description: Record not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'

              examples:
                Gettroubletickets404Example:
                  summary: Default getTroubleTickets 404 response
                  x-microcks-default: true
                  value:
                    error:
                      message: example_value
                      detail: example_value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      tags:
      - Trouble Ticket
      summary: Servicenow Create a Trouble Ticket
      description: Creates a record in the Case, Incident, or Service Problem Case table.
      operationId: createTroubleTicket
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TroubleTicketCreate'
            examples:
              CreatetroubleticketRequestExample:
                summary: Default createTroubleTicket request
                x-microcks-default: true
                value:
                  name: Example Title
                  description: A sample description.
                  severity: "1"
                  status: example_value
                  ticketType: Case
                  channel:
                    name: Example Title
                  note:
                  - text: example_value
                    '@type': comments
                  relatedEntity:
                  - id: abc123
                    '@referredType': asset
                  relatedParty:
                  - id: abc123
                    '@referredType': customer
      responses:
        '201':
          description: Successful. The request was successfully processed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TroubleTicket'
              examples:
                Createtroubleticket201Example:
                  summary: Default createTroubleTicket 201 response
                  x-microcks-default: true
                  value:
                    '@type': example_value
                    id: abc123
                    href: example_value
                    creationDate: '2026-01-15T10:30:00Z'
                    lastUpdate: '2026-01-15T10:30:00Z'
                    name: Example Title
                    description: A sample description.
                    severity: example_value
                    status: example_value
                    ticketType: Case
                    channel:
                      name: Example Title
                    note:
                    - '@type': example_value
                      text: example_value
                      date: '2026-01-15T10:30:00Z'
                      author: example_value
                    relatedEntity:
                    - '@type': example_value
                      id: abc123
                      href: example_value
                      name: Example Title
                      role: example_value
                      '@referredType': asset
                    relatedParty:
                    - id: abc123
                      name: Example Title
                      '@referredType': assigned_to
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'

              examples:
                Createtroubleticket400Example:
                  summary: Default createTroubleTicket 400 response
                  x-microcks-default: true
                  value:
                    error:
                      message: example_value
                      detail: example_value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /troubleTicket/{id}:
    get:
      tags:
      - Trouble Ticket
      summary: Servicenow Retrieve a Specific Trouble Ticket
      description: Retrieves a specified record from the Case, Incident, or Service Problem Case table.
      operationId: getTroubleTicketById
      parameters:
      - name: id
        in: path
        description: Sys_id of the case or incident record to retrieve
        required: true
        schema:
          type: string
        example: abc123
      - name: fields
        in: query
        description: List of fields to return in the response. Invalid fields are ignored.
        required: false
        schema:
          type: string
        example: example_value
      responses:
        '200':
          description: Successful. The request was successfully processed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TroubleTicket'
              examples:
                Gettroubleticketbyid200Example:
                  summary: Default getTroubleTicketById 200 response
                  x-microcks-default: true
                  value:
                    '@type': example_value
                    id: abc123
                    href: example_value
                    creationDate: '2026-01-15T10:30:00Z'
                    lastUpdate: '2026-01-15T10:30:00Z'
                    name: Example Title
                    description: A sample description.
                    severity: example_value
                    status: example_value
                    ticketType: Case
                    channel:
                      name: Example Title
                    note:
                    - '@type': example_value
                      text: example_value
                      date: '2026-01-15T10:30:00Z'
                      author: example_value
                    relatedEntity:
                    - '@type': example_value
                      id: abc123
                      href: example_value
                      name: Example Title
                      role: example_value
                      '@referredType': asset
                    relatedParty:
                    - id: abc123
                      name: Example Title
                      '@referredType': assigned_to
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Gettroubleticketbyid400Example:
                  summary: Default getTroubleTicketById 400 response
                  x-microcks-default: true
                  value:
                    error:
                      message: example_value
                      detail: example_value
        '404':
          description: Record not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'

              examples:
                Gettroubleticketbyid404Example:
                  summary: Default getTroubleTicketById 404 response
                  x-microcks-default: true
                  value:
                    error:
                      message: example_value
                      detail: example_value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      tags:
      - Trouble Ticket
      summary: Servicenow Update a Trouble Ticket
      description: Updates a specified record in the Case, Incident, or Service Problem Case table.
      operationId: updateTroubleTicket
      parameters:
      - name: id
        in: path
        description: Sys_id of the case or incident record to update
        required: true
        schema:
          type: string
        example: abc123
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TroubleTicketUpdate'
            examples:
              UpdatetroubleticketRequestExample:
                summary: Default updateTroubleTicket request
                x-microcks-default: true
                value:
                  name: Example Title
                  description: A sample description.
                  severity: "1"
                  status: example_value
                  channel:
                    name: Example Title
                  note:
                  - text: example_value
                    '@type': comments
                  relatedEntity:
                  - id: abc123
                    '@referredType': asset
                  relatedParty:
                  - id: abc123
                    '@referredType': customer
      responses:
        '200':
          description: Successful. The request was successfully processed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TroubleTicket'
              examples:
                Updatetroubleticket200Example:
                  summary: Default updateTroubleTicket 200 response
                  x-microcks-default: true
                  value:
                    '@type': example_value
                    id: abc123
                    href: example_value
                    creationDate: '2026-01-15T10:30:00Z'
                    lastUpdate: '2026-01-15T10:30:00Z'
                    name: Example Title
                    description: A sample description.
                    severity: example_value
                    status: example_value
                    ticketType: Case
                    channel:
                      name: Example Title
                    note:
                    - '@type': example_value
                      text: example_value
                      date: '2026-01-15T10:30:00Z'
                      author: example_value
                    relatedEntity:
                    - '@type': example_value
                      id: abc123
                      href: example_value
                      name: Example Title
                      role: example_value
                      '@referredType': asset
                    relatedParty:
                    - id: abc123
                      name: Example Title
                      '@referredType': assigned_to
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Updatetroubleticket400Example:
                  summary: Default updateTroubleTicket 400 response
                  x-microcks-default: true
                  value:
                    error:
                      message: example_value
                      detail: example_value
        '404':
          description: Record not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'

              examples:
                Updatetroubleticket404Example:
                  summary: Default updateTroubleTicket 404 response
                  x-microcks-default: true
                  value:
                    error:
                      message: example_value
                      detail: example_value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Basic authentication with ServiceNow credentials. User must have the ticket_integrator role.

  schemas:
    TroubleTicket:
      type: object
      properties:
        '@type':
          type: string
          default: TroubleTicket
          description: This value is always TroubleTicket
          example: example_value
        id:
          type: string
          description: The sys_id of the case or incident record
          example: abc123
        href:
          type: string
          description: Relative link to the case or incident record
          example: example_value
        creationDate:
          type: string
          format: date-time
          description: The date that the case or incident record was created
          example: '2026-01-15T10:30:00Z'
        lastUpdate:
          type: string
          format: date-time
          description: The date the record was last updated
          example: '2026-01-15T10:30:00Z'
        name:
          type: string
          description: The name of the trouble ticket, typically a short description of the issue
          example: Example Title
        description:
          type: string
          description: The description of the issue from the ticket
          example: A sample description.
        severity:
          type: string
          description: The severity of the issue described by the trouble ticket
          example: "2 - High"
        status:
          type: string
          description: The current status of the trouble ticket
          example: example_value
        ticketType:
          type: string
          enum:
          - Case
          - Incident
          - Service Problem Case
          description: The type of ticket
          example: Case
        channel:
          $ref: '#/components/schemas/Channel'
        note:
          type: array
          description: A list of all comments on the ticket (excludes work notes)
          items:
            $ref: '#/components/schemas/Note'
          example: []
        relatedEntity:
          type: array
          description: List of impacted assets, products, sold products, configuration items, or services
          items:
            $ref: '#/components/schemas/RelatedEntity'
          example: []
        relatedParty:
          type: array
          description: Details about contacts for the ticket
          items:
            $ref: '#/components/schemas/RelatedParty'

          example: []
    TroubleTicketCreate:
      type: object
      required:
      - description
      - severity
      - status
      properties:
        name:
          type: string
          description: Name of the trouble ticket, typically a short description of the issue
          example: Example Title
        description:
          type: string
          description: A description of the issue
          example: A sample description.
        severity:
          type: string
          enum:
          - "1"
          - "2"
          - "3"
          - "4"
          - "5"
          description: |
            The severity of the issue (must provide choice value only):
            - 1: Critical
            - 2: High
            - 3: Moderate
            - 4: Low
            - 5: Planning (Incident only)
          example: "1"
        status:
          type: string
          description: The current status of the trouble ticket (can provide choice label or value)
          example: example_value
        ticketType:
          type: string
          enum:
          - Case
          - Incident
          - Service Problem Case
          default: Incident
          description: The type of ticket to create
          example: Case
        channel:
          $ref: '#/components/schemas/ChannelInput'
        note:
          type: array
          description: List of work notes and comments to add to the ticket
          items:
            $ref: '#/components/schemas/NoteInput'
          example: []
        relatedEntity:
          type: array
          description: List of impacted assets, products, sold products, configuration items, or services
          items:
            $ref: '#/components/schemas/RelatedEntityInput'
          example: []
        relatedParty:
          type: array
          description: Details about contacts for the ticket
          items:
            $ref: '#/components/schemas/RelatedPartyInput'

          example: []
    TroubleTicketUpdate:
      type: object
      properties:
        name:
          type: string
          description: Name of the trouble ticket, typically a short description of the issue
          example: Example Title
        description:
          type: string
          description: Description of the issue
          example: A sample description.
        severity:
          type: string
          enum:
          - "1"
          - "2"
          - "3"
          - "4"
          - "5"
          description: |
            The severity of the issue (must provide choice value only):
            - 1: Critical
            - 2: High
            - 3: Moderate
            - 4: Low
            - 5: Planning (Incident only)
          example: "1"
        status:
          type: string
          description: The current status of the trouble ticket (can provide choice label or value)
          example: example_value
        channel:
          $ref: '#/components/schemas/ChannelInput'
        note:
          type: array
          description: List of work notes and comments to add to the ticket
          items:
            $ref: '#/components/schemas/NoteInput'
          example: []
        relatedEntity:
          type: array
          description: List of impacted assets, products, sold products, configuration items, or services
          items:
            $ref: '#/components/schemas/RelatedEntityInput'
          example: []
        relatedParty:
          type: array
          description: Details about contacts for the ticket
          items:
            $ref: '#/components/schemas/RelatedPartyInput'

          example: []
    Channel:
      type: object
      properties:
        name:
          type: string
          description: The name of the contact method

          example: Example Title
    ChannelInput:
      type: object
      properties:
        name:
          type: string
          description: Name of the contact method (can provide choice label or value, e.g., 'Virtual Agent' or 'virtual_agent')

          example: Example Title
    Note:
      type: object
      properties:
        '@type':
          type: string
          default: comments
          description: The type of note (always 'comments' in responses)
          example: example_value
        text:
          type: string
          description: The comment text
          example: example_value
        date:
          type: string
          format: date-time
          description: The date the comment was created
          example: '2026-01-15T10:30:00Z'
        author:
          type: string
          description: The name of the user who wrote the comment

          example: example_value
    NoteInput:
      type: object
      required:
      - text
      - '@type'
      properties:
        text:
          type: string
          description: Note text
          example: example_value
        '@type':
          type: string
          enum:
          - comments
          - work_notes
          description: Type of note (determines whether recorded in Work notes or Additional comments field)

          example: comments
    RelatedEntity:
      type: object
      properties:
        '@type':
          type: string
          default: relatedEntity
          description: This value is always relatedEntity
          example: example_value
        id:
          type: string
          description: Sys_id of the impacted item or service
          example: abc123
        href:
          type: string
          description: Returns an empty string
          example: example_value
        name:
          type: string
          description: Name of the impacted item or service
          example: Example Title
        role:
          type: string
          description: Description of the impacted item or service
          example: example_value
        '@referredType':
          type: string
          enum:
          - asset
          - product
          - product_inventory
          - cmdb_ci
          - cmdb_ci_service
          description: Type of item or service

          example: asset
    RelatedEntityInput:
      type: object
      required:
      - id
      - '@referredType'
      properties:
        id:
          type: string
          description: Sys_id of the impacted item or service
          example: abc123
        '@referredType':
          type: string
          enum:
          - asset
          - product
          - product_inventory
          - cmdb_ci
          - cmdb_ci_service
          description: Type of item or service

          example: asset
    RelatedParty:
      type: object
      properties:
        id:
          type: string
          description: Sys_id of the related party
          example: abc123
        name:
          type: string
          description: Name of the related party
          example: Example Title
        '@referredType':
          type: string
          enum:
          - assigned_to
          - assignment_group
          - customer
          - customer_contact
          description: |
            Type of related party:
            - assigned_to: User assigned to work on the ticket
            - assignment_group: Group assigned to work on the ticket
            - customer: Company or account for the ticket
            - customer_contact: Caller or contact for the ticket

          example: assigned_to
    RelatedPartyInput:
      type: object
      required:
      - id
      - '@referredType'
      properties:
        id:
          type: string
          description: Sys_id of the related party
          example: abc123
        '@referredType':
          type: string
          enum:
          - customer
          - customer_contact
          description: |
            Type of related party:
            - customer: Company or account for the ticket
            - customer_contact: Caller or contact for the ticket

          example: customer
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              description: Error message
            detail:
              type: string
              description: Detailed error information
          example: example_value