CybelAngel Stix API

Alerts - Stix

Operations 1

GET /v1/stix/alerts Search alerts in STIX 2.1 format #

Documentation

📖
Documentation
https://developers.cybelangel.com/docs/cybelangel-platform-api/39d4926befc14-what-can-i-do-with-this-api
📖
APIReference
https://developers.cybelangel.com/docs/cybelangel-platform-api/68a341c676710-references
📖
GettingStarted
https://developers.cybelangel.com/docs/cybelangel-platform-api/05d245301ecc5-get-your-api-credentials
📖
Authentication
https://developers.cybelangel.com/docs/cybelangel-platform-api/b6b6c2d4906e9-authentication
📖
Documentation
https://developers.cybelangel.com/docs/alerts-api/72b66de24898e-cybel-angel-alerts-api-real-time-threat-intelligence
📖
APIReference
https://developers.cybelangel.com/docs/alerts-api/a3ab024122156-search-alerts
📖
GettingStarted
https://developers.cybelangel.com/docs/alerts-api/c53add3c8b16f-getting-started
📖
RateLimits
https://developers.cybelangel.com/docs/alerts-api/304dab003eb13-limitations
📖
Documentation
https://developers.cybelangel.com/docs/adm-inventory-api/7e88d945427a4-fetch-assets-details-from-adm-inventory
📖
Documentation
https://developers.cybelangel.com/docs/keywords-api/c812fc6b544b0-manipulate-your-keywords
📖
Documentation
https://developers.cybelangel.com/docs/threat-intelligence-api/38e63ab3d5c42-fetch-threat-intelligence-claimed-attacks
📖
Documentation
https://developers.cybelangel.com/docs/audit-logs-api/72b66de24898e-cybel-angel-audit-logs-api
📖
GettingStarted
https://developers.cybelangel.com/docs/audit-logs-api/f9723159f94ff-getting-started-guide-audit-logs-api
📖
Authentication
https://developers.cybelangel.com/docs/audit-logs-api/b87d37ae48a0d-authentication
📖
Documentation
https://developers.cybelangel.com/docs/partner-api/72b66de24898e-cybel-angel-partners-api

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cybelangel-stix-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cybelangel-stix-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: References Stix API
  description: 'API for CybelAngel''s Alerts.

    Authentication uses standard [OAuth2 Bearer Tokens](https://tools.ietf.org/html/rfc6750).


    Here is a simple example of how to fetch such a token with curl:


    ```shell

    curl -X POST https://auth.cybelangel.com/oauth/token -H ''content-type: application/json -d ''{"client_id": "client_id", "client_secret": "client_secret", "audience": "https://platform.cybelangel.com/", "grant_type": "client_credentials"}

    ```


    The received access token can then be used as a Bearer token to request our API.'
  contact:
    email: support@cybelangel.com
  license:
    url: https://cybelangel.com/
    name: Proprietary
servers:
- url: https://api.cybelangel.com
tags:
- name: stix
  description: Alerts - Stix
paths:
  /v1/stix/alerts:
    get:
      tags:
      - stix
      summary: Search alerts in STIX 2.1 format
      description: 'Search alerts according to user filters and return them as a Bundle in STIX 2.1 format.<br/>See https://oasis-open.github.io/cti-documentation/stix/intro for more information on this format.<br/><br/>Note: Historical data is only available starting from January 1, 2024, and is retained for a maximum of 12 months.<br/>Requests for data outside of this range will not return any results.'
      operationId: stix_search_stix_alerts_stix_alerts_get
      parameters:
      - name: cursor
        in: query
        description: 'Set it to the the ''cursor'' value received from previous search request to iterate on the following alerts, beyond the limit set per request.

          Searching from a cursor does not impact the total number of results.

          Behavior is undefined if the filters and sort are changed between successive requests.


          Note: with big datasets, iterating on cursor can be much slower than iterating on ''start_date'' filter.'
        required: false
        schema:
          title: Cursor
          description: 'Set it to the the ''cursor'' value received from previous search request to iterate on the following alerts, beyond the limit set per request.

            Searching from a cursor does not impact the total number of results.

            Behavior is undefined if the filters and sort are changed between successive requests.


            Note: with big datasets, iterating on cursor can be much slower than iterating on ''start_date'' filter.'
          anyOf: []
      - name: order_by
        in: query
        description: 'Can be multiple fields with +/- for ascending/descending sort.

          Fields can be ingestion_date, detection_date, ml_score.'
        required: false
        schema:
          type: array
          title: Order By
          description: 'Can be multiple fields with +/- for ascending/descending sort.

            Fields can be ingestion_date, detection_date, ml_score.'
          default:
          - +ingestion_date
          - +detection_date
          items:
            type: string
            pattern: '[+-]?(ingestion_date|detection_date|ml_score)'
            minLength: 1
      - name: stream_id
        in: query
        description: 'Stream id used to filter alerts belonging to some organization.

          A client can only query alerts for its allowed streams.'
        required: true
        schema:
          type: string
          title: Stream Id
          description: 'Stream id used to filter alerts belonging to some organization.

            A client can only query alerts for its allowed streams.'
          minLength: 1
          examples:
          - 90b18fad-b9ca-41db-bae1-b4964c1a4e84
        examples:
          default:
            value: 90b18fad-b9ca-41db-bae1-b4964c1a4e84
      - name: start_date
        in: query
        description: 'Minimal ingestion date. Expects a date with timezone information.


          Note: Historical data is only available starting from January 1, 2024, and is retained for a maximum of 12 months.

          Requests for data outside of this range will not return any results.'
        required: true
        schema:
          type: string
          title: Start Date
          description: 'Minimal ingestion date. Expects a date with timezone information.


            Note: Historical data is only available starting from January 1, 2024, and is retained for a maximum of 12 months.

            Requests for data outside of this range will not return any results.'
          format: date-time
          examples:
          - '2024-09-01T10:00:00.000Z'
        examples:
          default:
            value: '2024-09-01T10:00:00.000Z'
      - name: end_date
        in: query
        description: 'Maximal ingestion date. Expects a date with timezone information.


          Note: Historical data is only available starting from January 1, 2024, and is retained for a maximum of 12 months.

          Requests for data outside of this range will not return any results.'
        required: false
        schema:
          title: End Date
          description: 'Maximal ingestion date. Expects a date with timezone information.


            Note: Historical data is only available starting from January 1, 2024, and is retained for a maximum of 12 months.

            Requests for data outside of this range will not return any results.'
          anyOf: []
      - name: status
        in: query
        description: 'Select only alerts having one of the requested statuses.

          By default selects only ''new'' alerts to exclude alerts automatically discarded by our ML tools or already processed by analysts.'
        required: false
        schema:
          type: array
          title: Status
          description: 'Select only alerts having one of the requested statuses.

            By default selects only ''new'' alerts to exclude alerts automatically discarded by our ML tools or already processed by analysts.'
          default:
          - new
          items:
            $ref: '#/components/schemas/AlertStatus'
      - name: category
        in: query
        description: If set, select alerts with specified categories.
        required: false
        schema:
          type: array
          title: Category
          description: If set, select alerts with specified categories.
          default: []
          items:
            $ref: '#/components/schemas/AlertCategory'
      - name: customer_assessment
        in: query
        description: 'If set, select only alerts having one of the requested customer assessments.

          This is the **customer.assessment** field that may be set by clients using the API.'
        required: false
        schema:
          type: array
          title: Customer Assessment
          description: 'If set, select only alerts having one of the requested customer assessments.

            This is the **customer.assessment** field that may be set by clients using the API.'
          default: []
          items:
            $ref: '#/components/schemas/CustomerAssessment'
      - name: keyword
        in: query
        description: If set, select alerts matching specified keywords aliases.
        required: false
        schema:
          type: array
          title: Keyword
          description: If set, select alerts matching specified keywords aliases.
          default: []
          items:
            type: string
            minLength: 1
      - name: keyword_id
        in: query
        description: If set, select alerts matching specified keyword identifiers.
        required: false
        schema:
          type: array
          title: Keyword Id
          description: If set, select alerts matching specified keyword identifiers.
          default: []
          items:
            type: string
            minLength: 1
      - name: min_ml_score
        in: query
        description: If set, select alerts with equal or higher 'ml.score'.
        required: false
        schema:
          type: integer
          title: Min Ml Score
          description: If set, select alerts with equal or higher 'ml.score'.
          minimum: 0
          maximum: 100
          default: 0
      - name: hostname
        in: query
        description: If set, select alerts with any specified hostname value.
        required: false
        schema:
          type: array
          title: Hostname
          description: If set, select alerts with any specified hostname value.
          default: []
          items:
            type: string
            minLength: 1
      - name: ip
        in: query
        description: If set, select alerts with specified IP address among 'ip', 'server_ip' or 'victim_ip' fields.
        required: false
        schema:
          type: array
          title: Ip
          description: If set, select alerts with specified IP address among 'ip', 'server_ip' or 'victim_ip' fields.
          default: []
          items:
            type: string
            minLength: 1
      - name: search_query
        in: query
        description: Words to search in alerts text fields.
        required: false
        schema:
          title: Search Query
          description: Words to search in alerts text fields.
          anyOf: []
      - name: alerts_limit
        in: query
        description: 'Max number of considered alerts. Increasing it will also increase the payload.


          Note: it limits the number of alert considered by the query, but one alert can generate from zero to dozens of STIX objects.'
        required: false
        schema:
          type: integer
          title: Alerts Limit
          description: 'Max number of considered alerts. Increasing it will also increase the payload.


            Note: it limits the number of alert considered by the query, but one alert can generate from zero to dozens of STIX objects.'
          minimum: 0
          maximum: 1000
          default: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StixAlertsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse_ValidationError_'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse_ForbiddenAccessError_'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse_UnknownError_'
      security:
      - jwt: []
      servers:
      - url: https://api.cybelangel.com
components:
  schemas:
    CustomerAssessment:
      type: string
      enum:
      - unknown
      - true_positive
      - false_positive
      title: CustomerAssessment
      description: 'Assessment of the alert quality: is it a real security threat?

        Set by the API user to provide feedback to Cybelangel.


        The default ''unknown'' value is present before user assessed the alert, or when removing that assessment.'
    ValidationError:
      type: object
      title: ValidationError
      description: Error on incorrect input fields
      properties:
        message:
          type: string
          title: Message
        fields:
          type: array
          title: Fields
          items:
            $ref: '#/components/schemas/Field'
      required:
      - message
      - fields
    Field:
      type: object
      title: Field
      description: Detail of an incorrect input field
      properties:
        name:
          type: string
          title: Name
        msg:
          type: string
          title: Msg
        input:
          title: Input
          anyOf:
          - type: string
          - type: array
            items:
              type: string
        valid_input:
          title: Valid Input
          anyOf:
          - type: string
          - type: array
            items:
              type: string
      required:
      - name
      - msg
    APIErrorResponse_ValidationError_:
      type: object
      title: APIErrorResponse[ValidationError]
      properties:
        error:
          $ref: '#/components/schemas/ValidationError'
      required:
      - error
    APIErrorResponse_UnknownError_:
      type: object
      title: APIErrorResponse[UnknownError]
      properties:
        error:
          $ref: '#/components/schemas/UnknownError'
      required:
      - error
    ForbiddenAccessError:
      type: object
      title: ForbiddenAccessError
      description: User cannot access some resource.
      properties:
        message:
          type: string
          title: Message
      required:
      - message
    AlertStatus:
      type: string
      enum:
      - new
      - autodiscarded
      - discarded
      - interesting
      - forwarded
      - report_sent
      title: AlertStatus
      description: Status of alerts, set by cybelangel automated systems and analysts.
    APIErrorResponse_ForbiddenAccessError_:
      type: object
      title: APIErrorResponse[ForbiddenAccessError]
      properties:
        error:
          $ref: '#/components/schemas/ForbiddenAccessError'
      required:
      - error
    UnknownError:
      type: object
      title: UnknownError
      description: Unknown error on server-side, please contact support.
      properties:
        message:
          type: string
          title: Message
      required:
      - message
    StixAlertsResponse:
      type: object
      title: StixAlertsResponse
      description: Response to a search of STIX objects from alerts data.
      properties:
        stix_bundle:
          type: object
          title: Stix Bundle
          description: 'STIX Bundle object used to aggregate STIX objects, both SDO, SCO and SRO.

            See https://docs.oasis-open.org/cti/stix/v2.1/csprd01/stix-v2.1-csprd01.html#_Toc16070770 for more information.'
        more:
          type: boolean
          title: More
          description: Set to true when there are more alerts to retrieve with the same search request parameters and a new 'cursor'.
          default: false
        cursor:
          title: Cursor
          description: Set when there are more alerts to retrieve. It can be used in another search request, with the same parameters, to download the following alerts.
          anyOf:
          - type: string
      required:
      - stix_bundle
    AlertCategory:
      type: string
      enum:
      - adm
      - fileserver
      - codeshare
      - dns
      - database
      - board
      - clouddrive
      - docshare
      - paste
      - leak
      - rss
      - social
      title: AlertCategory
      description: 'ADM stands for Asset Discovery and Monitoring.

        DNS stands for Domain Name System.'
  securitySchemes:
    jwt:
      type: http
      scheme: bearer
      bearerFormat: JWT