Escape · Capability
Escape Public API — Issues
Escape Public API — Issues. 9 operations. Lead operation: List issues. Self-contained Naftiko capability covering one Escape business surface.
What You Can Do
GET
Listissues
— List issues
/v1/issues
POST
Bulkupdateissues
— Bulk update issues
/v1/issues/bulk-update
GET
Getissuefunnel
— Get issue funnel
/v1/issues/funnel
GET
Getissuetrends
— Get issue severity trends
/v1/issues/trends
GET
Getissue
— Get an issue
/v1/issues/{issueid}
PUT
Updateissue
— Update an issue
/v1/issues/{issueid}
GET
Listissueactivities
— List activities of an issue
/v1/issues/{issueid}/activities
POST
Createissuecomment
— Comment on an issue
/v1/issues/{issueid}/activities
POST
Notifyissueowners
— Notify issue owners
/v1/issues/{issueid}/notify
MCP Tools
list-issues
List issues
read-only
idempotent
bulk-update-issues
Bulk update issues
get-issue-funnel
Get issue funnel
read-only
idempotent
get-issue-severity-trends
Get issue severity trends
read-only
idempotent
get-issue
Get an issue
read-only
idempotent
update-issue
Update an issue
idempotent
list-activities-issue
List activities of an issue
read-only
idempotent
comment-issue
Comment on an issue
notify-issue-owners
Notify issue owners
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Escape Public API — Issues
description: 'Escape Public API — Issues. 9 operations. Lead operation: List issues. Self-contained Naftiko capability covering
one Escape business surface.'
tags:
- Escape
- Issues
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
ESCAPE_API_KEY: ESCAPE_API_KEY
capability:
consumes:
- type: http
namespace: escape-issues
baseUri: https://public.escape.tech/v3
description: Escape Public API — Issues business capability. Self-contained, no shared references.
resources:
- name: issues
path: /issues
operations:
- name: listissues
method: GET
description: List issues
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: cursor
in: query
type: string
description: The cursor to start the pagination from. Returned by the previous page response. If not provided, the
first page will be returned.
- name: size
in: query
type: integer
description: The number of items to return per page
- name: sortType
in: query
type: string
description: The type to sort by
- name: sortDirection
in: query
type: string
description: The direction to sort by
- name: profileIds
in: query
type: string
description: Filter by application IDs
- name: assetIds
in: query
type: string
description: Filter by asset IDs
- name: domains
in: query
type: string
description: Filter by domain
- name: ids
in: query
type: string
description: Filter by specific issue IDs
- name: names
in: query
type: string
description: Filter by issue names
- name: scanIds
in: query
type: string
description: Filter by scan IDs
- name: tagIds
in: query
type: string
description: Filter by tag IDs
- name: search
in: query
type: string
description: Search term to filter issues by name or description
- name: jiraTicket
in: query
type: string
description: Filter by issues with Jira tickets
- name: risks
in: query
type: array
description: Filter by risk types
- name: assetClasses
in: query
type: array
description: Filter by asset classes
- name: scannerKinds
in: query
type: array
description: Filter by scanner kinds
- name: severities
in: query
type: array
description: Filter by issue severities
- name: status
in: query
type: array
description: Filter by issue status
- name: issues-bulk-update
path: /issues/bulk-update
operations:
- name: bulkupdateissues
method: POST
description: Bulk update issues
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: issues-funnel
path: /issues/funnel
operations:
- name: getissuefunnel
method: GET
description: Get issue funnel
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: projectIds
in: query
type: string
description: Filter by project IDs
- name: issues-trends
path: /issues/trends
operations:
- name: getissuetrends
method: GET
description: Get issue severity trends
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: after
in: query
type: string
description: Start date (ISO 8601)
required: true
- name: before
in: query
type: string
description: End date (ISO 8601)
required: true
- name: interval
in: query
type: string
description: Time bucket interval (e.g. "1 day", "1 week")
- name: applicationIds
in: query
type: string
description: Filter by application IDs
- name: projectIds
in: query
type: string
description: Filter by project IDs
- name: issues-issueId
path: /issues/{issueId}
operations:
- name: getissue
method: GET
description: Get an issue
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: issueId
in: path
type: string
description: The issue ID
required: true
- name: updateissue
method: PUT
description: Update an issue
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: issueId
in: path
type: string
description: The issue ID
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: issues-issueId-activities
path: /issues/{issueId}/activities
operations:
- name: listissueactivities
method: GET
description: List activities of an issue
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: issueId
in: path
type: string
description: The issue ID
required: true
- name: createissuecomment
method: POST
description: Comment on an issue
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: issueId
in: path
type: string
description: The issue ID
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: issues-issueId-notify
path: /issues/{issueId}/notify
operations:
- name: notifyissueowners
method: POST
description: Notify issue owners
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: issueId
in: path
type: string
description: The issue ID
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
authentication:
type: apikey
key: X-ESCAPE-API-KEY
value: '{{env.ESCAPE_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: escape-issues-rest
port: 8080
description: REST adapter for Escape Public API — Issues. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/issues
name: issues
description: REST surface for issues.
operations:
- method: GET
name: listissues
description: List issues
call: escape-issues.listissues
with:
cursor: rest.cursor
size: rest.size
sortType: rest.sortType
sortDirection: rest.sortDirection
profileIds: rest.profileIds
assetIds: rest.assetIds
domains: rest.domains
ids: rest.ids
names: rest.names
scanIds: rest.scanIds
tagIds: rest.tagIds
search: rest.search
jiraTicket: rest.jiraTicket
risks: rest.risks
assetClasses: rest.assetClasses
scannerKinds: rest.scannerKinds
severities: rest.severities
status: rest.status
outputParameters:
- type: object
mapping: $.
- path: /v1/issues/bulk-update
name: issues-bulk-update
description: REST surface for issues-bulk-update.
operations:
- method: POST
name: bulkupdateissues
description: Bulk update issues
call: escape-issues.bulkupdateissues
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/issues/funnel
name: issues-funnel
description: REST surface for issues-funnel.
operations:
- method: GET
name: getissuefunnel
description: Get issue funnel
call: escape-issues.getissuefunnel
with:
projectIds: rest.projectIds
outputParameters:
- type: object
mapping: $.
- path: /v1/issues/trends
name: issues-trends
description: REST surface for issues-trends.
operations:
- method: GET
name: getissuetrends
description: Get issue severity trends
call: escape-issues.getissuetrends
with:
after: rest.after
before: rest.before
interval: rest.interval
applicationIds: rest.applicationIds
projectIds: rest.projectIds
outputParameters:
- type: object
mapping: $.
- path: /v1/issues/{issueid}
name: issues-issueid
description: REST surface for issues-issueId.
operations:
- method: GET
name: getissue
description: Get an issue
call: escape-issues.getissue
with:
issueId: rest.issueId
outputParameters:
- type: object
mapping: $.
- method: PUT
name: updateissue
description: Update an issue
call: escape-issues.updateissue
with:
issueId: rest.issueId
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/issues/{issueid}/activities
name: issues-issueid-activities
description: REST surface for issues-issueId-activities.
operations:
- method: GET
name: listissueactivities
description: List activities of an issue
call: escape-issues.listissueactivities
with:
issueId: rest.issueId
outputParameters:
- type: object
mapping: $.
- method: POST
name: createissuecomment
description: Comment on an issue
call: escape-issues.createissuecomment
with:
issueId: rest.issueId
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/issues/{issueid}/notify
name: issues-issueid-notify
description: REST surface for issues-issueId-notify.
operations:
- method: POST
name: notifyissueowners
description: Notify issue owners
call: escape-issues.notifyissueowners
with:
issueId: rest.issueId
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: escape-issues-mcp
port: 9090
transport: http
description: MCP adapter for Escape Public API — Issues. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: list-issues
description: List issues
hints:
readOnly: true
destructive: false
idempotent: true
call: escape-issues.listissues
with:
cursor: tools.cursor
size: tools.size
sortType: tools.sortType
sortDirection: tools.sortDirection
profileIds: tools.profileIds
assetIds: tools.assetIds
domains: tools.domains
ids: tools.ids
names: tools.names
scanIds: tools.scanIds
tagIds: tools.tagIds
search: tools.search
jiraTicket: tools.jiraTicket
risks: tools.risks
assetClasses: tools.assetClasses
scannerKinds: tools.scannerKinds
severities: tools.severities
status: tools.status
outputParameters:
- type: object
mapping: $.
- name: bulk-update-issues
description: Bulk update issues
hints:
readOnly: false
destructive: false
idempotent: false
call: escape-issues.bulkupdateissues
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-issue-funnel
description: Get issue funnel
hints:
readOnly: true
destructive: false
idempotent: true
call: escape-issues.getissuefunnel
with:
projectIds: tools.projectIds
outputParameters:
- type: object
mapping: $.
- name: get-issue-severity-trends
description: Get issue severity trends
hints:
readOnly: true
destructive: false
idempotent: true
call: escape-issues.getissuetrends
with:
after: tools.after
before: tools.before
interval: tools.interval
applicationIds: tools.applicationIds
projectIds: tools.projectIds
outputParameters:
- type: object
mapping: $.
- name: get-issue
description: Get an issue
hints:
readOnly: true
destructive: false
idempotent: true
call: escape-issues.getissue
with:
issueId: tools.issueId
outputParameters:
- type: object
mapping: $.
- name: update-issue
description: Update an issue
hints:
readOnly: false
destructive: false
idempotent: true
call: escape-issues.updateissue
with:
issueId: tools.issueId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-activities-issue
description: List activities of an issue
hints:
readOnly: true
destructive: false
idempotent: true
call: escape-issues.listissueactivities
with:
issueId: tools.issueId
outputParameters:
- type: object
mapping: $.
- name: comment-issue
description: Comment on an issue
hints:
readOnly: false
destructive: false
idempotent: false
call: escape-issues.createissuecomment
with:
issueId: tools.issueId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: notify-issue-owners
description: Notify issue owners
hints:
readOnly: false
destructive: false
idempotent: false
call: escape-issues.notifyissueowners
with:
issueId: tools.issueId
body: tools.body
outputParameters:
- type: object
mapping: $.