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/cisco-xdr-malware-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API 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 Specification
openapi: 3.2.0
info:
title: CTIA Malware API
version: 4178275a824512c2fd3a2acdb0e8277233919054 v2.71.0
license:
name: All Rights Reserved
url: ''
contact:
name: 'Cisco Security Business Group -- Advanced Threat '
url: http://github.com/threatgrid/ctia
email: cisco-intel-api-support@cisco.com
description: "A Threat Intelligence API service\n\n This API provides a mechanism for making Judgements on the Disposition\n of Observables, which are then distilled into a final Verdict. A\n Disposition is a statement regarding the malicious, or otherwise,\n nature of an Observable.\n\n The Judgements can be grouped into Indicators, which can be associated\n with Campaigns, Actors and TTPs. Feedback can be given on specific\n Judgements, indicating agreement or disagreement, or clarification.\n\n When an Observable with a malicious Verdict is seen, it can be recorded as\n a Sighting, and the Relations that Observable had with other Observables can\n be recorded as well.\n\n We support a pre-defined set of Observable Types. Each Observable Type has a\n specific form of natural identifier, its ID, which is almost always\n the default way it is represented when observed in the wild.\n\n * Ipv4/IPv6 -- 192.168.1.1\n * Domain/Hostname -- foo.com, www.bar.com\n * SHA256 -- the sha256 checksum of a file, or other data blob\n * MD5 -- the md5 checksum of a file, or other data blob\n * SHA1 -- the sha1 checksum of a file, or other data blob\n * URL -- A minimal form of the URL\n\n The Verdict is derived from all of the Judgements on that Observable which\n have not yet expired. The highest priority Judgement becomes the\n active verdict. If there is more than one Judgement with that\n priority, than Clean disposition has priority over all others, then\n Malicious disposition, and so on down to Unknown.\n\n <a href='/doc/README.md'>CTIA Documentation</a>"
x-provenance:
method: harvested
authored_by: Cisco XDR (CTIA)
harvested_by: API Evangelist
harvested_on: '2026-08-19'
first_party: true
note: Published by Cisco. Retrieved unmodified except for this x-provenance block.
provider_published: true
x-evidence:
- type: source
url: https://private.intel.amp.cisco.com/index.html
- type: raw
url: https://private.intel.amp.cisco.com/swagger.json
servers:
- url: /
security:
- JWT: []
- oauth2:
- private-intel
- private-intel:read
- private-intel:write
- casebook
- casebook:read
- casebook:write
tags:
- name: Malware
description: Malware operations
paths:
/ctia/malware:
post:
tags:
- Malware
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Malware'
application/x-yaml:
schema:
$ref: '#/components/schemas/Malware'
application/edn:
schema:
$ref: '#/components/schemas/Malware'
application/transit+json:
schema:
$ref: '#/components/schemas/Malware'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/Malware'
parameters:
- in: query
name: wait_for
description: wait for entity to be available for search
required: false
schema:
type: boolean
summary: Adds a new Malware
description: Requires capability create-malware.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewMalware'
application/x-yaml:
schema:
$ref: '#/components/schemas/NewMalware'
application/edn:
schema:
$ref: '#/components/schemas/NewMalware'
application/transit+json:
schema:
$ref: '#/components/schemas/NewMalware'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/NewMalware'
description: a new Malware
required: true
/ctia/malware/{id}:
put:
tags:
- Malware
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Malware'
application/x-yaml:
schema:
$ref: '#/components/schemas/Malware'
application/edn:
schema:
$ref: '#/components/schemas/Malware'
application/transit+json:
schema:
$ref: '#/components/schemas/Malware'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/Malware'
parameters:
- in: query
name: wait_for
description: wait for updated entity to be available for search
required: false
schema:
type: boolean
- in: path
name: id
description: ''
required: true
schema:
type: string
summary: Update an existing Malware
description: Requires capability create-malware.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewMalware'
application/x-yaml:
schema:
$ref: '#/components/schemas/NewMalware'
application/edn:
schema:
$ref: '#/components/schemas/NewMalware'
application/transit+json:
schema:
$ref: '#/components/schemas/NewMalware'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/NewMalware'
description: an updated Malware
required: true
get:
tags:
- Malware
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PartialMalware'
application/x-yaml:
schema:
$ref: '#/components/schemas/PartialMalware'
application/edn:
schema:
$ref: '#/components/schemas/PartialMalware'
application/transit+json:
schema:
$ref: '#/components/schemas/PartialMalware'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/PartialMalware'
summary: Get one Malware by ID
parameters:
- in: path
name: id
description: ''
required: true
schema:
type: string
- in: query
name: fields
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- schema_version
- revision
- source
- title
- source_uri
- language
- id
- tlp
- timestamp
description: Requires capability read-malware.
delete:
tags:
- Malware
responses:
'204':
description: ''
x-no-doc: false
parameters:
- in: path
name: id
description: ''
required: true
schema:
type: string
- in: query
name: wait_for
description: wait for deleted entity to no more be available for search
required: false
schema:
type: boolean
summary: Delete one Malware
description: Requires capability delete-malware.
/ctia/malware/external_id/{external_id}:
get:
tags:
- Malware
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PartialMalware'
application/x-yaml:
schema:
type: array
items:
$ref: '#/components/schemas/PartialMalware'
application/edn:
schema:
type: array
items:
$ref: '#/components/schemas/PartialMalware'
application/transit+json:
schema:
type: array
items:
$ref: '#/components/schemas/PartialMalware'
application/transit+msgpack:
schema:
type: array
items:
$ref: '#/components/schemas/PartialMalware'
parameters:
- in: query
name: sort_by
description: Sort results on a field
required: false
schema:
type: string
enum:
- schema_version
- revision
- source
- title
- source_uri
- language
- id
- tlp
- timestamp
- in: query
name: sort_order
description: Sort direction
required: false
schema:
type: string
enum:
- desc
- asc
- in: query
name: offset
description: Pagination Offset
required: false
schema:
type: integer
format: int64
- in: query
name: search_after
description: Pagination stateless cursor
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: limit
description: Pagination Limit
required: false
schema:
type: integer
format: int64
- in: query
name: fields
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- schema_version
- revision
- source
- title
- source_uri
- language
- id
- tlp
- timestamp
- in: path
name: external_id
description: ''
required: true
schema:
type: string
summary: List Malware by external id
description: Requires capability read-malware.
/ctia/malware/search:
get:
tags:
- Malware
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PartialMalware'
application/x-yaml:
schema:
type: array
items:
$ref: '#/components/schemas/PartialMalware'
application/edn:
schema:
type: array
items:
$ref: '#/components/schemas/PartialMalware'
application/transit+json:
schema:
type: array
items:
$ref: '#/components/schemas/PartialMalware'
application/transit+msgpack:
schema:
type: array
items:
$ref: '#/components/schemas/PartialMalware'
summary: Search for Malware entities using a ES query syntax and field filters
description: Requires capability search-malware.
parameters:
- in: query
name: sort_order
description: Sort direction
required: false
schema:
type: string
enum:
- desc
- asc
- in: query
name: tlp
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.kill_chain_name
description: ''
required: false
schema:
type: string
- in: query
name: from
description: ''
required: false
schema:
type: string
format: date-time
- in: query
name: sort_by
description: 'Sort result on fields.
The following fields are supported: id, language, revision, schema_version, source, source_uri, timestamp, title, tlp
Fields can be combined with '','' and sort order can be specified by '':asc'' and '':desc''. For example:
- id # sort by id ascending
- id:desc # sort by id descending
- id,language:desc # sort by id ascending, then language descending'
required: false
schema:
type: string
- in: query
name: fields
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- schema_version
- revision
- source
- title
- source_uri
- language
- id
- tlp
- timestamp
- in: query
name: search_after
description: Pagination stateless cursor
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: language
description: ''
required: false
schema:
type: string
- in: query
name: id
description: ''
required: false
schema:
type: string
- in: query
name: limit
description: Pagination Limit
required: false
schema:
type: integer
format: int64
- in: query
name: search_fields
description: '''fields'' key of Elasticsearch Fulltext Query.'
required: false
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- kill_chain_phases.phase_name
- x_mitre_aliases
- id
- labels
- short_description
- title
- source
- description
- kill_chain_phases.kill_chain_name
- in: query
name: labels
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.phase_name
description: ''
required: false
schema:
type: string
- in: query
name: offset
description: Pagination Offset
required: false
schema:
type: integer
format: int64
- in: query
name: source
description: ''
required: false
schema:
type: string
- in: query
name: query
description: ''
required: false
schema:
type: string
- in: query
name: simple_query
description: Query String with simple query format
required: false
schema:
type: string
- in: query
name: revision
description: ''
required: false
schema:
type: integer
format: int64
- in: query
name: to
description: ''
required: false
schema:
type: string
format: date-time
delete:
tags:
- Malware
description: Requires capabilities delete-malware, search-malware.
responses:
'200':
description: ''
content:
application/json:
schema:
type: integer
format: int64
application/x-yaml:
schema:
type: integer
format: int64
application/edn:
schema:
type: integer
format: int64
application/transit+json:
schema:
type: integer
format: int64
application/transit+msgpack:
schema:
type: integer
format: int64
summary: Delete Malware entities matching given Lucene/ES query string or/and field filters
parameters:
- in: query
name: tlp
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.kill_chain_name
description: ''
required: false
schema:
type: string
- in: query
name: from
description: ''
required: false
schema:
type: string
format: date-time
- in: query
name: search_after
description: Pagination stateless cursor
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: language
description: ''
required: false
schema:
type: string
- in: query
name: id
description: ''
required: false
schema:
type: string
- in: query
name: labels
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.phase_name
description: ''
required: false
schema:
type: string
- in: query
name: REALLY_DELETE_ALL_THESE_ENTITIES
description: ' If you do not set this value or set it to false this route will perform a dry run. Set this value to true to perform the deletion. You MUST confirm you will fix the mess after the inevitable disaster that will occur after you perform that operation. DO NOT FORGET TO SET THAT TO FALSE AFTER EACH DELETION IF YOU INTEND TO USE THAT ROUTE MULTIPLE TIMES.'
required: false
schema:
type: boolean
- in: query
name: source
description: ''
required: false
schema:
type: string
- in: query
name: wait_for
description: wait for matched entity to be deleted
required: false
schema:
type: boolean
- in: query
name: query
description: ''
required: false
schema:
type: string
- in: query
name: simple_query
description: Query String with simple query format
required: false
schema:
type: string
- in: query
name: revision
description: ''
required: false
schema:
type: integer
format: int64
- in: query
name: to
description: ''
required: false
schema:
type: string
format: date-time
/ctia/malware/search/count:
get:
tags:
- Malware
responses:
'200':
description: ''
content:
application/json:
schema:
type: integer
format: int64
application/x-yaml:
schema:
type: integer
format: int64
application/edn:
schema:
type: integer
format: int64
application/transit+json:
schema:
type: integer
format: int64
application/transit+msgpack:
schema:
type: integer
format: int64
summary: Count Malware matching a Lucene/ES query string and field filters
description: Requires capability search-malware.
parameters:
- in: query
name: tlp
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.kill_chain_name
description: ''
required: false
schema:
type: string
- in: query
name: from
description: ''
required: false
schema:
type: string
format: date-time
- in: query
name: search_after
description: Pagination stateless cursor
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: language
description: ''
required: false
schema:
type: string
- in: query
name: id
description: ''
required: false
schema:
type: string
- in: query
name: labels
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.phase_name
description: ''
required: false
schema:
type: string
- in: query
name: source
description: ''
required: false
schema:
type: string
- in: query
name: query
description: ''
required: false
schema:
type: string
- in: query
name: simple_query
description: Query String with simple query format
required: false
schema:
type: string
- in: query
name: revision
description: ''
required: false
schema:
type: integer
format: int64
- in: query
name: to
description: ''
required: false
schema:
type: string
format: date-time
/ctia/malware/metric/histogram:
get:
tags:
- Malware
description: Requires capability search-malware.
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/MetricResult'
application/x-yaml:
schema:
$ref: '#/components/schemas/MetricResult'
application/edn:
schema:
$ref: '#/components/schemas/MetricResult'
application/transit+json:
schema:
$ref: '#/components/schemas/MetricResult'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/MetricResult'
summary: Histogram for some Malware field
parameters:
- in: query
name: tlp
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.kill_chain_name
description: ''
required: false
schema:
type: string
- in: query
name: search_after
description: Pagination stateless cursor
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: language
description: ''
required: false
schema:
type: string
- in: query
name: id
description: ''
required: false
schema:
type: string
- in: query
name: labels
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.phase_name
description: ''
required: false
schema:
type: string
- in: query
name: granularity
description: ''
required: true
schema:
type: string
enum:
- day
- week
- month
- in: query
name: from
description: Start date of the histogram. Filters the value of selected aggregated-on field.
required: true
schema:
type: string
format: date-time
- in: query
name: source
description: ''
required: false
schema:
type: string
- in: query
name: aggregate-on
description: ''
required: true
schema:
type: string
enum:
- timestamp
- in: query
name: agg-key
description: ''
required: false
schema:
type: string
- in: query
name: timezone
description: ''
required: false
schema:
type: string
enum:
- -05:00
- +02:00
- +01:00
- -09:00
- -01:00
- +03:00
- +08:00
- +04:00
- +00:00
- '+11:00'
- '-10:00'
- +05:00
- -03:00
- -04:00
- -02:00
- -07:00
- '-11:00'
- -06:00
- '+10:00'
- +09:00
- +07:00
- -08:00
- +06:00
- in: query
name: query
description: ''
required: false
schema:
type: string
- in: query
name: simple_query
description: Query String with simple query format
required: false
schema:
type: string
- in: query
name: revision
description: ''
required: false
schema:
type: integer
format: int64
- in: query
name: to
description: End date of the histogram. Filters the value of selected aggregated-on field.
required: false
schema:
type: string
format: date-time
/ctia/malware/metric/topn:
get:
tags:
- Malware
description: Requires capability search-malware.
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/MetricResult'
application/x-yaml:
schema:
$ref: '#/components/schemas/MetricResult'
application/edn:
schema:
$ref: '#/components/schemas/MetricResult'
application/transit+json:
schema:
$ref: '#/components/schemas/MetricResult'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/MetricResult'
summary: Topn for some Malware field
parameters:
- in: query
name: sort_order
description: ''
required: false
schema:
type: string
enum:
- desc
- asc
- in: query
name: tlp
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.kill_chain_name
description: ''
required: false
schema:
type: string
- in: query
name: search_after
description: Pagination stateless cursor
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: language
description: ''
required: false
schema:
type: string
- in: query
name: id
description: ''
required: false
schema:
type: string
- in: query
name: limit
description: ''
required: false
schema:
type: integer
format: int64
- in: query
name: labels
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.phase_name
description: ''
required: false
schema:
type: string
- in: query
name: from
description: ''
required: true
schema:
type: string
format: date-time
- in: query
name: source
description: ''
required: false
schema:
type: string
- in: query
name: aggregate-on
description: ''
required: true
schema:
type: string
enum:
- labels
- source
- in: query
name: agg-key
description: ''
required: false
schema:
type: string
- in: query
name: query
description: ''
required: false
schema:
type: string
- in: query
name: simple_query
description: Query String with simple query format
required: false
schema:
type: string
- in: query
name: revision
description: ''
required: false
schema:
type: integer
format: int64
- in: query
name: to
description: ''
required: false
schema:
type: string
format: date-time
/ctia/malware/metric/cardinality:
get:
tags:
- Malware
description: Requires capability search-malware.
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/MetricResult'
application/x-yaml:
schema:
$ref: '#/components/schemas/MetricResult'
application/edn:
schema:
$ref: '#/components/schemas/MetricResult'
application/transit+json:
schema:
$ref: '#/components/schemas/MetricResult'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/MetricResult'
summary: Cardinality for some Malware field
parameters:
- in: query
name: tlp
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.kill_chain_name
description: ''
required: false
schema:
type: string
- in: query
name: search_after
description: Pagination stateless cursor
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: language
description: ''
required: false
schema:
type: string
- in: query
name: id
description: ''
required: false
schema:
type: string
- in: query
name: labels
description: ''
required: false
schema:
type: string
- in: query
name: kill_chain_phases.phase_name
description: ''
required: false
schema:
type: string
- in: query
name: from
description: ''
required: true
schema:
type: string
format: date-time
- in: query
name: source
description: ''
required: false
schema:
type: string
- in: query
name: aggregate-on
description: ''
required: true
schema:
type: string
enum:
- labels
- source
- in: query
name: query
description: ''
required: false
schema:
type: string
- in: query
name: simple_query
description: Query String with simple query format
required: false
schema:
type: string
- in: query
name: revision
description: ''
required: false
schema:
type: integer
format: int64
- in: query
name: to
description: ''
required: false
schema:
type: string
format: date-time
components:
schemas:
MetricResultFilters:
type: object
properties:
from:
type: string
format: date-time
to:
type: string
format: date-time
additionalProperties: {}
required:
- from
- to
PartialMalware:
example:
description: string
labels:
- adware
abstraction_level: family
schema_version: 1.3.30
revision: 10
type: malware
x_mitre_aliases:
- string
sour
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cisco-xdr/refs/heads/main/openapi/cisco-xdr-malware-api-openapi.yml