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

# List webhooks

> Returns the webhooks registered in the project, newest first. The signing secret is never returned by the list. Fetch a single webhook for it.



## OpenAPI

````yaml get /v2/webhooks
openapi: 3.1.0
info:
  title: StackOne
  description: The documentation for the StackOne API
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.stackone.com
security: []
tags:
  - name: Accounts
    description: View and manage linked accounts.
  - name: Connector Profiles
    description: View and manage connector profiles for the project.
  - name: Connectors
    description: Retrieve metadata for connectors.
  - name: Webhooks
    description: Configure and manage webhooks.
  - name: Data Sync
    description: View data-sync configs, schedules, and runs.
paths:
  /v2/webhooks:
    get:
      tags:
        - Webhooks
      summary: List webhooks
      description: >-
        Returns the webhooks registered in the project, newest first. The
        signing secret is never returned by the list. Fetch a single webhook for
        it.
      operationId: list_webhooks
      parameters:
        - name: page
          required: false
          in: query
          description: >-
            The 1-based page number to fetch. Omit both `page` and `page_size`
            to fetch all webhooks at once.
          schema:
            minimum: 1
            nullable: true
            type: number
        - name: page_size
          required: false
          in: query
          description: The number of webhooks to return per page.
          schema:
            minimum: 1
            maximum: 100
            nullable: true
            default: 25
            type: number
        - name: status
          required: false
          in: query
          description: Filter webhooks by their status.
          x-speakeasy-unknown-values: allow
          schema:
            $ref: '#/components/schemas/StatusType'
        - name: expand
          required: false
          in: query
          description: >-
            A comma-separated list of additional fields to expand. Supported
            values: `provider_events` (the per-provider event configuration).
            These are returned as `null` unless requested.
          schema:
            nullable: true
            example: provider_events
            type: string
      responses:
        '200':
          description: The webhooks were retrieved.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PaginatedWebhooksResponse'
                  - type: array
                    items:
                      $ref: '#/components/schemas/WebhookResource'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '408':
          description: The request has timed out.
          headers:
            Retry-After:
              description: A time in seconds after which the request can be retried.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTimedOutResponse'
        '409':
          description: Conflict with current state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictResponse'
        '422':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsResponse'
        '500':
          description: Server error while executing the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
        '501':
          description: This functionality is not implemented.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotImplementedResponse'
        '502':
          description: Bad gateway error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadGatewayResponse'
      security:
        - basic: []
components:
  schemas:
    StatusType:
      type: string
      enum:
        - active
        - inactive
        - suspended
        - archived
        - expired
        - error
        - unmapped_value
        - null
    PaginatedWebhooksResponse:
      type: object
      properties:
        page:
          type: number
          description: The current page number.
        page_size:
          type: number
          description: The number of webhooks per page.
        total:
          type: number
          description: The total number of webhooks matching the request.
        data:
          description: The webhooks on this page.
          type: array
          items:
            $ref: '#/components/schemas/WebhookResource'
      required:
        - page
        - page_size
        - total
        - data
    WebhookResource:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the webhook.
        label:
          type: string
          description: The display label of the webhook.
        webhook_url:
          type: string
          description: The URL webhook events are delivered to.
        events:
          description: >-
            The unified event names the webhook is subscribed to (e.g.
            `employee.created`).
          type: array
          items:
            type: string
        status:
          description: The status of the webhook.
          x-speakeasy-unknown-values: allow
          allOf:
            - $ref: '#/components/schemas/StatusType'
        status_reasons:
          description: >-
            The reasons explaining the current status; empty when none are
            recorded.
          type: array
          items:
            $ref: '#/components/schemas/WebhookStatusReasonResource'
        provider_events:
          type: object
          nullable: true
          additionalProperties:
            type: object
            description: >-
              The unified events sourced from the provider, keyed by unified
              event name.
            additionalProperties:
              $ref: '#/components/schemas/WebhookProviderEventConfigResource'
          description: >-
            The per-provider event configuration, keyed by provider key and then
            by unified event name. Only resolved when `expand=provider_events`
            is requested; `null` otherwise.
        created_at:
          type: string
          format: date-time
          description: When the webhook was created.
        updated_at:
          type: string
          format: date-time
          description: When the webhook was last updated.
      required:
        - id
        - label
        - webhook_url
        - events
        - status
        - status_reasons
        - provider_events
        - created_at
        - updated_at
    BadRequestResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 400
        message:
          type: string
          description: Error message
          example: Bad Request
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
        data:
          description: Error details
          nullable: true
          allOf:
            - $ref: '#/components/schemas/UnifiedError'
        provider_errors:
          description: List of provider-specific errors
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/ProviderError'
      required:
        - statusCode
        - message
        - timestamp
    UnauthorizedResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 401
        message:
          type: string
          description: Error message
          example: Unauthorized
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    ForbiddenResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 403
        message:
          type: string
          description: Error message
          example: Forbidden resource
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    NotFoundResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 404
        message:
          type: string
          description: Error message
          example: Not Found
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    RequestTimedOutResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 408
        message:
          type: string
          description: Error message
          example: Request timed out
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    ConflictResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 409
        message:
          type: string
          description: Error message
          example: Conflict
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    UnprocessableEntityResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 422
        message:
          type: string
          description: Error message
          example: Unprocessable Entity
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    TooManyRequestsResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 429
        message:
          type: string
          description: Error message
          example: Too many requests
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    InternalServerErrorResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 500
        message:
          type: string
          description: Error message
          example: Internal server error
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    NotImplementedResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 501
        message:
          type: string
          description: Error message
          example: Not Implemented
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    BadGatewayResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 502
        message:
          type: string
          description: Error message
          example: Bad Gateway
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    WebhookStatusReasonResource:
      type: object
      properties:
        code:
          type: string
          description: A machine-readable status code.
          nullable: true
        description:
          type: string
          description: A human-readable explanation of the status.
          nullable: true
        timestamp:
          type: string
          format: date-time
          description: When this reason was recorded.
      required:
        - timestamp
    WebhookProviderEventConfigResource:
      type: object
      properties:
        synthetic:
          description: >-
            The StackOne-synthesised source of the event, when the provider has
            one.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/WebhookEventToggleResource'
        programmatic:
          description: The provider events wired up programmatically by StackOne.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/WebhookEventSourceResource'
        manual:
          description: The provider events requiring manual setup in the external system.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/WebhookEventSourceResource'
    UnifiedError:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 400
          nullable: true
        message:
          type: string
          description: Error message
          example: Bad Request
          nullable: true
        headers:
          type: object
          description: Response headers
          example:
            content-type: application/json
            x-request-id: 5678c28b211dace4e0a0f9171e6b88c5
          nullable: true
    ProviderError:
      type: object
      properties:
        status:
          type: number
          description: HTTP status code of the provider error
          example: 400
          nullable: true
        url:
          type: string
          description: URL that caused the error
          example: https://api.provider.com/v1/resource
          nullable: true
        raw:
          type: object
          description: Raw error response from the provider
          example:
            message: Invalid input parameters
          nullable: true
        headers:
          type: object
          description: Response headers
          example:
            content-type: application/json
            x-request-id: 5678c28b211dace4e0a0f9171e6b88c5
          nullable: true
    WebhookEventToggleResource:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether the event is enabled.
      required:
        - enabled
    WebhookEventSourceResource:
      type: object
      properties:
        events:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/WebhookEventToggleResource'
          description: >-
            The provider-specific events of this source, keyed by provider
            event.
      required:
        - events
  securitySchemes:
    basic:
      type: http
      scheme: basic

````