> ## Documentation Index
> Fetch the complete documentation index at: https://docs.infrawatch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create an alert delivery destination.

> Supports email, signed HTTPS webhook, Slack, Teams, PagerDuty, ThreatConnect, Linear, and Jira. Provider credentials are write-only. A generic webhook signing_secret is returned only in this response. Destinations are organisation-owned and cannot be deleted while an enabled rule uses them.



## OpenAPI

````yaml https://api.infrawatch.com/openapi.json?contract=d15375c post /projects/{project_uuid}/alerting/destinations
openapi: 3.1.0
info:
  description: >-
    Customer-facing Infrawatch APIs. Authenticate with an API key unless an
    operation documents another supported credential.


    ### Infrawatch Public API


    Public API authenticated exclusively with Infrawatch API keys.


    ### Infrawatch Customer Alerting API


    Project alert rules, destinations, silences, inbox state, and delivery
    history.


    ### Infrawatch Remote Browser API


    Project-scoped interactive browser sessions owned by Platform Core.


    Session admission, lifecycle, RBAC, audit, usage, screenshot history, and

    stream tickets are Platform Core resources. The browser master is private

    infrastructure and its identifiers, proxy routes, process options, and

    credentials are never exposed by this API.


    A session and all of its evidence are private to the credential that created

    it. Project managers may list project session metadata, inspect one
    session's

    metadata, and terminate it, but cannot access its live stream, screenshots,

    or network events.


    Terminal session metadata and screenshots are retained indefinitely. A

    creator can replay a terminal session as a new queued resource while

    preserving a durable link to the source session.


    ### Infrawatch ESI API


    Customer-facing External Surface Intelligence API for project-scoped

    product data authenticated by an Infrawatch API key. API keys

    are constrained to their immutable owner's project ceiling and assigned

    ESI scopes; human project-manager fallback never expands an API key.

    Authorised API-key requests are rate-limited and consume monthly quota.


    ### Infrawatch Reports API


    Threat report discovery API authenticated by an Infrawatch API key.


    ### Infrawatch Public Rules API


    Account-aware rule authoring, taxonomy, catalogue, and runtime observations
    for API clients.


    ### Infrawatch Search API


    Search hosts, services, DNS records, and certificates. Complete
    percent-encoded query strings are limited to 65536 bytes.
  title: Infrawatch Customer API
  version: 1.0.0
servers:
  - description: Infrawatch customer API
    url: https://api.infrawatch.com/api/v1
security: []
tags:
  - name: API Usage
  - name: Projects
  - name: Alert destinations
  - name: Alert rules
  - name: Alert silences
  - name: Alerts
  - name: Browser sessions
  - name: Browser evidence
  - name: Browser streaming
  - name: Access
  - name: Inventory
  - name: Dangling DNS
  - name: Findings
  - name: Secrets
  - name: Typosquatting
  - name: Services
  - name: AI Surface
  - description: Search hosts, services, DNS records, certificates, and open directories.
    name: Search
  - name: Dashboard
  - name: Reports
  - name: Rules
  - name: Rule tags
  - name: Rule observations
paths:
  /projects/{project_uuid}/alerting/destinations:
    servers:
      - url: https://api.infrawatch.com/api/v1
    parameters:
      - $ref: '#/components/parameters/alerting_v1_AlertingProjectUUID'
    post:
      tags:
        - Alert destinations
      summary: Create an alert delivery destination.
      description: >-
        Supports email, signed HTTPS webhook, Slack, Teams, PagerDuty,
        ThreatConnect, Linear, and Jira. Provider credentials are write-only. A
        generic webhook signing_secret is returned only in this response.
        Destinations are organisation-owned and cannot be deleted while an
        enabled rule uses them.
      operationId: createAlertDestination
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/alerting_v1_PutAlertDestinationRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  destination:
                    $ref: '#/components/schemas/alerting_v1_CreatedAlertDestination'
                required:
                  - destination
                type: object
          description: Destination created.
        '400':
          $ref: c797c861-b7f2-43e5-83af-7f5e10374f09
        '403':
          $ref: 67054e1a-a36a-4bd7-adc4-b9e4983195f6
        '409':
          $ref: dda9a12c-9116-4a48-ab5f-2d4018b1839a
      security:
        - apiKeyAuth: []
components:
  parameters:
    alerting_v1_AlertingProjectUUID:
      in: path
      name: project_uuid
      required: true
      schema:
        format: uuid
        type: string
  schemas:
    alerting_v1_PutAlertDestinationRequest:
      additionalProperties: false
      properties:
        credential:
          description: >-
            Write-only provider credential, including Slack or Teams callback
            URLs. Omit on PUT to preserve the stored value.
          maxLength: 4096
          type: string
          writeOnly: true
        email_address:
          format: email
          type: string
        enabled:
          type: boolean
        kind:
          enum:
            - email
            - webhook
            - slack
            - teams
            - pagerduty
            - threatconnect
            - linear
            - jira
          type: string
        name:
          maxLength: 120
          minLength: 1
          type: string
        routing_key:
          description: >-
            Provider route, such as a Linear team ID, Jira project key, or
            ThreatConnect owner name.
          maxLength: 200
          type: string
        webhook_url:
          description: >-
            Public HTTPS endpoint for generic webhooks and provider base URLs.
            Query strings and fragments are rejected.
          format: uri
          type: string
      required:
        - name
        - kind
        - enabled
      type: object
    alerting_v1_CreatedAlertDestination:
      allOf:
        - $ref: '#/components/schemas/alerting_v1_AlertDestination'
        - properties:
            signing_secret:
              description: >-
                One-time generic webhook HMAC-SHA256 secret. Omitted for all
                other destination kinds and all later reads.
              type: string
          type: object
    alerting_v1_AlertDestination:
      additionalProperties: false
      properties:
        created_at:
          format: date-time
          type: string
        email_address:
          format: email
          type: string
        enabled:
          type: boolean
        kind:
          enum:
            - email
            - webhook
            - slack
            - teams
            - pagerduty
            - threatconnect
            - linear
            - jira
          type: string
        name:
          maxLength: 120
          type: string
        routing_key:
          type: string
        updated_at:
          format: date-time
          type: string
        uuid:
          format: uuid
          type: string
        webhook_url:
          format: uri
          type: string
      required:
        - uuid
        - name
        - kind
        - enabled
        - created_at
        - updated_at
      type: object
  securitySchemes:
    apiKeyAuth:
      description: >-
        Infrawatch API key. Supply the complete key directly as the header
        value.
      in: header
      name: X-API-Key
      type: apiKey

````