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.
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.
OpenAPI Specification
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