Contraforce Cross-workspace gamebooks API
The Cross-workspace gamebooks API from Contraforce — 1 operation(s) for cross-workspace gamebooks.
The Cross-workspace gamebooks API from Contraforce — 1 operation(s) for cross-workspace gamebooks.
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/contraforce:contraforce-cross-workspace-gamebooks-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: ContraForce Cross-workspace gamebooks API
description: ContraForce platform API for security operations management.
version: '2.0'
tags:
- name: Cross-workspace gamebooks
paths:
/api/v2/gamebooks/across-workspaces/history:
get:
tags:
- Cross-workspace gamebooks
summary: List gamebooks history across workspaces
operationId: v2-list-gamebooks-history-across-workspaces
parameters:
- name: workspaces
in: query
schema:
type: string
- name: statuses
in: query
schema:
type: string
- name: currentPage
in: query
required: true
schema:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
- name: query
in: query
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseOfPageListOfGamebookDto'
'400':
description: Bad request — validation or parameter binding failed.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ApiProblemDetails'
'401':
description: Unauthorized — missing or invalid Bearer token.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ApiProblemDetails'
'403':
description: Forbidden — insufficient scope or workspace access.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ApiProblemDetails'
'404':
description: Not found — workspace or resource is missing.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ApiProblemDetails'
'500':
description: Internal server error.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ApiProblemDetails'
components:
schemas:
IncidentSource:
enum:
- Sentinel
- DefenderXDR
- QRadar
- Splunk
- CrowdStrike
- SentinelOne
- SumoLogic
ResponseMeta:
type: object
properties:
requestId:
type:
- 'null'
- string
timestamp:
type:
- 'null'
- string
GamebookRunningStatus:
enum:
- Pending
- Running
- Finished
- Failed
- Queued
- Denied
- Cancelled
ApiResponseOfPageListOfGamebookDto:
type: object
properties:
data:
$ref: '#/components/schemas/PageListOfGamebookDto'
meta:
$ref: '#/components/schemas/ResponseMeta'
description: Standard v2 API response envelope for single-item responses.
ApiProblemDetails:
type: object
properties:
type:
type:
- 'null'
- string
title:
type:
- 'null'
- string
status:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- 'null'
- integer
- string
format: int32
detail:
type:
- 'null'
- string
instance:
type:
- 'null'
- string
code:
type:
- 'null'
- string
requestId:
type:
- 'null'
- string
timestamp:
type:
- 'null'
- string
target:
type:
- 'null'
- string
errors:
type:
- 'null'
- object
additionalProperties:
type: array
items:
type: string
description: 'API extension of ProblemDetails that surfaces the stable error code,
trace identifier, timestamp, optional target, and optional field-keyed validation
error map alongside the RFC 7807 members.'
PageListOfGamebookDto:
type: object
properties:
items:
type:
- 'null'
- array
items:
$ref: '#/components/schemas/GamebookDto'
currentPage:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
totalPages:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
pageSize:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
totalCount:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
hasPreviousPage:
type: boolean
hasNextPage:
type: boolean
PlaybookRunningStatus:
enum:
- Pending
- Running
- Finished
- Failed
- Terminated
GamebookDto:
type: object
properties:
id:
type:
- 'null'
- string
tracingId:
type:
- 'null'
- string
incidentId:
type:
- 'null'
- string
source:
description: Source of the system that owns the incident Sentinel, Defender ATP, etc.
$ref: '#/components/schemas/IncidentSource'
incidentTitle:
type:
- 'null'
- string
incidentNumber:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
isOcr:
type: boolean
isRecover:
type: boolean
triggedByUserId:
type:
- 'null'
- string
displayName:
type:
- 'null'
- string
modificationDate:
type: string
format: date-time
creationDate:
type: string
format: date-time
status:
$ref: '#/components/schemas/GamebookRunningStatus'
title:
type:
- 'null'
- string
isAdminRequired:
type: boolean
workspaceId:
type:
- 'null'
- string
workspaceName:
type:
- 'null'
- string
tenantId:
type:
- 'null'
- string
isAutoRun:
type: boolean
originalGamebookId:
type:
- 'null'
- string
description: Used if the gamebook is retry gamebook and refers to the id of the gamebook id that has been retried
originalGamebookTitle:
type:
- 'null'
- string
description: Used if the gamebook is retry gamebook and refers to the id of the gamebook title that has been retried
isRetryGamebook:
type: boolean
description: Indicator if the gamebook is a retry to failed gamebook
isQueued:
type: boolean
description: Indicator if the gamebook is queued by a service provider and it is not started yet
playbooks:
type:
- 'null'
- array
items:
$ref: '#/components/schemas/PlaybookGameplanDto'
summary:
type:
- 'null'
- string
PlaybookEntityType:
enum:
- User
- Endpoint
- General
- Network
- Email
PlaybookGameplanDto:
type: object
properties:
id:
type:
- 'null'
- string
referenceId:
type:
- 'null'
- string
description: 'Stable identity of a plan item — the playbook id combined with the target it acts on.
Used for the gamebook plan''s de-duplication, equality, and the V2 list `@key`.'
entityId:
type:
- 'null'
- string
name:
type:
- 'null'
- string
userObjectId:
type:
- 'null'
- string
description: 'Azure AD object id (GUID) of the user/mailbox a playbook should act on, supplied
directly by the caller instead of being resolved from the incident''s entities.'
userPrincipalName:
type:
- 'null'
- string
description: 'User principal name (UPN) of the user/mailbox a playbook should act on, supplied
directly by the caller instead of being resolved from the incident''s entities.'
internetMessageId:
type:
- 'null'
- string
description: 'RFC 2822 internet message id of the email an email playbook should act on, supplied
directly by the caller instead of being read from the incident''s email entity.'
description:
type:
- 'null'
- string
entityType:
$ref: '#/components/schemas/PlaybookEntityType'
affectedEntity:
type:
- 'null'
- string
isRecommended:
type: boolean
status:
$ref: '#/components/schemas/PlaybookRunningStatus'
errorMessage:
type:
- 'null'
- string
sequence:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
modificationDate:
type: string
format: date-time
startingDate:
type:
- 'null'
- string
format: date-time
finishingDate:
type:
- 'null'
- string
format: date-time
executionTime:
type:
- 'null'
- string
description: Total execution time taken to execute the playbook, the value is null until the DateTime? PlaybookGameplanDto.FinishingDate property is populated
tracingId:
type:
- 'null'
- string
parameters:
type:
- 'null'
- object
description: 'Represents the parameters of the playbooks to be sent in the message
The value will be populated only if the playbook is configurable (Block IP)'
isAdminRequired:
type: boolean