AlienVault Pulses API

Threat pulses (curated indicator collections)

OpenAPI Specification

alienvault-pulses-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: AlienVault OTX DirectConnect Indicators Pulses API
  description: The Open Threat Exchange (OTX) DirectConnect API provides programmatic access to the AlienVault OTX threat intelligence community. It exposes threat "pulses" (curated collections of indicators of compromise), indicator detail lookups (IPv4/IPv6, domain, hostname, URL, file hash, CVE), user and pulse search, and indicator submission. Authentication is by API key passed in the X-OTX-API-KEY request header. Endpoint paths and the authentication scheme are derived from the official AlienVault OTX Python SDK (OTXv2).
  version: v1
  contact:
    name: AlienVault OTX (LevelBlue)
    url: https://otx.alienvault.com/api
  license:
    name: OTX Terms of Service
    url: https://otx.alienvault.com/terms/
servers:
- url: https://otx.alienvault.com
  description: OTX production
security:
- OTXApiKey: []
tags:
- name: Pulses
  description: Threat pulses (curated indicator collections)
paths:
  /api/v1/pulses/subscribed:
    get:
      operationId: getSubscribedPulses
      summary: List subscribed pulses
      description: Returns the pulses the authenticated user is subscribed to, paginated.
      tags:
      - Pulses
      parameters:
      - name: limit
        in: query
        schema:
          type: integer
      - name: page
        in: query
        schema:
          type: integer
      - name: modified_since
        in: query
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Paginated list of subscribed pulses
        '403':
          description: Missing or invalid API key
  /api/v1/pulses/events:
    get:
      operationId: getPulseEvents
      summary: List pulse subscription events
      description: Returns a change feed of pulse events since a given timestamp.
      tags:
      - Pulses
      parameters:
      - name: limit
        in: query
        schema:
          type: integer
      - name: page
        in: query
        schema:
          type: integer
      - name: since
        in: query
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Paginated list of pulse events
        '403':
          description: Missing or invalid API key
  /api/v1/pulses/{pulse_id}:
    get:
      operationId: getPulseDetails
      summary: Get pulse details
      tags:
      - Pulses
      parameters:
      - name: pulse_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Pulse detail
        '404':
          description: Pulse not found
  /api/v1/pulses/{pulse_id}/indicators:
    get:
      operationId: getPulseIndicators
      summary: Get indicators for a pulse
      tags:
      - Pulses
      parameters:
      - name: pulse_id
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
      - name: page
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: Paginated list of indicators
        '404':
          description: Pulse not found
  /api/v1/pulses/create:
    post:
      operationId: createPulse
      summary: Create a pulse
      tags:
      - Pulses
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                public:
                  type: boolean
                tlp:
                  type: string
                tags:
                  type: array
                  items:
                    type: string
                indicators:
                  type: array
                  items:
                    type: object
      responses:
        '200':
          description: Created pulse
        '400':
          description: Invalid pulse payload
  /api/v1/pulses/my:
    get:
      operationId: getMyPulses
      summary: List my pulses
      tags:
      - Pulses
      responses:
        '200':
          description: Paginated list of the authenticated user's pulses
        '403':
          description: Missing or invalid API key
  /api/v1/pulses/user/{username}:
    get:
      operationId: getUserPulses
      summary: List a user's pulses
      tags:
      - Pulses
      parameters:
      - name: username
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Paginated list of the user's pulses
        '404':
          description: User not found
  /api/v1/pulses/{pulse_id}/subscribe:
    post:
      operationId: subscribeToPulse
      summary: Subscribe to a pulse
      tags:
      - Pulses
      parameters:
      - name: pulse_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Subscribed
  /api/v1/pulses/{pulse_id}/unsubscribe:
    post:
      operationId: unsubscribeFromPulse
      summary: Unsubscribe from a pulse
      tags:
      - Pulses
      parameters:
      - name: pulse_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Unsubscribed
  /api/v1/pulses/{pulse_id}/clone:
    post:
      operationId: clonePulse
      summary: Clone a pulse
      tags:
      - Pulses
      parameters:
      - name: pulse_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Cloned pulse
  /api/v1/pulses/{pulse_id}/delete:
    post:
      operationId: deletePulse
      summary: Delete a pulse
      tags:
      - Pulses
      parameters:
      - name: pulse_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Deleted
components:
  securitySchemes:
    OTXApiKey:
      type: apiKey
      in: header
      name: X-OTX-API-KEY
      description: OTX API key, available from your OTX account settings page.