Stellar Cyber Cases API

Security case creation, retrieval, update, and closure

OpenAPI Specification

stellar-cyber-cases-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Stellar Cyber Open XDR Alerts Cases API
  description: The Stellar Cyber REST API provides programmatic access to the Open XDR platform, enabling automation of security operations including case management, tenant administration, connector management, alert handling, query operations, user management, watchlists, sensors, and security event management.
  version: '6.3'
  contact:
    name: Stellar Cyber Support
    url: https://stellarcyber.zendesk.com
  license:
    name: Proprietary
    url: https://stellarcyber.ai/terms/
servers:
- url: https://{platformHostname}/connect/api/v1
  description: Stellar Cyber Platform API
  variables:
    platformHostname:
      description: Your Stellar Cyber platform hostname
      default: your-platform.stellarcyber.ai
security:
- bearerAuth: []
tags:
- name: Cases
  description: Security case creation, retrieval, update, and closure
paths:
  /cases:
    get:
      operationId: listCases
      summary: List Cases
      description: Retrieve a list of security cases from the platform.
      tags:
      - Cases
      parameters:
      - name: limit
        in: query
        description: Maximum number of cases to return
        schema:
          type: integer
          default: 50
      - name: offset
        in: query
        description: Number of cases to skip for pagination
        schema:
          type: integer
          default: 0
      - name: status
        in: query
        description: Filter cases by status
        schema:
          type: string
          enum:
          - open
          - closed
          - investigating
      responses:
        '200':
          description: List of cases retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CasesListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createCase
      summary: Create Case
      description: Create a new security case in the platform.
      tags:
      - Cases
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCaseRequest'
      responses:
        '201':
          description: Case created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Case'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /cases/{caseId}:
    get:
      operationId: getCase
      summary: Get Case
      description: Retrieve details of a specific security case.
      tags:
      - Cases
      parameters:
      - $ref: '#/components/parameters/CaseId'
      responses:
        '200':
          description: Case details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Case'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateCase
      summary: Update Case
      description: Update the status, priority, or other attributes of a security case.
      tags:
      - Cases
      parameters:
      - $ref: '#/components/parameters/CaseId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCaseRequest'
      responses:
        '200':
          description: Case updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Case'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: closeCase
      summary: Close Case
      description: Close a security case in the platform.
      tags:
      - Cases
      parameters:
      - $ref: '#/components/parameters/CaseId'
      responses:
        '204':
          description: Case closed successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Case:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        status:
          type: string
          enum:
          - open
          - closed
          - investigating
        priority:
          type: string
          enum:
          - critical
          - high
          - medium
          - low
        assignee:
          type: string
        tenant_id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        alert_count:
          type: integer
    CreateCaseRequest:
      type: object
      required:
      - name
      properties:
        name:
          type: string
        description:
          type: string
        priority:
          type: string
          enum:
          - critical
          - high
          - medium
          - low
        assignee:
          type: string
    CasesListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Case'
        total:
          type: integer
        limit:
          type: integer
        offset:
          type: integer
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        code:
          type: integer
    UpdateCaseRequest:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        status:
          type: string
          enum:
          - open
          - closed
          - investigating
        priority:
          type: string
          enum:
          - critical
          - high
          - medium
          - low
        assignee:
          type: string
  parameters:
    CaseId:
      name: caseId
      in: path
      required: true
      description: Unique identifier for the case
      schema:
        type: string
  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required or token expired
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token obtained from /access_token endpoint. Tokens expire after 10 minutes. API keys can also be used as Bearer tokens for the /access_token call.