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

# Get the current webhook subscription for the workspace.

> Returns the workspace's single outbound webhook configuration: the destination endpoint URL, the list of subscribed event topics, the channel scope, the connection status (connected/disconnected/error), and whether a signing secret is set (has_secret). The signing secret value itself is never returned. If no webhook has been configured yet the endpoint is null, events is an empty array, channel defaults to "all" and status is "disconnected".



## OpenAPI

````yaml /api-reference/openapi.json get /webhooks
openapi: 3.1.0
info:
  title: DMLY REST API
  version: 1.0.0
  description: >-
    DMLY's public REST API — contacts/CRM, the unified inbox, broadcasts and
    automations,

    appointments and classes, the commerce catalogue, finance, webhooks and
    media.


    ## Authentication


    Every request carries a **workspace API key**, which both authenticates the
    caller and

    selects the workspace — so there is no workspace id in the URL.


    ```

    x-api-key: dmly_xxxxxxxx…

    ```


    `Authorization: Bearer dmly_xxxxxxxx…` is also accepted.


    Mint keys from the DMLY dashboard (Salesbot → Integrations → API), or from
    the CLI with

    `php artisan dmly:api-key create`. The plaintext key is shown **once** on
    creation; only

    its sha256 hash is stored.


    ## Conventions


    - Resources are identified by their public `uuid`, returned as `id`.

    - Lists are paginated with `?per_page` (alias `?limit`) — default 25, hard
    cap 100 — and
      return `{ "data": [...], "links": {...}, "meta": {...} }`.
    - Single resources return `{ "data": { ... } }`.


    ## Rate limiting


    **60 requests per minute, per IP address.** The throttle is keyed by IP
    rather than by API

    key, so every key calling from the same egress IP shares one bucket.
    Exceeding it returns

    `429` with a `Retry-After` header.
  contact:
    name: DMLY
    url: https://dmly.io
servers:
  - url: https://dash.dmly.io/api/v1
    description: DMLY
security:
  - apiKeyAuth: []
  - bearerAuth: []
tags:
  - name: Account
    description: Endpoints for Account.
  - name: Channels
    description: Endpoints for Channels.
  - name: Contacts
    description: Endpoints for Contacts.
  - name: Tags
    description: Endpoints for Tags.
  - name: Segments
    description: Endpoints for Segments.
  - name: Conversations & Messages
    description: Endpoints for Conversations & Messages.
  - name: Broadcasts
    description: Endpoints for Broadcasts.
  - name: Automations
    description: Endpoints for Automations.
  - name: Appointments
    description: Endpoints for Appointments.
  - name: Services & Service Categories
    description: Endpoints for Services & Service Categories.
  - name: Staff
    description: Endpoints for Staff.
  - name: Classes
    description: Endpoints for Classes.
  - name: Offerings — Products & Plans
    description: Endpoints for Offerings — Products & Plans.
  - name: Finance — Invoices
    description: Endpoints for Finance — Invoices.
  - name: Finance — Orders
    description: Endpoints for Finance — Orders.
  - name: Finance — Payments & Coupons
    description: Endpoints for Finance — Payments & Coupons.
  - name: Finance — Subscriptions
    description: Endpoints for Finance — Subscriptions.
  - name: Webhooks
    description: Endpoints for Webhooks.
  - name: Media
    description: Endpoints for Media.
  - name: Webhooks Contacts and clients
    description: 'Webhook events: Contacts & clients.'
  - name: Webhooks Conversations
    description: 'Webhook events: Conversations.'
  - name: Webhooks Calls
    description: 'Webhook events: Calls.'
  - name: Webhooks Message lifecycle
    description: 'Webhook events: Message lifecycle.'
  - name: Webhooks Appointments
    description: 'Webhook events: Appointments.'
  - name: Webhooks Classes
    description: 'Webhook events: Classes.'
  - name: Webhooks Invoices
    description: 'Webhook events: Invoices.'
  - name: Webhooks Orders
    description: 'Webhook events: Orders.'
  - name: Webhooks Payments
    description: 'Webhook events: Payments.'
  - name: Webhooks Subscriptions
    description: 'Webhook events: Subscriptions.'
  - name: Webhooks Offerings and credits
    description: 'Webhook events: Offerings & credits.'
  - name: Webhooks Store e commerce
    description: 'Webhook events: Store (e-commerce).'
  - name: Webhooks Automations
    description: 'Webhook events: Automations.'
  - name: Webhooks Broadcasts
    description: 'Webhook events: Broadcasts.'
paths:
  /webhooks:
    get:
      tags:
        - Webhooks
      summary: Get the current webhook subscription for the workspace.
      description: >-
        Returns the workspace's single outbound webhook configuration: the
        destination endpoint URL, the list of subscribed event topics, the
        channel scope, the connection status (connected/disconnected/error), and
        whether a signing secret is set (has_secret). The signing secret value
        itself is never returned. If no webhook has been configured yet the
        endpoint is null, events is an empty array, channel defaults to "all"
        and status is "disconnected".
      operationId: webhooks.show.get
      responses:
        '200':
          description: Success.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  responses:
    Unauthorized:
      description: The API key is missing, invalid, or its workspace no longer exists.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: API access is disabled for this installation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: No such resource in this workspace.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Rate limit exceeded — 60 requests per minute per IP address.
      headers:
        Retry-After:
          description: Seconds until the limit resets.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your workspace API key. It both authenticates the caller and selects the
        workspace.
    bearerAuth:
      type: http
      scheme: bearer
      description: 'The same workspace API key, sent as `Authorization: Bearer <key>`.'

````