LevelBlue External API documentation version 1
/api/v1
Home
The OTX DirectConnect API allows you to easily synchronize the Threat Intelligence available in OTX to the tools you use to monitor your environment. Using the DirectConnect agents you can integrate with your infrastructure to detect threats targeting your environment. If there is no pre-built agent for the products you are using, leverage the DirectConnect SDK (available in Java and Python) to develop your own integration for the community.
/api/v1/indicators
Analyze suspicious files to quickly detect malware and malicious activity. When you submit a file, the system will first analyze the file statically and then submit it to our sandbox for dynamic analysis if applicable. You can check the status of your submitted files the submitted_files api.
Unlike most of the endpoints in OTX, this one only takes multipart form data, and the 'name' of the part containing the file should simply be 'file'
Returns a list of all submitted files, along with the status of the submission. When complete results can be found at /indicator/file/{file_hash} in your browser, or /api/v1/indicators/file/{file_hash}/{section} in the API
Update the TLP level of previously submitted files. Valid TLPs are white, green, amber and red. You can only update the TLP of a file you submitted yourself, and you can not update the TLP if someone else has submitted the same file
(This is an endpoint to submit a single url at once. To submit in bulk see submit_urls) Analyze suspicious URLs to quickly detect malware and malicious activity. When you submit a URL, the system will automatically visit the URL and analyze the content. If the URL has other artifacts, such as a file in the response, this will be automatically submitted to our system for analysis.
(This is an endpoint to submit multiple urls at once. For a simpler single-url endpoint see submit_url) Analyze suspicious URLs to quickly detect malware and malicious activity. When you submit a URL, the system will automatically visit the URL and analyze the content. If the URL has other artifacts, such as a file in the response, this will be automatically submitted to our system for analysis.
Returns a list of all submitted URLs, along with the status of the submission. When complete results can be found at /indicator/url/{url}} in your browser, or /api/v1/indicators/url/{url}/{section} in the API
Update the TLP level of previously submitted URLs. Valid TLPs are white, green, amber and red. You can only update the TLP of a URL you submitted yourself, and you can not update the TLP if someone else has submitted the same URL
Indicator page api for IPv4 Addresses
sections:
- general: General information about the IP, such as geo data, and a list of the other sections currently available for this IP address.
- reputation: OTX data on malicious activity observed by LevelBlue Labs (IP Reputation).
- geo: A more verbose listing of geographic data (Country code, coordinates, etc.)
- malware: Malware samples analyzed by LevelBlue Labs which have been observed connecting to this IP address.
- url_list: URLs analyzed by LevelBlue Labs which point to or are somehow associated with this IP address.
- passive_dns: passive dns information about hostnames/domains observed by LevelBlue Labs pointing to this IP address.
- http_scans: Meta data for http(s) connections to the IP.
Example: api/v1/indicators/IPv4/8.8.8.8/general
Indicator page api for IPv6 Addresses
sections:
- general: General information about the IP, such as geo data, and a list of the other sections currently available for this IP address.
- reputation: OTX data on malicious activity observed by LevelBlue Labs (IP Reputation).
- geo: A more verbose listing of geographic data (Country code, coordinates, etc.)
- malware: Malware samples analyzed by LevelBlue Labs which have been observed connecting to this IP address.
- url_list: URLs analyzed by LevelBlue Labs which point to or are somehow associated with this IP address.
- passive_dns: passive dns information about hostnames/domains observed by LevelBlue Labs pointing to this IP address.
Example: api/v1/indicators/IPv6/2a03:2880:10:1f02:face:b00c::25/general
Indicator page api for domain names
Example domains: 'rghost.net', 'spywaresite.info'
sections:
- general: General information about the domain, including any pulses, and a list of the other sections currently available for this domain.
- geo: A more verbose listing of geographic data (Country code, coordinates, etc.)
- malware: Malware samples analyzed by LevelBlue Labs which have been observed connecting to this domain.
- url_list: URLs analyzed by LevelBlue Labs on this domain.
- passive_dns: Passive dns records observed by LevelBlue Labs pointing to this domain.
- whois: Whois records for the domain.
- http_scans: Meta data for http(s) connections to the domain.
Example: api/v1/indicators/domain/rghost.net/malware
Indicator page api for hostname names
Example hostnames: 'otx.alienvault.com', 'bad-guys.no-ip.org', 'alpha.beta.google.co.uk'
sections:
- general: General information about the hostname, including any pulses, and a list of the other sections currently available for this hostname.
- geo: A more verbose listing of geographic data (Country code, coordinates, etc.)
- malware: Malware samples analyzed by LevelBlue Labs which have been observed connecting to this hostname.
- url_list: URLs analyzed by LevelBlue Labs on this hostname.
- passive_dns: passive dns records observed by LevelBlue Labs pointing to this hostname.
- http_scans: Meta data for http(s) connections to the hostname.
Example: api/v1/indicators/hostname/mail.vspcord.com/malware
Indicator page api for files (file hashes)
sections:
- general: General metadata about the file hash, and a list of the other sections currently available for this hash.
- analysis: dynamic and static analysis of this file (Cuckoo analysis, exiftool, etc.)
Example: api/v1/indicators/file/6c5360d41bd2b14b1565f5b18e5c203cf512e493/analysis
Indicator page api for URLs
sections:
- general: Historical geographic info, any pulses this indicator is on, list of the other sections currently available for this URL.
- url_list: Full results (potentially multiple) from LevelBlue Labs url analysis.
Example: api/v1/indicators/url/http://www.fotoidea.com/sport/4x4_san_ponso/slides/IMG_0068.html/url_list
Indicator page api for CVEs (MITRE's Common Vulnerability Enumeration)
sections:
- general: MITRE CVE data (CPEs, CWEs, etc.), any pulses this indicator is on, list of the other sections currently available for this URL.
Example: api/v1/indicators/cve/CVE-2014-0160/general
Indicator page api for NIDSs
sections:
- general: General metadata about NIDS
Example: api/v1/indicators/nids/2820184/general
Indicator page api for Correlation Rules
sections:
- general: General metadata about the Correlation Rule
Example: api/v1/indicators/correlation-rule/572f8c3c540c6f0161677877/general
/api/v1/pulses
View or edit of pulse with id pulse_id. When editing a pulse, use PATCH. Post body should be json format, containing fields you wish to edit. For string, numeric or boolean fields provide the literal value, for list fields provide the list of values you wish to add or remove (see example). Any fields that can be used to create a pulse can also be used to edit.
View Example: /api/v1/pulse/57204e9b3c4c3e015d93cb12
In an edit you can pass any pulse field(s) you wish to change. For string or numeric fields, pass the new value you wish to have. For "list" fields, pass a dictionary that can contain a "add" or "remove" field. For "add", pass a list of new values. For "remove", pass a list of values to remove
Indicators are a special case, you can also incude an "edit" field in the value dictionary.
Please see examples below for details
Edit Example: /api/v1/pulse/57204e9b3c4c3e015d93cb12
body: {
"description": "New Description",
"tags": {"add": ["addtag1", "addtag2"], "remove": ["remtag1"]}
}
Edit Example with indicators: /api/v1/pulse/57204e9b3c4c3e015d93cb12
This assumes you already have indicators in the pulse with ids 1, 2, 3 and 4. We edit 3 of them and remove 1. Note that for removing indicators, only the indicator id is necessary. For editing, you need the id and any fields you wish to change.
body: {'indicators': {
'add': [
{'indicator': '8.8.8.9', 'type': 'IPv4', 'role': 'command_and_control'},
{'indicator': '8.8.8.10', 'type': 'IPv4'},
],
'edit': [
{'id': 1 'type': 'hostname', 'indicator': 'www.amazon.com'},
{'id': 2, 'indicator': 'you@rustybrooks.com'},
{'id': 3, 'is_active': True, 'expiration': '2017-01-01', 'role': 'scanning_host'},
],
'remove': [
{'id': 4},
]
}
Returns paginated list view of the indicators inside the pulse pulse_id.
Example: api/v1/pulse/57204e9b3c4c3e015d93cb12/indicators
Threat intelligence subscriptions
- All pulses by users you are subscribed to
- All pulses you are directly subscribed to
- All pulses you have created yourself
- All pulses from groups you are a member of
Activity feed consists of pulses:
- All pulse subscriptions (directly subscribed to pulse, and all pulses by subscribed to users)
- All pulses created by myself
- All pulses by users I am following
Allow users to submit pulses via the API.
Request Body fields (must be sent in HTTP POST body, json format). Click POST button above for examples and JSON schemas. [Note: group_ids in examples are for demonstration purposes, you must belong to a group to include it in the groups parameter]
Delete an existing pulse that you had previously created
Example: url: /api/v1/pulses/57204e9b3c4c3e015d93cb12/delete
Subscribe to pulse. This will cause the pulse to appear in your subscription feed
Example: url: /api/v1/pulses/57204e9b3c4c3e015d93cb12/subscribe
Unsubscribe from pulse. If you're subscribed to the pulse already, you will be unsubscribed. If you are subscribed to the author, you will remain subsribed to the author, but this particular pulse will no longer appear in your subscription
Example: url: /api/v1/pulses/57204e9b3c4c3e015d93cb12/unsubscribe
Returns string representations of each indicator type (i.e. "domain"), as recognized by OTX.
For use in indicator validation and create pulse.
List events, such as subscribe/unsubscribe to user/pulse.
Triggered when certain actions happen on the website. Events may be useful for the purposes of threat intelligence management. Pulse subscribed/unsubscribed User subscribed/unsubscribed * Pulse (in my subscriptions) deleted by author
When a pulse you've previously subscribed to is deleted by the author, it will gone from your subscriptions. Pulse events will help you purge these entries if you're doing incremental updates. Alternatively, you can always refresh your locally stored indicators entirely everytime you update.
Example: /api/v1/pulses/events/?modified_since=2016-04-25T22:49:03.704867&limit=10&page=1
Returns authenticated users or passed in user created pulse feed, default sorted by latest modified.
Returns your feed of pulses you've created, default sorted by latest modified.
/api/v1/search
/api/v1/users
Validate your API Key configuration. If valid, some basic information about the user account corresponding to the API Key supplied will be returned.
Perform actions like follow/subscribe to other users by username.
actions:
- subscribe: Include all of this users' pulses in my threat intelligence feed.
- unsubscribe: Remove all of this users' pulses from my threat intelligence feed.
- follow: Include all of this users' pulses in my activity feed, (Individual pulses must be subscribed to directly for inclusion in threat intelligence feed).
- unfollow: Remove all of this users' pulses from my activity feed.
Examples:
* Subscribe to LevelBlue user account: api/v1/users/LevelBlue/subscribe
* Unsubscribe to LevelBlue user account: api/v1/users/LevelBlue/unsubscribe
* Follow LevelBlue user account: api/v1/users/LevelBlue/follow
* Unfollow LevelBlue user account: api/v1/users/LevelBlue/unfollow
/api/v1/user
Validate your API Key configuration. If valid, some basic information about the user account corresponding to the API Key supplied will be returned.
Perform actions like follow/subscribe to other users by username.
actions:
- subscribe: Include all of this users' pulses in my threat intelligence feed.
- unsubscribe: Remove all of this users' pulses from my threat intelligence feed.
- follow: Include all of this users' pulses in my activity feed, (Individual pulses must be subscribed to directly for inclusion in threat intelligence feed).
- unfollow: Remove all of this users' pulses from my activity feed.
Examples:
* Subscribe to LevelBlue user account: api/v1/users/LevelBlue/subscribe
* Unsubscribe from the LevelBlue user account: api/v1/users/LevelBlue/unsubscribe
* Follow LevelBlue user account: api/v1/users/LevelBlue/follow
* Unfollow LevelBlue user account: api/v1/users/LevelBlue/unfollow