Cisco XDR Bulk API
The Bulk API from Cisco XDR — 1 operation(s) for bulk.
The Bulk API from Cisco XDR — 1 operation(s) for bulk.
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/cisco-xdr-bulk-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: CTIA Bulk 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: Bulk
paths:
/ctia/bulk:
post:
tags:
- Bulk
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Response116945'
application/x-yaml:
schema:
$ref: '#/components/schemas/Response116945'
application/edn:
schema:
$ref: '#/components/schemas/Response116945'
application/transit+json:
schema:
$ref: '#/components/schemas/Response116945'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/Response116945'
parameters:
- in: query
name: wait_for
description: wait for created entities to be available for search
required: false
schema:
type: boolean
summary: POST many new entities using a single HTTP call
description: Requires capabilities create-actor, create-asset, create-asset-mapping, create-asset-properties, create-attack-pattern, create-campaign, create-casebook, create-coa, create-data-table, create-feedback, create-identity-assertion, create-incident, create-indicator, create-investigation, create-judgement, create-malware, create-note, create-relationship, create-sighting, create-target-record, create-tool, create-vulnerability, create-weakness.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Body116639'
application/x-yaml:
schema:
$ref: '#/components/schemas/Body116639'
application/edn:
schema:
$ref: '#/components/schemas/Body116639'
application/transit+json:
schema:
$ref: '#/components/schemas/Body116639'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/Body116639'
description: a new Bulk object
required: true
put:
tags:
- Bulk
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Response116966'
application/x-yaml:
schema:
$ref: '#/components/schemas/Response116966'
application/edn:
schema:
$ref: '#/components/schemas/Response116966'
application/transit+json:
schema:
$ref: '#/components/schemas/Response116966'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/Response116966'
summary: UPDATE many entities at once
parameters:
- in: query
name: wait_for
description: wait for updated entities to be available for search
required: false
schema:
type: boolean
description: Requires capabilities create-actor, create-asset, create-asset-mapping, create-asset-properties, create-attack-pattern, create-campaign, create-casebook, create-coa, create-data-table, create-feedback, create-identity-assertion, create-incident, create-indicator, create-investigation, create-judgement, create-malware, create-note, create-relationship, create-sighting, create-target-record, create-tool, create-vulnerability, create-weakness.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Body116650'
application/x-yaml:
schema:
$ref: '#/components/schemas/Body116650'
application/edn:
schema:
$ref: '#/components/schemas/Body116650'
application/transit+json:
schema:
$ref: '#/components/schemas/Body116650'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/Body116650'
description: a Bulk Update object
required: true
get:
tags:
- Bulk
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Response116967'
application/x-yaml:
schema:
$ref: '#/components/schemas/Response116967'
application/edn:
schema:
$ref: '#/components/schemas/Response116967'
application/transit+json:
schema:
$ref: '#/components/schemas/Response116967'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/Response116967'
summary: GET many entities at once
parameters:
- in: query
name: attack_patterns
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: notes
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: investigations
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: vulnerabilities
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: incidents
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: indicators
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: actors
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: asset_properties
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: asset_mappings
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: malwares
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: target_records
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: tools
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: relationships
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: campaigns
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: weaknesses
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: judgements
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: data_tables
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: feedbacks
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: sightings
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: assets
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: coas
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: casebooks
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- in: query
name: identity_assertions
description: ''
required: false
style: form
explode: true
schema:
type: array
items:
type: string
description: Requires capabilities read-actor, read-asset, read-asset-mapping, read-asset-properties, read-attack-pattern, read-campaign, read-casebook, read-coa, read-data-table, read-feedback, read-identity-assertion, read-incident, read-indicator, read-investigation, read-judgement, read-malware, read-note, read-relationship, read-sighting, read-target-record, read-tool, read-vulnerability, read-weakness.
patch:
tags:
- Bulk
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Response116979'
application/x-yaml:
schema:
$ref: '#/components/schemas/Response116979'
application/edn:
schema:
$ref: '#/components/schemas/Response116979'
application/transit+json:
schema:
$ref: '#/components/schemas/Response116979'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/Response116979'
summary: PATCH many entities at once
parameters:
- in: query
name: wait_for
description: wait for patched entities to be available for search
required: false
schema:
type: boolean
description: Requires capabilities create-incident, create-note.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Body116661'
application/x-yaml:
schema:
$ref: '#/components/schemas/Body116661'
application/edn:
schema:
$ref: '#/components/schemas/Body116661'
application/transit+json:
schema:
$ref: '#/components/schemas/Body116661'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/Body116661'
description: a new Bulk Patch object
required: true
delete:
tags:
- Bulk
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Response116980'
application/x-yaml:
schema:
$ref: '#/components/schemas/Response116980'
application/edn:
schema:
$ref: '#/components/schemas/Response116980'
application/transit+json:
schema:
$ref: '#/components/schemas/Response116980'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/Response116980'
summary: DELETE many entities at once
parameters:
- in: query
name: wait_for
description: wait for deleted entities to not be available anymore for search
required: false
schema:
type: boolean
description: Requires capabilities delete-actor, delete-asset, delete-asset-mapping, delete-asset-properties, delete-attack-pattern, delete-campaign, delete-casebook, delete-coa, delete-data-table, delete-feedback, delete-identity-assertion, delete-incident, delete-indicator, delete-investigation, delete-judgement, delete-malware, delete-note, delete-relationship, delete-sighting, delete-target-record, delete-tool, delete-vulnerability, delete-weakness.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Body116663'
application/x-yaml:
schema:
$ref: '#/components/schemas/Body116663'
application/edn:
schema:
$ref: '#/components/schemas/Body116663'
application/transit+json:
schema:
$ref: '#/components/schemas/Body116663'
application/transit+msgpack:
schema:
$ref: '#/components/schemas/Body116663'
description: a new Bulk Delete object
required: true
components:
schemas:
Response116966:
type: object
properties:
investigations:
$ref: '#/components/schemas/BulkActions'
assets:
$ref: '#/components/schemas/BulkActions'
tools:
$ref: '#/components/schemas/BulkActions'
indicators:
$ref: '#/components/schemas/BulkActions'
attack_patterns:
$ref: '#/components/schemas/BulkActions'
asset_properties:
$ref: '#/components/schemas/BulkActions'
campaigns:
$ref: '#/components/schemas/BulkActions'
actors:
$ref: '#/components/schemas/BulkActions'
notes:
$ref: '#/components/schemas/BulkActions'
judgements:
$ref: '#/components/schemas/BulkActions'
malwares:
$ref: '#/components/schemas/BulkActions'
target_records:
$ref: '#/components/schemas/BulkActions'
asset_mappings:
$ref: '#/components/schemas/BulkActions'
incidents:
$ref: '#/components/schemas/BulkActions'
sightings:
$ref: '#/components/schemas/BulkActions'
relationships:
$ref: '#/components/schemas/BulkActions'
casebooks:
$ref: '#/components/schemas/BulkActions'
vulnerabilities:
$ref: '#/components/schemas/BulkActions'
coas:
$ref: '#/components/schemas/BulkActions'
additionalProperties: false
Technology:
example:
prevalence: Often
name: string
type: object
properties:
prevalence:
example: Often
description: Defines the different regularities that guide the applicability of platforms.
type: string
enum:
- Undetermined
- Sometimes
- Often
- Rarely
name:
example: string
description: Technology name (Web Server, Web Client)
type: string
additionalProperties: false
ValidTime:
example:
start_time: '2016-01-01T01:01:01.000Z'
end_time: '2016-01-01T01:01:01.000Z'
description: Period of time when a cyber observation is valid.
type: object
properties:
start_time:
example: '2016-01-01T01:01:01.000Z'
description: If not present, the valid time position of the indicator does not have an upper bound.
type: string
format: date-time
end_time:
example: '2016-01-01T01:01:01.000Z'
description: If end_time is not present, then the valid time position of the object does not have an upper bound.
type: string
format: date-time
additionalProperties: false
ExternalReference:
example:
source_name: string
description: string
url: string
hashes:
- string
external_id: string
description: External references are used to describe pointers to information represented outside of CTIM. For example, a Malware object could use an external reference to indicate an ID for that malware in an external database or a report could use references to represent source material.
type: object
properties:
source_name:
example: string
description: The source within which the external-reference is defined (system, registry, organization, etc.)
type: string
description:
example: string
description: Markdown string with at most 5000 characters.
type: string
url:
example: string
description: A URL reference to an external resource.
type: string
hashes:
example:
- string
description: Specifies a dictionary of hashes for the contents of the url.
type: array
items:
type: string
external_id:
example: string
description: An identifier for the external reference content.
type: string
additionalProperties: false
required:
- source_name
BulkErrors:
type: object
properties:
not-found:
type: array
items:
type: string
forbidden:
type: array
items:
type: string
internal-error:
type: array
items:
type: string
additionalProperties: false
Response116945TargetRecordsError:
type: object
properties:
type:
x-oneOf:
- type: string
- type: string
reason:
type: string
index:
type: string
index_uuid:
type: string
additionalProperties: false
required:
- type
- reason
NewNote:
description: a new Note
type: object
properties:
authorized_groups:
type: array
items:
type: string
schema_version:
type: string
revision:
example: 10
description: A monotonically increasing revision, incremented each time the object is changed.
type: integer
format: int64
content:
example: string
description: Markdown string with at most 5000 characters.
type: string
note_class:
example: keyword
type: string
authorized_users:
type: array
items:
type: string
type:
example: note
type: string
enum:
- note
created:
type: string
format: date-time
source:
example: string
description: Represents the source of the intelligence that led to the creation of the entity.
type: string
external_ids:
example:
- string
description: "It is used to store a list of external identifiers that can be linked to the incident, providing a reliable and manageable way to correlate and group related events across multiple data sources. It is especially useful in larger organizations that rely on multiple security information and event management (SIEM) systems to detect security incidents. For instance, it can be used to track events across different network sensors, intrusion detection and prevention systems (IDPS), or log management platforms. \n The field can also be used to facilitate automation and orchestration workflows, where additional information can be shared among incident management systems. It can be used to cross-reference with other external tools such as threat intelligence feeds and vulnerability scanners."
type: array
items:
type: string
modified:
type: string
format: date-time
external_references:
example:
- source_name: string
description: string
url: string
hashes:
- string
external_id: string
description: "Specifies a list of external references which refers to non-CTIM information.\n\nSimilar to `external_ids` field with major differences:\n\n- `external_ids` field is used to store a list of external identifiers that can be used to link entities across different data sources. These identifiers are typically standardized and well-known, such as CVE IDs, US-CERT advisories, or other industry-standard threat intelligence feeds. The `external_ids` field can be used to facilitate automation and orchestration workflows, where additional information can be shared among incident management systems. \n\n- `external_references` field, on the other hand, is used to provide a more general mechanism for linking entities to external sources of information. The `external_references` field can include references to blog posts, articles, external documents, threat intelligence reports, and other sources of information that may not have a standardized format or identifier."
type: array
items:
$ref: '#/components/schemas/ExternalReference'
author:
example: string
type: string
source_uri:
example: string
description: URI of the source of the intelligence that led to the creation of the entity.
type: string
language:
example: string
description: 'The `language` field is used to specify the primary language of the affected system or the target of an attack. It can be used to provide additional context and information about the entity. The primary purpose of this field is to help analysts filter and prioritize entities based on their knowledge and expertise of different languages.
For example, if an incident involves an attack on a system in a country where a specific language is predominant, the `language` field can be used to indicate that language, which can help analysts to quickly identify and respond to incidents that may be geographically or culturally relevant. This information can be used to prioritize incidents based on their potential impact. The `language` field can also be used to help with correlation of incidents across different systems and regions, as well as to help with data analysis and reporting.'
type: string
id:
example: string
description: IDs are URIs, for example `https://www.domain.com/ctia/judgement/judgement-de305d54-75b4-431b-adb2-eb6b9e546014` for a [Judgement](judgement.md). This _ID_ type compares to the STIX _id_ field. The optional STIX _idref_ field is not used.
type: string
tlp:
example: green
description: 'TLP stands for [Traffic Light Protocol](https://www.us-cert.gov/tlp), which indicates precisely how a resource is intended to be shared, replicated, copied, etc.
It is used to indicate the sensitivity of the information contained within the message. This allows recipients to determine the appropriate handling and dissemination of the information based on their clearance level and need-to-know.
For example, an entity containing information about a critical vulnerability in a widely-used software might be marked as `red`, indicating that it should only be shared with a small group of highly trusted individuals who need to know in order to take appropriate action. On the other hand, a message containing more general information about security threats might be marked as `amber` or `green`, indicating that it can be shared more broadly within an organization.'
type: string
enum:
- white
- green
- red
- amber
client_id:
type: string
groups:
type: array
items:
type: string
timestamp:
example: '2016-01-01T01:01:01.000Z'
description: The time this object was created at, or last modified.
type: string
format: date-time
related_entities:
example:
- entity_type: string
entity_id: string
type: array
items:
$ref: '#/components/schemas/NoteRelatedEntity'
owner:
type: string
additionalProperties: false
required:
- content
- note_class
- related_entities
RegistryRenameType:
example:
time:
start_time: '2016-01-01T01:01:01.000Z'
end_time: '2016-01-01T01:01:01.000Z'
process_id: 10
process_name: string
process_guid: 10
process_username: string
registry_key: string
type: RegistryRenameEvent
registry_old_key: string
type: object
properties:
time:
$ref: '#/components/schemas/ObservedTime'
process_id:
example: 10
type: integer
format: int64
process_name:
example: string
description: String with at most 1024 characters.
type: string
process_guid:
example: 10
type: integer
format: int64
process_username:
example: string
description: String with at most 1024 characters.
type: string
registry_key:
example: string
description: String with at most 1024 characters.
type: string
type:
example: RegistryRenameEvent
type: string
enum:
- RegistryRenameEvent
registry_old_key:
example: string
description: String with at most 1024 characters.
type: string
additionalProperties: false
required:
- time
- process_id
- process_name
- registry_key
- type
- registry_old_key
Identity:
example:
description: string
related_identities:
- identity: string
confidence: High
information_source: string
relationship: string
description: Can contain information such as the name of the attacker, the group or organization they belong to, or any other identifier that can help in the attribution process.
type: object
properties:
description:
example: string
description: Markdown string with at most 5000 characters.
type: string
related_identities:
example:
- identity: string
confidence: High
information_source: string
relationship: string
description: Identifies other entity Identities related to this Identity.
type: array
items:
$ref: '#/components/schemas/RelatedIdentity'
additionalProperties: false
HTTPType:
example:
process_guid: 10
traffic:
destination_host_name: string
protocol: 10
source_ip: string
destination_subnet: string
destination_ip: string
source_subnet: string
destination_port: 10
direction: incoming
source_port: 10
method: CONNECT
time:
start_time: '2016-01-01T01:01:01.000Z'
end_time: '2016-01-01T01:01:01.000Z'
type: HTTPEvent
host: string
process_name: string
process_id: 10
process_username: string
query: string
encrypted: true
url_port: 10
type: object
properties:
process_guid:
example: 10
type: integer
format: int64
traffic:
$ref: '#/components/schemas/Traffic'
method:
example: CONNECT
type: string
enum:
- OPTIONS
- PATCH
- TRACE
- HEAD
- POST
- CONNECT
- GET
- PUT
time:
$ref: '#/components/schemas/ObservedTime'
type:
example: HTTPEvent
type: string
enum:
- HTTPEvent
host:
example: string
description: String with at most 1024 characters.
type: string
process_name:
example: string
description: String with at most 1024 characters.
type: string
process_id:
example: 10
type: integer
format: int64
process_username:
example: string
description: String with at most 1024 characters.
type: string
query:
example: string
description: String with at most 5000 characters.
type: string
encrypted:
example: true
type: boolean
url_port:
example: 10
type: integer
format: int64
additionalProperties: false
required:
- traffic
- time
- type
- host
- process_name
- process_id
Body116663AttackPatternsError:
type: object
properties:
type:
x-oneOf:
- type: string
- type: string
reason:
type: string
index:
type: string
index_uuid:
type: string
additionalProperties: false
required:
- t
# --- truncated at 32 KB (923 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cisco-xdr/refs/heads/main/openapi/cisco-xdr-bulk-api-openapi.yml