Demisto Indicator API
The Indicator API from Demisto — 3 operation(s) for indicator.
The Indicator API from Demisto — 3 operation(s) for indicator.
swagger: '2.0'
info:
description: 'This is the public REST API to integrate with the demisto server.
HTTP request can be sent using any HTTP-client.
For an example dedicated client take a look at: https://github.com/demisto/demisto-py.
Requests must include API-key that can be generated in the Demisto web client under ''Settings'' -> ''Integrations'' -> ''API keys''
Optimistic Locking and Versioning\:
When using Demisto REST API, you will need to make sure to work on the latest version of the item (incident, entry, etc.), otherwise, you will get a DB version error (which not allow you to override a newer item).
In addition, you can pass ''version\: -1'' to force data override (make sure that other users data might be lost).
Assume that Alice and Bob both read the same data from Demisto server, then they both changed the data, and then both tried to write the new versions back to the server. Whose changes should be saved? Alice’s? Bob’s?
To solve this, each data item in Demisto has a numeric incremental version.
If Alice saved an item with version 4 and Bob trying to save the same item with version 3, Demisto will rollback Bob request and returns a DB version conflict error.
Bob will need to get the latest item and work on it so Alice work will not get lost.
Example request using ''curl''\:
```
curl ''https://hostname:443/incidents/search'' -H ''content-type: application/json'' -H ''accept: application/json'' -H ''Authorization: <API Key goes here>'' --data-binary ''{"filter":{"query":"-status:closed -category:job","period":{"by":"day","fromValue":7}}}'' --compressed
```'
title: Demisto Apikeys Indicator API
version: 2.0.0
host: hostname:443
schemes:
- https
consumes:
- application/json
- application/xml
produces:
- application/json
security:
- api_key: []
- csrf_token: []
- x-xdr-auth-id: []
tags:
- name: Indicator
paths:
/indicator/create:
post:
description: 'Create an indicator entity
To update indicator custom fields you should lowercase them and remove all spaces. For example: Scan IP -> scanip'
summary: Create Indicator
operationId: indicatorsCreate
parameters:
- name: IocObject
in: body
schema:
$ref: '#/definitions/indicatorContext'
responses:
'200':
description: IocObject
schema:
$ref: '#/definitions/IocObject'
tags:
- Indicator
/indicator/edit:
post:
description: 'Edit an indicator entity
To update indicator custom fields you should lowercase them and remove all spaces. For example: Scan IP -> scanip'
summary: Edit Indicator
operationId: indicatorsEdit
parameters:
- name: IocObject
in: body
schema:
$ref: '#/definitions/IocObject'
responses:
'200':
description: IocObject
schema:
$ref: '#/definitions/IocObject'
tags:
- Indicator
/indicator/whitelist:
post:
description: 'Whitelists or deletes an indicator entity
In order to delete an indicator and not whitelist, set doNotWhitelist boolean field to true'
summary: Whitelists or deletes Indicator
operationId: indicatorWhitelist
parameters:
- name: updateIndicatorReputationData
in: body
schema:
$ref: '#/definitions/updateIndicatorReputationData'
responses:
'200':
description: UpdateResponse
schema:
$ref: '#/definitions/UpdateResponse'
tags:
- Indicator
definitions:
DBotScore:
description: DBotScore - Contain the score of a specific brand for a specific insight
type: object
properties:
content:
type: string
x-go-name: Content
contentFormat:
type: string
x-go-name: ContentFormat
context:
type: object
additionalProperties:
type: object
x-go-name: Context
isTypedIndicator:
type: boolean
x-go-name: IsTypedIndicator
score:
type: integer
format: int64
x-go-name: Score
scoreChangeTimestamp:
description: We need to track when the score changes to know if we need to re-calculate the overall score
type: string
format: date-time
x-go-name: ScoreChangeTimeStamp
timestamp:
type: string
format: date-time
x-go-name: TimeStamp
type:
type: string
x-go-name: Type
x-go-package: github.com/demisto/server/domain
updateIndicatorReputationData:
type: object
properties:
InvestigationId:
type: string
x-go-name: InvID
doNotWhitelist:
type: boolean
x-go-name: DoNotWhitelist
entryId:
type: string
x-go-name: EntryID
manualScore:
type: boolean
x-go-name: ManualScore
reason:
type: string
x-go-name: Reason
reputation:
type: integer
format: int64
x-go-name: Reputation
reputations:
type: array
items:
type: string
x-go-name: Reputations
value:
type: string
x-go-name: Value
x-go-package: github.com/demisto/server/web
InsightCache:
description: InsightCache - map insight name to all its metadata, name will be case insensitive
type: object
properties:
id:
type: string
x-go-name: ID
modified:
type: string
format: date-time
x-go-name: Modified
scores:
type: object
additionalProperties:
$ref: '#/definitions/DBotScore'
x-go-name: Scores
sequenceNumber:
type: integer
format: int64
x-go-name: SeqNum
sortValues:
type: array
items:
type: string
x-go-name: SortValues
version:
type: integer
format: int64
x-go-name: Versn
x-go-package: github.com/demisto/server/domain
CustomFields:
description: 'The keys should be the field''s display name all lower and without spaces. For example: Scan IP -> scanip
To get the actual key name you can also go to Demisto CLI and run /incident_add and look for the key that you would like to update'
type: object
title: CustomFields ...
additionalProperties:
type: object
x-go-package: github.com/demisto/server/domain
UpdateResponse:
type: object
title: UpdateResponse ...
properties:
notUpdated:
type: integer
format: int64
x-go-name: NotUpdated
updatedIds:
type: array
items:
type: string
x-go-name: UpdatedIds
x-go-package: github.com/demisto/server/repo/entities
indicatorContext:
type: object
properties:
entryId:
type: string
x-go-name: EntryID
indicator:
$ref: '#/definitions/IocObject'
investigationId:
type: string
x-go-name: InvestigationID
seenNow:
type: boolean
x-go-name: SeenNow
x-go-package: github.com/demisto/server/web
IocObject:
description: IocObject - represents an Ioc (or simply an indicator) object
type: object
properties:
CustomFields:
$ref: '#/definitions/CustomFields'
account:
type: string
x-go-name: Account
calculatedTime:
description: Do not set the fields bellow this line
type: string
format: date-time
x-go-name: CalculatedTime
comment:
type: string
x-go-name: Comment
firstSeen:
type: string
format: date-time
x-go-name: FirstSeen
firstSeenEntryID:
type: string
x-go-name: FirstSeenEntryID
id:
type: string
x-go-name: ID
indicator_type:
type: string
x-go-name: IndicatorType
insightCache:
$ref: '#/definitions/InsightCache'
investigationIDs:
type: array
items:
type: string
x-go-name: InvestigationIDs
lastReputationRun:
type: string
format: date-time
x-go-name: LastReputationRun
lastSeen:
type: string
format: date-time
x-go-name: LastSeen
lastSeenEntryID:
type: string
x-go-name: LastSeenEntryID
manualScore:
type: boolean
x-go-name: ManualScore
manualSetTime:
type: string
format: date-time
x-go-name: ManualSetTime
manuallyEditedFields:
type: array
items:
type: string
x-go-name: ManuallyEditedFields
modified:
type: string
format: date-time
x-go-name: Modified
score:
type: integer
format: int64
x-go-name: Score
setBy:
type: string
x-go-name: SetBy
sortValues:
type: array
items:
type: string
x-go-name: SortValues
source:
type: string
x-go-name: Source
timestamp:
type: string
format: date-time
x-go-name: TimeStamp
value:
type: string
x-go-name: Value
version:
type: integer
format: int64
x-go-name: Versn
x-go-package: github.com/demisto/server/domain
securityDefinitions:
api_key:
type: apiKey
name: Authorization
in: header
csrf_token:
type: apiKey
name: X-XSRF-TOKEN
in: header
x-xdr-auth-id:
type: apiKey
name: x-xdr-auth-id
in: header