Response API Docs

The Response API allows developers to list the available actions for observables, but also for a sighting. It subsequently also allows a developer to programmatically execute the response action that is returned. The Response API take observables as input in the following JSON format (same format as the Inspect API output):

[
  {
    "type": "domain",
    "value": "ilo.brenz.pl"
  },
  {
    "type": "email",
    "value": "no-reply@internetbadguys.com"
  },
  {
    "type": "sha256",
    "value": "8fda14f91e27afec5c1b1f71d708775c9b6e2af31e8331bbf26751bc0583dc7e"
  }
]

The Response API can also take a single sighting as input in the same JSON format as the Enrich API output.

Use Cases

  • List available response actions (for example, Block Domain with Umbrella) for a set of observables or a single observable (for example, internetbadguys.com).
  • List available response actions (for example, Block Domain with Umbrella) for a sighting (for example, a security event).
  • Trigger a response actions (for example, Block Domain with Umbrella) for a set of observables or a single observable (for example, internetbadguys.com).

How to use the API Docs

Use the interactive documentation to explore the Response API endpoints. Each request will have a complete description of all the required parameters and it also allows you to instantly try it out in the online console. Code templates are also provided for you to quickly build scripts.

In the interactive explorer, the Client ID and Client Secret has been pre-filled and will allow you to make read-only API requests. These credentials will allow you to get an Access Token with a few simple button clicks, which will be stored for subsequent API requests until the token expires.

Note: The interactive documentation uses read-only credentials and the try it out feature will only work with GET and selected POSTrequests.

To try non-GET Response API requests, go to https://visibility.amp.cisco.com/iroh/iroh-response/index.html

Generate an Access Token

In the interactive API explorer, the Access Token is automatically generated using the pre-filled Client ID and Client Secret so you do not need to generate it yourself.

If you want to understand how the Access Token is generated from the Client ID and Client Secret credentials, take a look at the Authentication page.

For detailed instructions on how to use the interactive API documentation (or your own Python script), see the Getting Started page.

Download the Response OpenAPI Specification

Download the Response OpenAPI specification (OAS) file here.

Sample Code

Below is an example of how to use the Response API, without the Python SDK. Please check the Getting Started for instructions using the SDK.

import json
import requests

# create headers for API request (See the OAuth2 overview page for sample code to generate an access token)
access_token = 'eyJhbGciO....bPito5n5Q' # truncated example, generate JWT token separately
bearer_token = 'Bearer ' + access_token

# list available actions for an observable
url = 'https://visibility.amp.cisco.com/iroh/iroh-response/respond/observables'

headers = {
            'Authorization': bearer_token,
            'Content-Type':'application/json',
            'Accept':'application/json'
}

payload = [
            {
                'value': 'internetbadguys.com',
                'type': 'domain'
            },
            {
                'value': '1.2.3.4',
                'type': 'ip'
            }
]

response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.text)

if response.status_code == 200:
    # convert the response to a dict object
    response_json = json.loads(response.text)

    # get the list of actions
    actions = response_json['data']

    # iterate through the list of actions
    for action in actions:
        # get the values from an action (remainder values are accessed in the same way)
        module = action['module']
        id = action['id']
        url = action['url']