Escape · Capability
Escape Public API — Scans
Escape Public API — Scans. 7 operations. Lead operation: List scans. Self-contained Naftiko capability covering one Escape business surface.
What You Can Do
GET
Listscans
— List scans
/v1/scans
POST
Startscan
— Start a new scan
/v1/scans
GET
Scansproblems
— List scans with their problems
/v1/scans/problems
GET
Getscan
— Get a scan
/v1/scans/{scanid}
PUT
Cancelscan
— Cancel a scan
/v1/scans/{scanid}/cancel
PUT
Ignorescan
— Ignore a scan
/v1/scans/{scanid}/ignore
GET
Listscantargets
— List scan targets and API coverage
/v1/scans/{scanid}/targets
MCP Tools
list-scans
List scans
read-only
idempotent
start-new-scan
Start a new scan
list-scans-their-problems
List scans with their problems
read-only
idempotent
get-scan
Get a scan
read-only
idempotent
cancel-scan
Cancel a scan
idempotent
ignore-scan
Ignore a scan
idempotent
list-scan-targets-and-api
List scan targets and API coverage
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Escape Public API — Scans
description: 'Escape Public API — Scans. 7 operations. Lead operation: List scans. Self-contained Naftiko capability covering
one Escape business surface.'
tags:
- Escape
- Scans
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
ESCAPE_API_KEY: ESCAPE_API_KEY
capability:
consumes:
- type: http
namespace: escape-scans
baseUri: https://public.escape.tech/v3
description: Escape Public API — Scans business capability. Self-contained, no shared references.
resources:
- name: scans
path: /scans
operations:
- name: listscans
method: GET
description: List scans
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: after
in: query
type: string
description: Filter by after date
- name: before
in: query
type: string
description: Filter by before date
- name: assetIds
in: query
type: string
description: Filter by asset IDs
- name: profileIds
in: query
type: string
description: Filter by profile IDs
- name: ignored
in: query
type: string
description: Filter by ignored status
- name: initiator
in: query
type: array
description: Filter by initiator
- name: kinds
in: query
type: array
description: Filter by kind
- name: status
in: query
type: array
description: Filter by status
- name: projectIds
in: query
type: string
description: Filter by project IDs
- name: startscan
method: POST
description: Start a new scan
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: scans-problems
path: /scans/problems
operations:
- name: scansproblems
method: GET
description: List scans with their problems
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: after
in: query
type: string
description: Filter by after date
- name: before
in: query
type: string
description: Filter by before date
- name: assetIds
in: query
type: string
description: Filter by asset IDs
- name: profileIds
in: query
type: string
description: Filter by profile IDs
- name: projectIds
in: query
type: string
description: Filter by project IDs
- name: ignored
in: query
type: string
description: Filter by ignored status
- name: initiator
in: query
type: array
description: Filter by initiator
- name: kinds
in: query
type: array
description: Filter by kind
- name: status
in: query
type: array
description: Filter by status
- name: scans-scanId
path: /scans/{scanId}
operations:
- name: getscan
method: GET
description: Get a scan
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: scanId
in: path
type: string
description: The scan ID
required: true
- name: scans-scanId-cancel
path: /scans/{scanId}/cancel
operations:
- name: cancelscan
method: PUT
description: Cancel a scan
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: scanId
in: path
type: string
description: The scan ID
required: true
- name: scans-scanId-ignore
path: /scans/{scanId}/ignore
operations:
- name: ignorescan
method: PUT
description: Ignore a scan
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: scanId
in: path
type: string
description: The scan ID
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: scans-scanId-targets
path: /scans/{scanId}/targets
operations:
- name: listscantargets
method: GET
description: List scan targets and API coverage
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: scanId
in: path
type: string
description: The scan ID
required: true
- 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: types
in: query
type: array
description: Optional filter by target kinds (comma-separated or repeated), e.g. API_ROUTE or GRAPHQL_RESOLVER
authentication:
type: apikey
key: X-ESCAPE-API-KEY
value: '{{env.ESCAPE_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: escape-scans-rest
port: 8080
description: REST adapter for Escape Public API — Scans. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/scans
name: scans
description: REST surface for scans.
operations:
- method: GET
name: listscans
description: List scans
call: escape-scans.listscans
with:
cursor: rest.cursor
size: rest.size
sortType: rest.sortType
sortDirection: rest.sortDirection
after: rest.after
before: rest.before
assetIds: rest.assetIds
profileIds: rest.profileIds
ignored: rest.ignored
initiator: rest.initiator
kinds: rest.kinds
status: rest.status
projectIds: rest.projectIds
outputParameters:
- type: object
mapping: $.
- method: POST
name: startscan
description: Start a new scan
call: escape-scans.startscan
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/scans/problems
name: scans-problems
description: REST surface for scans-problems.
operations:
- method: GET
name: scansproblems
description: List scans with their problems
call: escape-scans.scansproblems
with:
cursor: rest.cursor
size: rest.size
sortType: rest.sortType
sortDirection: rest.sortDirection
after: rest.after
before: rest.before
assetIds: rest.assetIds
profileIds: rest.profileIds
projectIds: rest.projectIds
ignored: rest.ignored
initiator: rest.initiator
kinds: rest.kinds
status: rest.status
outputParameters:
- type: object
mapping: $.
- path: /v1/scans/{scanid}
name: scans-scanid
description: REST surface for scans-scanId.
operations:
- method: GET
name: getscan
description: Get a scan
call: escape-scans.getscan
with:
scanId: rest.scanId
outputParameters:
- type: object
mapping: $.
- path: /v1/scans/{scanid}/cancel
name: scans-scanid-cancel
description: REST surface for scans-scanId-cancel.
operations:
- method: PUT
name: cancelscan
description: Cancel a scan
call: escape-scans.cancelscan
with:
scanId: rest.scanId
outputParameters:
- type: object
mapping: $.
- path: /v1/scans/{scanid}/ignore
name: scans-scanid-ignore
description: REST surface for scans-scanId-ignore.
operations:
- method: PUT
name: ignorescan
description: Ignore a scan
call: escape-scans.ignorescan
with:
scanId: rest.scanId
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/scans/{scanid}/targets
name: scans-scanid-targets
description: REST surface for scans-scanId-targets.
operations:
- method: GET
name: listscantargets
description: List scan targets and API coverage
call: escape-scans.listscantargets
with:
scanId: rest.scanId
cursor: rest.cursor
size: rest.size
sortType: rest.sortType
sortDirection: rest.sortDirection
types: rest.types
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: escape-scans-mcp
port: 9090
transport: http
description: MCP adapter for Escape Public API — Scans. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: list-scans
description: List scans
hints:
readOnly: true
destructive: false
idempotent: true
call: escape-scans.listscans
with:
cursor: tools.cursor
size: tools.size
sortType: tools.sortType
sortDirection: tools.sortDirection
after: tools.after
before: tools.before
assetIds: tools.assetIds
profileIds: tools.profileIds
ignored: tools.ignored
initiator: tools.initiator
kinds: tools.kinds
status: tools.status
projectIds: tools.projectIds
outputParameters:
- type: object
mapping: $.
- name: start-new-scan
description: Start a new scan
hints:
readOnly: false
destructive: false
idempotent: false
call: escape-scans.startscan
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-scans-their-problems
description: List scans with their problems
hints:
readOnly: true
destructive: false
idempotent: true
call: escape-scans.scansproblems
with:
cursor: tools.cursor
size: tools.size
sortType: tools.sortType
sortDirection: tools.sortDirection
after: tools.after
before: tools.before
assetIds: tools.assetIds
profileIds: tools.profileIds
projectIds: tools.projectIds
ignored: tools.ignored
initiator: tools.initiator
kinds: tools.kinds
status: tools.status
outputParameters:
- type: object
mapping: $.
- name: get-scan
description: Get a scan
hints:
readOnly: true
destructive: false
idempotent: true
call: escape-scans.getscan
with:
scanId: tools.scanId
outputParameters:
- type: object
mapping: $.
- name: cancel-scan
description: Cancel a scan
hints:
readOnly: false
destructive: false
idempotent: true
call: escape-scans.cancelscan
with:
scanId: tools.scanId
outputParameters:
- type: object
mapping: $.
- name: ignore-scan
description: Ignore a scan
hints:
readOnly: false
destructive: false
idempotent: true
call: escape-scans.ignorescan
with:
scanId: tools.scanId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-scan-targets-and-api
description: List scan targets and API coverage
hints:
readOnly: true
destructive: false
idempotent: true
call: escape-scans.listscantargets
with:
scanId: tools.scanId
cursor: tools.cursor
size: tools.size
sortType: tools.sortType
sortDirection: tools.sortDirection
types: tools.types
outputParameters:
- type: object
mapping: $.