Dragos WorldView API

Threat-intelligence API exposing Dragos WorldView reports (products) and OT/ICS indicators of compromise, with JSON, STIX 2.0, and CSV exports, filterable by type, value, serial, tag, and update time. Read-only and rate-limited; authenticated with API-Token and API-Secret request headers.

OpenAPI Specification

dragos-worldview-openapi-original.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "Dragos WorldView API",
    "version": "v1",
    "description": "API access to the WorldView Reports and Indicators",
    "contact": {
      "name": "the developer",
      "email": "support@dragos.com"
    }
  },
  "paths": {
    "/api/v1/indicators": {
      "get": {
        "summary": "Returns a paginated list of indicators",
        "tags": [
          "Indicators"
        ],
        "security": [
          {
            "api_token": [

            ],
            "api_secret": [

            ],
            "npe_token": [

            ]
          }
        ],
        "parameters": [
          {
            "name": "exclude_suspect_domain",
            "in": "query",
            "description": "Exclude indicators that are only associated with Suspect Domain Reports",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number (default 1)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Page size (default 500) (must be less than 1001)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updated_after",
            "in": "query",
            "description": "UTC timestamp in YYYY-mm-dd (optionally with HH:mm:ss) to filter to recent indicators",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "value",
            "in": "query",
            "description": "Search for indicators that match a specific value",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Search for indicators of a specific type",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "domain",
                "filename",
                "hostname",
                "ip",
                "md5",
                "sha1",
                "sha256"
              ]
            }
          },
          {
            "name": "serial[]",
            "in": "query",
            "description": "Search for indicators matching a report serial",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "example": ""
              }
            }
          },
          {
            "name": "tags[]",
            "in": "query",
            "description": "Search for indicators matching tag(s) text",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "example": ""
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/api/v1/indicators.stix2": {
      "get": {
        "summary": "Returns a paginated stix2 bundle of indicators",
        "tags": [
          "Indicators"
        ],
        "security": [
          {
            "api_token": [

            ],
            "api_secret": [

            ],
            "npe_token": [

            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number (default 1)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Page size (default 500) (must be less than 1001)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updated_after",
            "in": "query",
            "description": "UTC timestamp in YYYY-mm-dd (optionally with HH:mm:ss) to filter to recent indicators",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "value",
            "in": "query",
            "description": "Search for indicators that match a specific value",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Search for indicators of a specific type",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "domain",
                "filename",
                "hostname",
                "ip",
                "md5",
                "sha1",
                "sha256"
              ]
            }
          },
          {
            "name": "serial[]",
            "in": "query",
            "description": "Search for indicators matching a report serial",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "example": ""
              }
            }
          },
          {
            "name": "tags[]",
            "in": "query",
            "description": "Search for indicators matching tag(s) text",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "example": ""
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "X-Page": {
                "type": "integer",
                "description": "Page number"
              },
              "X-Page-Size": {
                "type": "integer",
                "description": "How many indicators per page"
              },
              "X-Total": {
                "type": "integer",
                "description": "Total indicator count"
              },
              "X-Total-Pages": {
                "type": "integer",
                "description": "How many pages of indicators"
              }
            }
          }
        }
      }
    },
    "/api/v1/indicators/stix2": {
      "get": {
        "summary": "Returns a cached stix2 bundle of the last 12 months of indicators (not available to trial users)",
        "tags": [
          "Indicators"
        ],
        "security": [
          {
            "api_token": [

            ],
            "api_secret": [

            ],
            "npe_token": [

            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/products": {
      "get": {
        "summary": "Returns a list of all products",
        "tags": [
          "Products"
        ],
        "security": [
          {
            "api_token": [

            ],
            "api_secret": [

            ],
            "npe_token": [

            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number (default 1)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Page size (default 50) (must be less than 501)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "Sort returned products (default release_date)",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "title",
                "threat",
                "tlp",
                "release_date"
              ]
            }
          },
          {
            "name": "sort_desc",
            "in": "query",
            "description": "Page desc (default false)",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "updated_after",
            "in": "query",
            "description": "UTC timestamp in YYYY-mm-dd (optionally with HH:mm:ss) to filter to recently updated products",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "released_after",
            "in": "query",
            "description": "UTC timestamp in YYYY-mm-dd (optionally with HH:mm:ss) to filter to recently released products",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serials[]",
            "in": "query",
            "description": "Filter reports from an array of serials",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "example": ""
              }
            }
          },
          {
            "name": "indicator",
            "in": "query",
            "description": "Filter reports related to a given indicator (exact match only)",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/api/v1/products/{id}": {
      "get": {
        "summary": "Returns the metadata of a product",
        "tags": [
          "Products"
        ],
        "security": [
          {
            "api_token": [

            ],
            "api_secret": [

            ],
            "npe_token": [

            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Product serial number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/api/v1/products/{id}/csv": {
      "get": {
        "summary": "Returns the CSV file for the indicators related to a given serial",
        "tags": [
          "Products"
        ],
        "security": [
          {
            "api_token": [

            ],
            "api_secret": [

            ],
            "npe_token": [

            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Product serial number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/api/v1/products/{id}/stix2": {
      "get": {
        "summary": "Returns the STIX2.0 JSON bundle for the indicators related to a given serial",
        "tags": [
          "Products"
        ],
        "security": [
          {
            "api_token": [

            ],
            "api_secret": [

            ],
            "npe_token": [

            ]
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Product serial number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/api/v1/tags": {
      "get": {
        "summary": "Returns a list of all tags",
        "tags": [
          "Tags"
        ],
        "security": [
          {
            "api_token": [

            ],
            "api_secret": [

            ],
            "npe_token": [

            ]
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number (default 1)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Page size (default 100) (max 500)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tag_type",
            "in": "query",
            "description": "Tag type",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        }
      }
    },
    "/api/v1/tags/csv": {
      "get": {
        "summary": "Returns tags in CSV format",
        "tags": [
          "Tags"
        ],
        "security": [
          {
            "api_token": [

            ],
            "api_secret": [

            ],
            "npe_token": [

            ]
          }
        ],
        "parameters": [
          {
            "name": "tag_type",
            "in": "query",
            "description": "Tag type",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "api_token": {
        "description": "API Access Token",
        "in": "header",
        "name": "API-Token",
        "type": "apiKey"
      },
      "api_secret": {
        "description": "API Secret Key",
        "in": "header",
        "name": "API-Secret",
        "type": "apiKey"
      },
      "npe_token": {
        "description": "NPE Token",
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      }
    }
  }
}