Spyderbat Cases API

Cases management API

Operations 43

GET /api/v1/cases/constants Get case enumeration constants #
GET /api/v1/org/{orgUID}/agents/{agentID}/flags List flagged AI analyses for an agent #
GET /api/v1/org/{orgUID}/cases List cases #
POST /api/v1/org/{orgUID}/cases Create a case #
POST /api/v1/org/{orgUID}/cases/bulk-merge Bulk merge source cases into a target #
POST /api/v1/org/{orgUID}/cases/bulk-retry Bulk re-enqueue errored cases #
GET /api/v1/org/{orgUID}/cases/config Get org-level Cases configuration #
POST /api/v1/org/{orgUID}/cases/search Search cases #
GET /api/v1/org/{orgUID}/cases/stats/agent-performance Get windowed agent-performance statistics for an organization #
GET /api/v1/org/{orgUID}/cases/stats/escalation/human Get windowed human-escalation statistics for an organization #
GET /api/v1/org/{orgUID}/cases/stats/escalation/senior Get windowed senior-escalation statistics for an organization #
GET /api/v1/org/{orgUID}/cases/stats/now/attention Get current-state attention case statistics for an organization #
GET /api/v1/org/{orgUID}/cases/stats/now/lifecycle Get current-state lifecycle-stage case statistics for an organization #
GET /api/v1/org/{orgUID}/cases/stats/now/queues Get current-state per-queue case statistics for an organization #
GET /api/v1/org/{orgUID}/cases/stats/processing Get windowed processing-time case statistics for an organization #
GET /api/v1/org/{orgUID}/cases/stats/throughput Get windowed throughput case statistics for an organization #
GET /api/v1/org/{orgUID}/cases/stats/transitions Get windowed state-transition case statistics for an organization #
GET /api/v1/org/{orgUID}/cases/{caseID} Get a case #
DELETE /api/v1/org/{orgUID}/cases/{caseID} Delete a case #
PATCH /api/v1/org/{orgUID}/cases/{caseID} Patch a case #
POST /api/v1/org/{orgUID}/cases/{caseID}/assessment Record an assessment on a case #
POST /api/v1/org/{orgUID}/cases/{caseID}/assign Assign a case to a user #
DELETE /api/v1/org/{orgUID}/cases/{caseID}/assign Release a case back to the unassigned pool #
POST /api/v1/org/{orgUID}/cases/{caseID}/augmented Augment a case with additional context #
POST /api/v1/org/{orgUID}/cases/{caseID}/claim Claim a case from the unassigned pool #
POST /api/v1/org/{orgUID}/cases/{caseID}/close Close a case #
POST /api/v1/org/{orgUID}/cases/{caseID}/helpers Add a helper to a case #
DELETE /api/v1/org/{orgUID}/cases/{caseID}/helpers/{userID} Remove a helper from a case #
POST /api/v1/org/{orgUID}/cases/{caseID}/merge Merge a case into a target #
POST /api/v1/org/{orgUID}/cases/{caseID}/notes Add a note to a case #
PATCH /api/v1/org/{orgUID}/cases/{caseID}/notes/{noteID} Edit a user-authored note #
GET /api/v1/org/{orgUID}/cases/{caseID}/queue-position Get a case's queue position #
POST /api/v1/org/{orgUID}/cases/{caseID}/regen-summary Request AI summary regeneration #
POST /api/v1/org/{orgUID}/cases/{caseID}/reopen Reopen a case #
POST /api/v1/org/{orgUID}/cases/{caseID}/send-to-senior-ai Send a case to the senior AI #
POST /api/v1/org/{orgUID}/cases/{caseID}/snooze Snooze a case #
DELETE /api/v1/org/{orgUID}/cases/{caseID}/snooze Wake a snoozed case #
POST /api/v1/org/{orgUID}/cases/{caseID}/start Start working a case #
POST /api/v1/org/{orgUID}/cases/{caseID}/stop Stop working a case #
POST /api/v1/org/{orgUID}/cases/{caseID}/user-prioritized Set user-prioritized flag on a case #
DELETE /api/v1/org/{orgUID}/cases/{caseID}/user-prioritized Clear user-prioritized flag on a case #
POST /api/v1/org/{orgUID}/cases/{caseID}/watch Watch a case #
DELETE /api/v1/org/{orgUID}/cases/{caseID}/watch Stop watching a case #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/spyderbat-cases-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

spyderbat-cases-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Spyderbat Cases API
  version: 1.0.0
  contact:
    name: API Support
    url: https://api.prod.spyderbat.com/openapi
    email: support@spyderbat.com
  license:
    name: MIT
    url: https://mit-license.org/
  termsOfService: https://www.spyderbat.com/terms-of-use/
  x-logo:
    url: /static/sb-logo.svg
    backgroundColor: '#161A21'
    altText: Spyderbat Logo
  description: 'Operations tagged Cases across 2 of this provider''s published API definitions: spyderbat-openapi-original.json, spyderbat-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.prod.spyderbat.com/
  description: Spyderbat API Server
security:
- apiToken: []
tags:
- name: Cases
  description: Cases management API
paths:
  /api/v1/cases/constants:
    get:
      tags:
      - Cases
      summary: Get case enumeration constants
      description: 'Returns all known enumerations used by the Cases API: agent IDs, states, priorities, sub-statuses, note schemas, and analysis levels.'
      operationId: CaseConstants
      responses:
        '200':
          description: OK
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/agents/{agentID}/flags:
    get:
      tags:
      - Cases
      summary: List flagged AI analyses for an agent
      description: 'List flagged AI analyses attributed to the specified AI agent within an optional time window.

        agentID must be ''ai-level-1'' or ''ai-level-2''.

        start and end are optional epoch seconds; results are ordered by flaggedAt descending.


        * Requires action case:List'
      operationId: CaseAgentFlags
      parameters:
      - name: agentID
        in: path
        required: true
        schema:
          type: string
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      - name: end
        in: query
        description: Window end — epoch seconds
        schema:
          type:
          - number
          - 'null'
          description: Window end — epoch seconds
          format: double
      - name: start
        in: query
        description: Window start — epoch seconds
        schema:
          type:
          - number
          - 'null'
          description: Window start — epoch seconds
          format: double
      responses:
        '200':
          description: OK
        '400':
          description: invalid agent ID
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases:
    get:
      tags:
      - Cases
      summary: List cases
      description: 'List cases for an organization. Supports filtering by state, priority, and assignee.


        * Requires action case:List'
      operationId: CaseList
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      - name: assignedTo
        in: query
        description: Filter by assignee
        schema:
          type: string
          description: Filter by assignee
          maxLength: 256
      - name: lastModified
        in: query
        description: 'Cursor: return cases modified after this Unix timestamp'
        schema:
          type:
          - integer
          - 'null'
          description: 'Cursor: return cases modified after this Unix timestamp'
          format: int32
      - name: pageSize
        in: query
        description: Page size (default 100, max 1000)
        schema:
          type: integer
          description: Page size (default 100, max 1000)
          format: int32
          maximum: 1000
      - name: priority
        in: query
        description: 'Filter by priority: Low, Normal, High'
        schema:
          type: string
          description: 'Filter by priority: Low, Normal, High'
          maxLength: 32
      - name: sortBy
        in: query
        description: 'Sort by: creationDate (default) or lastModified'
        schema:
          type: string
          description: 'Sort by: creationDate (default) or lastModified'
          maxLength: 32
      - name: state
        in: query
        description: 'Filter by state: Open, Closed, Snoozed, In Progress'
        schema:
          type: string
          description: 'Filter by state: Open, Closed, Snoozed, In Progress'
          maxLength: 32
      - name: traceId
        in: query
        description: Return cases whose rootTraceId or refIds contains this trace ID
        schema:
          type: string
          description: Return cases whose rootTraceId or refIds contains this trace ID
          maxLength: 256
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    post:
      tags:
      - Cases
      summary: Create a case
      description: 'Create a new case for an organization.


        * Requires action case:Create'
      operationId: CaseCreate
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseCreateInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/bulk-merge:
    post:
      tags:
      - Cases
      summary: Bulk merge source cases into a target
      description: 'Merge up to 50 source cases into a single target case.

        The target must be open; snoozed or closed targets are rejected.

        Each source is processed independently; partial failure is permitted.


        * Requires action case:Update'
      operationId: CaseBulkMerge
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseBulkMergeInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: target case not found
        '422':
          description: target case is snoozed or closed
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/bulk-retry:
    post:
      tags:
      - Cases
      summary: Bulk re-enqueue errored cases
      description: 'Re-enqueue up to 100 errored cases to the same (pipeline, agent) pair.

        Each case is processed independently; partial failure is permitted.

        Returns a per-case result list with status ''queued'', ''skipped'', or ''error''.


        * Requires action case:Update'
      operationId: CaseBulkRetry
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseBulkRetryInput'
      responses:
        '200':
          description: OK
        '400':
          description: invalid pipeline/agent combination
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/config:
    get:
      tags:
      - Cases
      summary: Get org-level Cases configuration
      description: 'Returns the org-level Cases configuration (read-only).


        * Requires action case:List'
      operationId: CaseOrgConfig
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/search:
    post:
      tags:
      - Cases
      summary: Search cases
      description: 'Search cases with server-side filtering, sorting, pagination, and facet counts.


        * Requires action case:List'
      operationId: CaseSearch
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseSearchInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/stats/agent-performance:
    get:
      tags:
      - Cases
      summary: Get windowed agent-performance statistics for an organization
      description: 'Returns agent-performance statistics over a caller-specified time window.

        start and end are optional Unix epoch seconds; the window defaults to a rolling 24h when omitted.


        * Requires action case:List'
      operationId: CaseOrgStatsAgentPerformance
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      - name: end
        in: query
        description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      - name: start
        in: query
        description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/stats/escalation/human:
    get:
      tags:
      - Cases
      summary: Get windowed human-escalation statistics for an organization
      description: 'Returns human-escalation statistics over a caller-specified time window.

        start and end are optional Unix epoch seconds; the window defaults to a rolling 24h when omitted.


        * Requires action case:List'
      operationId: CaseOrgStatsEscalationHuman
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      - name: end
        in: query
        description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      - name: start
        in: query
        description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/stats/escalation/senior:
    get:
      tags:
      - Cases
      summary: Get windowed senior-escalation statistics for an organization
      description: 'Returns senior-escalation statistics over a caller-specified time window.

        start and end are optional Unix epoch seconds; the window defaults to a rolling 24h when omitted.


        * Requires action case:List'
      operationId: CaseOrgStatsEscalationSenior
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      - name: end
        in: query
        description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      - name: start
        in: query
        description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/stats/now/attention:
    get:
      tags:
      - Cases
      summary: Get current-state attention case statistics for an organization
      description: 'Returns current attention/stuck statistics derived from the cases and case_status tables only.


        * Requires action case:List'
      operationId: CaseOrgStatsNowAttention
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/stats/now/lifecycle:
    get:
      tags:
      - Cases
      summary: Get current-state lifecycle-stage case statistics for an organization
      description: 'Returns current lifecycle-stage statistics derived from the cases and case_status tables only.


        * Requires action case:List'
      operationId: CaseOrgStatsNowLifecycle
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/stats/now/queues:
    get:
      tags:
      - Cases
      summary: Get current-state per-queue case statistics for an organization
      description: 'Returns current per-queue depth statistics derived from the cases and case_status tables only.


        * Requires action case:List'
      operationId: CaseOrgStatsNowQueues
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/stats/processing:
    get:
      tags:
      - Cases
      summary: Get windowed processing-time case statistics for an organization
      description: 'Returns processing-time statistics over a caller-specified time window.

        start and end are optional Unix epoch seconds; the window defaults to a rolling 24h when omitted.


        * Requires action case:List'
      operationId: CaseOrgStatsProcessing
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      - name: end
        in: query
        description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      - name: start
        in: query
        description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/stats/throughput:
    get:
      tags:
      - Cases
      summary: Get windowed throughput case statistics for an organization
      description: 'Returns throughput statistics over a caller-specified time window.

        start and end are optional Unix epoch seconds; the window defaults to a rolling 24h when omitted.


        * Requires action case:List'
      operationId: CaseOrgStatsThroughput
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      - name: end
        in: query
        description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      - name: start
        in: query
        description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/stats/transitions:
    get:
      tags:
      - Cases
      summary: Get windowed state-transition case statistics for an organization
      description: 'Returns state-transition statistics over a caller-specified time window.

        start and end are optional Unix epoch seconds; the window defaults to a rolling 24h when omitted.


        * Requires action case:List'
      operationId: CaseOrgStatsTransitions
      parameters:
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      - name: end
        in: query
        description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window end — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      - name: start
        in: query
        description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
        schema:
          type:
          - integer
          - 'null'
          description: Window start — Unix epoch seconds (optional; defaults to rolling 24h)
          format: int64
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}:
    get:
      tags:
      - Cases
      summary: Get a case
      description: 'Get a specific case by ID.


        * Requires action case:Load'
      operationId: CaseLoad
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    delete:
      tags:
      - Cases
      summary: Delete a case
      description: 'Delete a case.


        * Requires action case:Delete'
      operationId: CaseDelete
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    patch:
      tags:
      - Cases
      summary: Patch a case
      description: 'Partial update of a case. All body fields are optional; array fields use full-replace semantics when present.


        * Requires action case:Update'
      operationId: CasePatch
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CasePatchInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}/assessment:
    post:
      tags:
      - Cases
      summary: Record an assessment on a case
      description: 'Record a verdict, AI rating, flag, or note on a case. At least one field must be present.


        * Requires action case:Update'
      operationId: CaseAssessment
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseAssessmentInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}/assign:
    post:
      tags:
      - Cases
      summary: Assign a case to a user
      description: 'Assign a case to a specific user identified by the assignedTo field.


        * Requires action case:Update'
      operationId: CaseAssign
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseAssignInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    delete:
      tags:
      - Cases
      summary: Release a case back to the unassigned pool
      description: 'Release a case back to the unassigned pool.


        * Requires action case:Update'
      operationId: CaseUnassign
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}/augmented:
    post:
      tags:
      - Cases
      summary: Augment a case with additional context
      description: 'Inject additional context and route a case back to AI-level-2. Async — returns 202 once enqueued.


        * Requires action case:Update'
      operationId: CaseAugment
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseAugmentInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
        '409':
          description: case state forbids augmentation
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}/claim:
    post:
      tags:
      - Cases
      summary: Claim a case from the unassigned pool
      description: 'Claim a case from the unassigned pool. The caller becomes the assignee.


        * Requires action case:Update'
      operationId: CaseClaim
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}/close:
    post:
      tags:
      - Cases
      summary: Close a case
      description: 'Close a case. All body fields are optional; when verdict is provided an assessment row is written.


        * Requires action case:Update'
      operationId: CaseClose
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseCloseInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}/helpers:
    post:
      tags:
      - Cases
      summary: Add a helper to a case
      description: 'Add a helper user to a case.


        * Requires action case:Update'
      operationId: CaseAddHelper
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseAddHelperInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}/helpers/{userID}:
    delete:
      tags:
      - Cases
      summary: Remove a helper from a case
      description: 'Remove a helper user from a case.


        * Requires action case:Update'
      operationId: CaseRemoveHelper
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      - name: userID
        in: path
        required: true
        schema:
          type: string
          maxLength: 256
          minLength: 1
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}/merge:
    post:
      tags:
      - Cases
      summary: Merge a case into a target
      description: 'Merge this case into the case identified by targetCaseId.


        * Requires action case:Update'
      operationId: CaseMerge
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseMergeInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}/notes:
    post:
      tags:
      - Cases
      summary: Add a note to a case
      description: 'Add a free-text note (1–10000 characters) to a case.


        * Requires action case:AddNote'
      operationId: CaseAddNote
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseAddNoteInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied
        '404':
          description: not found
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}/notes/{noteID}:
    patch:
      tags:
      - Cases
      summary: Edit a user-authored note
      description: 'Edit an existing free-text note. Full edit history is preserved.

        No frozen-state gate — notes are allowed in any case state.

        The caller must be the original note author.


        * Requires action case:AddNote'
      operationId: CaseEditNote
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: noteID
        in: path
        required: true
        schema:
          type: string
          maxLength: 256
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseEditNoteInput'
      responses:
        '200':
          description: OK
        '403':
          description: permission denied — caller is not the note author
        '404':
          description: case or note not found
    servers:
    - url: https://api.prod.spyderbat.com/
      description: Spyderbat API Server
  /api/v1/org/{orgUID}/cases/{caseID}/queue-position:
    get:
      tags:
      - Cases
      summary: Get a case's queue position
      description: 'Returns which AI queue(s) a case is in and its position from the front.


        * Requires action case:Load'
      operationId: CaseQueuePosition
      parameters:
      - name: caseID
        in: path
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
      - name: orgUID
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '403':
          description: permission denied

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spyderbat/refs/heads/main/openapi/spyderbat-cases-api-openapi.yml