Cisco XDR Incident API

Incident operations

OpenAPI Specification

cisco-xdr-incident-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CTIA Incident API
  version: 4178275a824512c2fd3a2acdb0e8277233919054 v2.71.0
  license:
    name: All Rights Reserved
    url: ''
  contact:
    name: 'Cisco Security Business Group -- Advanced Threat '
    url: http://github.com/threatgrid/ctia
    email: cisco-intel-api-support@cisco.com
  description: "A Threat Intelligence API service\n\n  This API provides a mechanism for making Judgements on the Disposition\n  of Observables, which are then distilled into a final Verdict.  A\n  Disposition is a statement regarding the malicious, or otherwise,\n  nature of an Observable.\n\n  The Judgements can be grouped into Indicators, which can be associated\n  with Campaigns, Actors and TTPs.  Feedback can be given on specific\n  Judgements, indicating agreement or disagreement, or clarification.\n\n  When an Observable with a malicious Verdict is seen, it can be recorded as\n  a Sighting, and the Relations that Observable had with other Observables can\n  be recorded as well.\n\n  We support a pre-defined set of Observable Types.  Each Observable Type has a\n  specific form of natural identifier, its ID, which is almost always\n  the default way it is represented when observed in the wild.\n\n  * Ipv4/IPv6  -- 192.168.1.1\n  * Domain/Hostname -- foo.com, www.bar.com\n  * SHA256  -- the sha256 checksum of a file, or other data blob\n  * MD5 -- the md5 checksum of a file, or other data blob\n  * SHA1 -- the sha1 checksum of a file, or other data blob\n  * URL -- A minimal form of the URL\n\n  The Verdict is derived from all of the Judgements on that Observable which\n  have not yet expired.  The highest priority Judgement becomes the\n  active verdict.  If there is more than one Judgement with that\n  priority, than Clean disposition has priority over all others, then\n  Malicious disposition, and so on down to Unknown.\n\n  <a href='/doc/README.md'>CTIA Documentation</a>"
  x-provenance:
    method: harvested
    authored_by: Cisco XDR (CTIA)
    harvested_by: API Evangelist
    harvested_on: '2026-08-19'
    first_party: true
    note: Published by Cisco. Retrieved unmodified except for this x-provenance block.
    provider_published: true
  x-evidence:
  - type: source
    url: https://private.intel.amp.cisco.com/index.html
  - type: raw
    url: https://private.intel.amp.cisco.com/swagger.json
servers:
- url: /
security:
- JWT: []
- oauth2:
  - private-intel
  - private-intel:read
  - private-intel:write
  - casebook
  - casebook:read
  - casebook:write
tags:
- name: Incident
  description: Incident operations
paths:
  /ctia/incident/{id}/status:
    post:
      tags:
      - Incident
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Incident'
            application/x-yaml:
              schema:
                $ref: '#/components/schemas/Incident'
            application/edn:
              schema:
                $ref: '#/components/schemas/Incident'
            application/transit+json:
              schema:
                $ref: '#/components/schemas/Incident'
            application/transit+msgpack:
              schema:
                $ref: '#/components/schemas/Incident'
      parameters:
      - in: query
        name: wait_for
        description: wait for updated entity to be available for search
        required: false
        schema:
          type: boolean
      - in: path
        name: id
        description: ''
        required: true
        schema:
          type: string
      summary: Update an Incident Status
      description: Requires capability create-incident.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncidentStatusUpdate'
          application/x-yaml:
            schema:
              $ref: '#/components/schemas/IncidentStatusUpdate'
          application/edn:
            schema:
              $ref: '#/components/schemas/IncidentStatusUpdate'
          application/transit+json:
            schema:
              $ref: '#/components/schemas/IncidentStatusUpdate'
          application/transit+msgpack:
            schema:
              $ref: '#/components/schemas/IncidentStatusUpdate'
        description: an Incident Status Update
        required: true
  /ctia/incident:
    post:
      tags:
      - Incident
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Incident'
            application/x-yaml:
              schema:
                $ref: '#/components/schemas/Incident'
            application/edn:
              schema:
                $ref: '#/components/schemas/Incident'
            application/transit+json:
              schema:
                $ref: '#/components/schemas/Incident'
            application/transit+msgpack:
              schema:
                $ref: '#/components/schemas/Incident'
      parameters:
      - in: query
        name: wait_for
        description: wait for entity to be available for search
        required: false
        schema:
          type: boolean
      summary: Adds a new Incident
      description: Requires capability create-incident.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewIncident'
          application/x-yaml:
            schema:
              $ref: '#/components/schemas/NewIncident'
          application/edn:
            schema:
              $ref: '#/components/schemas/NewIncident'
          application/transit+json:
            schema:
              $ref: '#/components/schemas/NewIncident'
          application/transit+msgpack:
            schema:
              $ref: '#/components/schemas/NewIncident'
        description: a new Incident
        required: true
  /ctia/incident/{id}:
    put:
      tags:
      - Incident
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Incident'
            application/x-yaml:
              schema:
                $ref: '#/components/schemas/Incident'
            application/edn:
              schema:
                $ref: '#/components/schemas/Incident'
            application/transit+json:
              schema:
                $ref: '#/components/schemas/Incident'
            application/transit+msgpack:
              schema:
                $ref: '#/components/schemas/Incident'
      parameters:
      - in: query
        name: wait_for
        description: wait for updated entity to be available for search
        required: false
        schema:
          type: boolean
      - in: path
        name: id
        description: ''
        required: true
        schema:
          type: string
      summary: Update an existing Incident
      description: Requires capability create-incident.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewIncident'
          application/x-yaml:
            schema:
              $ref: '#/components/schemas/NewIncident'
          application/edn:
            schema:
              $ref: '#/components/schemas/NewIncident'
          application/transit+json:
            schema:
              $ref: '#/components/schemas/NewIncident'
          application/transit+msgpack:
            schema:
              $ref: '#/components/schemas/NewIncident'
        description: an updated Incident
        required: true
    patch:
      tags:
      - Incident
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Incident'
            application/x-yaml:
              schema:
                $ref: '#/components/schemas/Incident'
            application/edn:
              schema:
                $ref: '#/components/schemas/Incident'
            application/transit+json:
              schema:
                $ref: '#/components/schemas/Incident'
            application/transit+msgpack:
              schema:
                $ref: '#/components/schemas/Incident'
      parameters:
      - in: query
        name: wait_for
        description: wait for patched entity to be available for search
        required: false
        schema:
          type: boolean
      - in: path
        name: id
        description: ''
        required: true
        schema:
          type: string
      summary: Partially update an existing Incident
      description: Requires capability create-incident.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartialNewIncident'
          application/x-yaml:
            schema:
              $ref: '#/components/schemas/PartialNewIncident'
          application/edn:
            schema:
              $ref: '#/components/schemas/PartialNewIncident'
          application/transit+json:
            schema:
              $ref: '#/components/schemas/PartialNewIncident'
          application/transit+msgpack:
            schema:
              $ref: '#/components/schemas/PartialNewIncident'
        description: Incident partial update
        required: true
    get:
      tags:
      - Incident
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartialIncident'
            application/x-yaml:
              schema:
                $ref: '#/components/schemas/PartialIncident'
            application/edn:
              schema:
                $ref: '#/components/schemas/PartialIncident'
            application/transit+json:
              schema:
                $ref: '#/components/schemas/PartialIncident'
            application/transit+msgpack:
              schema:
                $ref: '#/components/schemas/PartialIncident'
      summary: Get one Incident by ID
      parameters:
      - in: path
        name: id
        description: ''
        required: true
        schema:
          type: string
      - in: query
        name: fields
        description: ''
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - incident_time.remediated
            - assignees
            - detection_sources
            - schema_version
            - revision
            - incident_time.closed
            - incident_time.discovered
            - incident_time.contained
            - incident_time.reported
            - source
            - title
            - discovery_method
            - source_uri
            - incident_time.opened
            - intended_effect
            - status
            - language
            - id
            - promotion_method
            - severity
            - tlp
            - incident_time.rejected
            - techniques
            - timestamp
            - confidence
            - tactics
      description: Requires capability read-incident.
    delete:
      tags:
      - Incident
      responses:
        '204':
          description: ''
      x-no-doc: false
      parameters:
      - in: path
        name: id
        description: ''
        required: true
        schema:
          type: string
      - in: query
        name: wait_for
        description: wait for deleted entity to no more be available for search
        required: false
        schema:
          type: boolean
      summary: Delete one Incident
      description: Requires capability delete-incident.
  /ctia/incident/external_id/{external_id}:
    get:
      tags:
      - Incident
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartialIncident'
            application/x-yaml:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartialIncident'
            application/edn:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartialIncident'
            application/transit+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartialIncident'
            application/transit+msgpack:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartialIncident'
      parameters:
      - in: query
        name: sort_by
        description: Sort results on a field
        required: false
        schema:
          type: string
          enum:
          - schema_version
          - revision
          - source
          - title
          - source_uri
          - language
          - id
          - tlp
          - timestamp
      - in: query
        name: sort_order
        description: Sort direction
        required: false
        schema:
          type: string
          enum:
          - desc
          - asc
      - in: query
        name: offset
        description: Pagination Offset
        required: false
        schema:
          type: integer
          format: int64
      - in: query
        name: search_after
        description: Pagination stateless cursor
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - in: query
        name: limit
        description: Pagination Limit
        required: false
        schema:
          type: integer
          format: int64
      - in: query
        name: fields
        description: ''
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - incident_time.remediated
            - assignees
            - detection_sources
            - schema_version
            - revision
            - incident_time.closed
            - incident_time.discovered
            - incident_time.contained
            - incident_time.reported
            - source
            - title
            - discovery_method
            - source_uri
            - incident_time.opened
            - intended_effect
            - status
            - language
            - id
            - promotion_method
            - severity
            - tlp
            - incident_time.rejected
            - techniques
            - timestamp
            - confidence
            - tactics
      - in: path
        name: external_id
        description: ''
        required: true
        schema:
          type: string
      summary: List Incident by external id
      description: Requires capability read-incident.
  /ctia/incident/search:
    get:
      tags:
      - Incident
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartialIncident'
            application/x-yaml:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartialIncident'
            application/edn:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartialIncident'
            application/transit+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartialIncident'
            application/transit+msgpack:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartialIncident'
      summary: Search for Incident entities using a ES query syntax and field filters
      description: Requires capability search-incident.
      parameters:
      - in: query
        name: sort_order
        description: Sort direction
        required: false
        schema:
          type: string
          enum:
          - desc
          - asc
      - in: query
        name: categories
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: intended_effect
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: tlp
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: tactics
        description: ''
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - in: query
        name: status
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: from
        description: ''
        required: false
        schema:
          type: string
          format: date-time
      - in: query
        name: promotion_method
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: techniques
        description: ''
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - in: query
        name: sort_by
        description: 'Sort result on fields.


          The following fields are supported: assignees, confidence, detection_sources, discovery_method, id, incident_time.closed, incident_time.contained, incident_time.discovered, incident_time.opened, incident_time.rejected, incident_time.remediated, incident_time.reported, intended_effect, language, promotion_method, revision, schema_version, severity, source, source_uri, status, tactics, techniques, timestamp, title, tlp


          Fields can be combined with '','' and sort order can be specified by '':asc'' and '':desc''. For example:


          -  assignees       # sort by assignees ascending

          -  assignees:desc  # sort by assignees descending

          -  assignees,confidence:desc  # sort by assignees ascending, then confidence descending'
        required: false
        schema:
          type: string
      - in: query
        name: fields
        description: ''
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - incident_time.remediated
            - assignees
            - detection_sources
            - schema_version
            - revision
            - incident_time.closed
            - incident_time.discovered
            - incident_time.contained
            - incident_time.reported
            - source
            - title
            - discovery_method
            - source_uri
            - incident_time.opened
            - intended_effect
            - status
            - language
            - id
            - promotion_method
            - severity
            - tlp
            - incident_time.rejected
            - techniques
            - timestamp
            - confidence
            - tactics
      - in: query
        name: search_after
        description: Pagination stateless cursor
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - in: query
        name: language
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: assignees
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: id
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: limit
        description: Pagination Limit
        required: false
        schema:
          type: integer
          format: int64
      - in: query
        name: detection_sources
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: search_fields
        description: '''fields'' key of Elasticsearch Fulltext Query.'
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - id
            - short_description
            - title
            - source
            - description
      - in: query
        name: severity
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: offset
        description: Pagination Offset
        required: false
        schema:
          type: integer
          format: int64
      - in: query
        name: confidence
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: discovery_method
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: source
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: query
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: simple_query
        description: Query String with simple query format
        required: false
        schema:
          type: string
      - in: query
        name: revision
        description: ''
        required: false
        schema:
          type: integer
          format: int64
      - in: query
        name: to
        description: ''
        required: false
        schema:
          type: string
          format: date-time
    delete:
      tags:
      - Incident
      description: Requires capabilities delete-incident, search-incident.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: integer
                format: int64
            application/x-yaml:
              schema:
                type: integer
                format: int64
            application/edn:
              schema:
                type: integer
                format: int64
            application/transit+json:
              schema:
                type: integer
                format: int64
            application/transit+msgpack:
              schema:
                type: integer
                format: int64
      summary: Delete Incident entities matching given Lucene/ES query string or/and field filters
      parameters:
      - in: query
        name: categories
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: intended_effect
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: tlp
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: status
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: from
        description: ''
        required: false
        schema:
          type: string
          format: date-time
      - in: query
        name: promotion_method
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: techniques
        description: ''
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - in: query
        name: search_after
        description: Pagination stateless cursor
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - in: query
        name: language
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: assignees
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: id
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: detection_sources
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: REALLY_DELETE_ALL_THESE_ENTITIES
        description: ' If you do not set this value or set it to false this route will perform a dry run. Set this value to true to perform the deletion. You MUST confirm you will fix the mess after the inevitable disaster that will occur after you perform that operation. DO NOT FORGET TO SET THAT TO FALSE AFTER EACH DELETION IF YOU INTEND TO USE THAT ROUTE MULTIPLE TIMES.'
        required: false
        schema:
          type: boolean
      - in: query
        name: confidence
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: discovery_method
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: source
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: wait_for
        description: wait for matched entity to be deleted
        required: false
        schema:
          type: boolean
      - in: query
        name: query
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: simple_query
        description: Query String with simple query format
        required: false
        schema:
          type: string
      - in: query
        name: revision
        description: ''
        required: false
        schema:
          type: integer
          format: int64
      - in: query
        name: to
        description: ''
        required: false
        schema:
          type: string
          format: date-time
  /ctia/incident/search/count:
    get:
      tags:
      - Incident
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: integer
                format: int64
            application/x-yaml:
              schema:
                type: integer
                format: int64
            application/edn:
              schema:
                type: integer
                format: int64
            application/transit+json:
              schema:
                type: integer
                format: int64
            application/transit+msgpack:
              schema:
                type: integer
                format: int64
      summary: Count Incident matching a Lucene/ES query string and field filters
      description: Requires capability search-incident.
      parameters:
      - in: query
        name: categories
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: intended_effect
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: tlp
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: status
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: from
        description: ''
        required: false
        schema:
          type: string
          format: date-time
      - in: query
        name: promotion_method
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: techniques
        description: ''
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - in: query
        name: search_after
        description: Pagination stateless cursor
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - in: query
        name: language
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: assignees
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: id
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: detection_sources
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: confidence
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: discovery_method
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: source
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: query
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: simple_query
        description: Query String with simple query format
        required: false
        schema:
          type: string
      - in: query
        name: revision
        description: ''
        required: false
        schema:
          type: integer
          format: int64
      - in: query
        name: to
        description: ''
        required: false
        schema:
          type: string
          format: date-time
  /ctia/incident/metric/average:
    get:
      tags:
      - Incident
      description: Requires capability search-incident.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricResult'
            application/x-yaml:
              schema:
                $ref: '#/components/schemas/MetricResult'
            application/edn:
              schema:
                $ref: '#/components/schemas/MetricResult'
            application/transit+json:
              schema:
                $ref: '#/components/schemas/MetricResult'
            application/transit+msgpack:
              schema:
                $ref: '#/components/schemas/MetricResult'
      summary: Average for some Incident field. Use X-Total-Hits header on response for count used for average. For aggregate-on field X.Y.Z, response body will be {:data {:X {:Y {:Z <average>}}}}. If X-Total-Hits is 0, then average will be nil.
      parameters:
      - in: query
        name: categories
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: intended_effect
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: tlp
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: status
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: promotion_method
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: techniques
        description: ''
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - in: query
        name: search_after
        description: Pagination stateless cursor
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - in: query
        name: language
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: assignees
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: id
        description: ''
        required: false
        schema:
          type: string
      - in: query
        name: detection_source

# --- truncated at 32 KB (124 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cisco-xdr/refs/heads/main/openapi/cisco-xdr-incident-api-openapi.yml