isMalicious Cases API
SOC case workspace: cases and their evidence timeline
SOC case workspace: cases and their evidence timeline
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/ismalicious-com:ismalicious-com-cases-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Ismalicious Com Cases API
version: 1.2.0
contact:
name: isMalicious Support
url: https://ismalicious.com/support
email: contact@ismalicious.com
license:
name: Proprietary
url: https://ismalicious.com/terms
description: 'Operations tagged cases across 2 of this provider''s published API definitions: ismalicious-com-openapi.json, ismalicious-com-openapi2.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.ismalicious.com
description: Production server
security:
- ApiKeyAuth: []
- BearerAuth: []
- BasicAuth: []
tags:
- name: Cases
description: 'SOC case workspace: cases and their evidence timeline'
paths:
/cases:
get:
tags:
- Cases
operationId: listCases
responses:
'200':
description: 'Case workspace list, wrapped as `{"cases": […]}`'
content:
application/json:
schema:
$ref: '#/components/schemas/CasesListResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
summary: List cases
x-summary-source: derived
post:
tags:
- Cases
operationId: createCase
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateActionCaseRequest'
required: true
responses:
'201':
description: Created case
content:
application/json:
schema:
$ref: '#/components/schemas/ActionCase'
'400':
description: Title is required
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
summary: Create case
x-summary-source: derived
servers:
- url: https://api.ismalicious.com
description: Production server
/cases/{id}:
patch:
tags:
- Cases
operationId: updateCase
parameters:
- name: id
in: path
description: Case id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateActionCaseRequest'
required: true
responses:
'200':
description: Updated case
content:
application/json:
schema:
$ref: '#/components/schemas/ActionCase'
'404':
description: Case not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
summary: Update case
x-summary-source: derived
servers:
- url: https://api.ismalicious.com
description: Production server
/cases/{id}/evidence:
post:
tags:
- Cases
operationId: addCaseEvidence
parameters:
- name: id
in: path
description: Case id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddCaseEvidenceRequest'
required: true
responses:
'200':
description: Updated case with appended evidence
content:
application/json:
schema:
$ref: '#/components/schemas/ActionCase'
'400':
description: Evidence kind and title are required
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Case not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
summary: Add case evidence
x-summary-source: derived
servers:
- url: https://api.ismalicious.com
description: Production server
components:
schemas:
ErrorResponse:
type: object
description: Error response. Some handlers return only `error`.
required:
- error
properties:
error:
type: string
description: Error type
example: Bad Request
message:
type:
- string
- 'null'
description: Detailed error message (not always present)
example: 'Missing required parameter: query'
AddCaseEvidenceRequest:
type: object
required:
- kind
- title
- payload
properties:
description:
type:
- string
- 'null'
kind:
type: string
payload:
type: object
title:
type: string
ActionCase:
type: object
required:
- id
- userId
- title
- status
- priority
- evidence
- createdAt
- updatedAt
properties:
createdAt:
type: string
description:
type:
- string
- 'null'
entityType:
type:
- string
- 'null'
entityValue:
type:
- string
- 'null'
evidence:
type: array
items:
$ref: '#/components/schemas/ActionCaseEvidence'
id:
type: string
linkedAlertId:
type:
- string
- 'null'
linkedCveFindingId:
type:
- string
- 'null'
linkedReportId:
type:
- string
- 'null'
organizationId:
type:
- string
- 'null'
priority:
type: string
status:
type: string
title:
type: string
updatedAt:
type: string
userId:
type: string
CreateActionCaseRequest:
type: object
description: Create-case request (`api/data_value.rs::CreateCaseRequest`)
required:
- title
properties:
description:
type:
- string
- 'null'
entityType:
type:
- string
- 'null'
entityValue:
type:
- string
- 'null'
evidence:
type:
- object
- 'null'
description: Initial evidence payload attached to the case at creation
linkedAlertId:
type:
- string
- 'null'
linkedCveFindingId:
type:
- string
- 'null'
linkedReportId:
type:
- string
- 'null'
priority:
type:
- string
- 'null'
sourceId:
type:
- string
- 'null'
description: Identifier of the originating record
sourceType:
type:
- string
- 'null'
description: 'Origin surface of the case (e.g. `report`, `alert`) — used with
`sourceId` to resolve the linked record and seed initial evidence'
title:
type: string
ActionCaseEvidence:
type: object
required:
- id
- kind
- title
- payload
- createdAt
properties:
createdAt:
type: string
description:
type:
- string
- 'null'
id:
type: string
kind:
type: string
payload:
type: object
title:
type: string
CasesListResponse:
type: object
description: 'GET /cases response wrapper (`api/data_value.rs::list_cases` returns
`{"cases": […]}`, not a bare array)'
required:
- cases
properties:
cases:
type: array
items:
$ref: '#/components/schemas/ActionCase'
UpdateActionCaseRequest:
type: object
properties:
description:
type:
- string
- 'null'
priority:
type:
- string
- 'null'
status:
type:
- string
- 'null'
title:
type:
- string
- 'null'
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
description: Base64 encoded `apiKey:apiSecret`. Get your keys from https://ismalicious.com/app/account
BasicAuth:
type: http
scheme: basic
description: 'Username = apiKey, password = apiSecret. Legacy: any username, password = Base64(apiKey:apiSecret).'
BearerAuth:
type: http
scheme: bearer
description: '`Authorization: Bearer <token>` where token = Base64(apiKey:apiSecret) — the same credential as X-API-KEY.'
sessionCookie:
type: apiKey
in: cookie
name: __Secure-authjs.session-token
description: Authenticated browser session. The claim endpoint also requires a verified email in the database; organization API keys cannot claim watches.
x-refined-from:
- ismalicious-com-openapi.json
- ismalicious-com-openapi2.json