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

# List Webhook Subscriptions

> Returns the webhook subscriptions owned by the authenticated API user. Each subscription identifies the destination URL, outbound HTTP method, events that trigger delivery, and optional delivery filter. Secret headers are write-only and are never included in responses.



## OpenAPI

````yaml /Sela_API.yaml get /api/webhooks/
openapi: 3.0.3
info:
  title: Sela API
  version: 1.0.2
  description: >-
    Create and manage leads, configure outbound webhook subscriptions, and use
    customer-specific lead ingestion workflows. Unless an endpoint says
    otherwise, authenticate with `Authorization: Token <api-key>`.
servers:
  - url: https://api.trysela.com/
    description: Production API
security: []
tags:
  - name: Leads
    description: Create, retrieve, update, and schedule customer leads.
  - name: Call Control
    description: Pause or resume outbound calling for an API user.
  - name: Lead Types
    description: >-
      Discover lead categories and the public metadata fields accepted for each
      one.
  - name: Webhooks
    description: >-
      Manage subscriptions that deliver lead and call events to customer
      systems.
  - name: Lead Ingestion
    description: >-
      Submit provider-specific lead payloads through ingestion URLs configured
      by Sela.
  - name: File Ingestion
    description: Request temporary upload URLs for configured CSV ingestion sources.
paths:
  /api/webhooks/:
    get:
      tags:
        - Webhooks
      summary: List Webhook Subscriptions
      description: >-
        Returns the webhook subscriptions owned by the authenticated API user.
        Each subscription identifies the destination URL, outbound HTTP method,
        events that trigger delivery, and optional delivery filter. Secret
        headers are write-only and are never included in responses.
      operationId: webhooks_list
      parameters:
        - name: page
          required: false
          in: query
          description: A page number within the paginated result set.
          schema:
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedWebhookList'
              examples:
                WebhookSubscription:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?page=4
                    previous: http://api.example.org/accounts/?page=2
                    results:
                      - id: 42
                        url: https://crm.example.com/leads/{{id}}/events
                        trigger:
                          - LEAD_CREATED
                          - CALL_COMPLETE
                        method: POST
                        filter_condition: get('last_chat.is_contact', False)
                  summary: Webhook subscription
          description: Paginated list of webhook subscriptions.
      security:
        - tokenAuth: []
components:
  schemas:
    PaginatedWebhookList:
      type: object
      required:
        - count
        - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Webhook'
    Webhook:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        url:
          type: string
          format: uri
          description: >-
            Webhook URL. Supports {{variable}} placeholders resolved from the
            webhook payload (e.g. https://api.example.com/leads/{{id}}/notify).
            Use dot notation for nested values (e.g. {{metadata.us_state}}).
          maxLength: 255
        trigger:
          type: array
          items:
            $ref: '#/components/schemas/TriggerEnum'
        method:
          nullable: true
          description: >-
            HTTP method to use when sending the webhook request. NULL or blank
            defaults to POST.


            * `GET` - GET

            * `POST` - POST

            * `PUT` - PUT

            * `PATCH` - PATCH
          oneOf:
            - $ref: '#/components/schemas/MethodEnum'
            - $ref: '#/components/schemas/BlankEnum'
            - $ref: '#/components/schemas/NullEnum'
        filter_condition:
          type: string
          nullable: true
          description: >-
            Optional filter expression that controls when the webhook fires. The
            expression is evaluated against the webhook payload - the same data
            sent in the request body. Leave blank to always fire. Use
            has('field') to check whether a field exists, get('path.to.value',
            default) for safe nested access, and comparison operators such as
            ==, !=, and, or. Examples: status == 'CLOSED', has('last_chat') and
            last_chat['is_contact'], get('last_chat.call_direction', '') ==
            'INBOUND'
      required:
        - id
        - url
    TriggerEnum:
      type: string
      enum:
        - LEAD_CREATED
        - LEAD_UPDATED
        - LEAD_CLOSED
        - LEAD_CLOSED_INCOMPLETE
        - LEAD_LOST
        - LEAD_SCHEDULE_COMPLETED
        - LEAD_LATE_CALLBACK
        - LEAD_OUT_OF_TERRITORY
        - LEAD_BAD_NUMBER
        - LEAD_CANCELLED
        - LEAD_CALLBACK_TO_TRANSFER
        - LEAD_BEFORE_REENGAGEMENT
        - LEAD_REENGAGEMENT
        - LEAD_FIRST_INBOUND
        - CALL_COMPLETE
        - BEFORE_CALLING
        - CALL_FAILED
        - CALL_ENDED
        - CALL_TRANSFER_INITIATED
        - SMS_COMPLETE
        - SMS_DNC
        - CALL_DNC
    MethodEnum:
      enum:
        - GET
        - POST
        - PUT
        - PATCH
      type: string
      description: |-
        * `GET` - GET
        * `POST` - POST
        * `PUT` - PUT
        * `PATCH` - PATCH
    BlankEnum:
      enum:
        - ''
    NullEnum:
      enum:
        - null
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"

````