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

# Add a destination: a Slack incoming webhook or a signed webhook (owners, admins)

> A webhook's signing secret is in this response only (`secret`); rotate it to get a new one. Requests carry `Apsio-Signature: t=<unix>,v1=<hex HMAC-SHA256(secret, t + "." + body)>` and `Apsio-Event-Id`. Audited with the host, never the URL.



## OpenAPI

````yaml /api-reference/openapi.json post /orgs/{orgId}/alerts/destinations
openapi: 3.1.0
info:
  title: Apsio API
  version: 0.1.0
  description: >-
    Read API v0: your projects, release health and comparisons, missing symbols,
    issues, sessions, vitals, cohort comparisons, performance (app start,
    screens, hangs, MetricKit) and network endpoints and traces for one project.
    Authenticate with a project token as a bearer token, with an OAuth access
    token from Apsio's authorization server (MCP clients), or, from the console,
    with the session cookie of a member of the project's organization.
servers:
  - url: https://api.apsio.io/v1
security: []
paths:
  /orgs/{orgId}/alerts/destinations:
    post:
      summary: >-
        Add a destination: a Slack incoming webhook or a signed webhook (owners,
        admins)
      description: >-
        A webhook's signing secret is in this response only (`secret`); rotate
        it to get a new one. Requests carry `Apsio-Signature: t=<unix>,v1=<hex
        HMAC-SHA256(secret, t + "." + body)>` and `Apsio-Event-Id`. Audited with
        the host, never the URL.
      parameters:
        - schema:
            type: string
            pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
            example: 0192f3a4-0000-7000-8000-00000000a001
          required: true
          name: orgId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - slack
                    - webhook
                name:
                  type: string
                  minLength: 1
                  maxLength: 100
                url:
                  type: string
                  minLength: 1
                  maxLength: 2048
                  description: >-
                    https only. Slack: an incoming webhook URL
                    (https://hooks.slack.com/services/...). Checked when saved
                    (it must resolve to public addresses only) and before every
                    delivery. Never returned.
                  example: https://alerts.example.com/apsio
              required:
                - kind
                - name
                - url
      responses:
        '201':
          description: The destination, and for a webhook its signing secret
      security:
        - session: []
components:
  securitySchemes:
    session:
      type: apiKey
      in: cookie
      name: apsio_session
      description: >-
        The console session, set by /v1/auth/callback (`__Host-apsio_session`
        when host-only).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.