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

# List webhooks

> Returns a cursor-paginated list of webhook subscriptions.



## OpenAPI

````yaml get /webhooks
openapi: 3.0.3
info:
  version: 0.1.1
  title: Datagrid API
  description: Datagrid API
servers:
  - url: https://api.datagrid.com/v1
security:
  - BearerAuth: []
paths:
  /webhooks:
    get:
      tags:
        - Webhooks
      summary: List webhooks
      description: Returns a cursor-paginated list of webhook subscriptions.
      operationId: Webhooks.listWebhooks
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 100
          description: The maximum number of webhook subscriptions to return.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: A pagination cursor returned by a previous list call.
      responses:
        '200':
          description: List of webhooks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWebhooksResponse'
        '429':
          description: >-
            Rate limit exceeded. The request has been throttled because the rate
            limit for this endpoint has been reached. Check the `Retry-After`
            response header and retry after the specified number of seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import Datagrid from 'datagrid-ai';

            const client = new Datagrid({
              apiKey: process.env['DATAGRID_API_KEY'], // This is the default and can be omitted
            });

            // Automatically fetches more pages as needed.
            for await (const webhook of client.webhooks.list()) {
              console.log(webhook.id);
            }
        - lang: Python
          source: |-
            import os
            from datagrid_ai import Datagrid

            client = Datagrid(
                api_key=os.environ.get("DATAGRID_API_KEY"),  # This is the default and can be omitted
            )
            page = client.webhooks.list()
            page = page.data[0]
            print(page.id)
components:
  schemas:
    ListWebhooksResponse:
      type: object
      required:
        - object
        - data
        - has_more
        - next_cursor
      properties:
        object:
          type: string
          enum:
            - list
        data:
          type: array
          items:
            $ref: '#/components/schemas/Webhook'
          description: An array containing webhook subscriptions for this page.
        has_more:
          type: boolean
          description: Whether there are additional results available.
        next_cursor:
          type: string
          nullable: true
          description: The cursor to supply to `cursor` to fetch the next page.
    RateLimitError:
      type: object
      description: >-
        Returned when the rate limit is exceeded. Rate limits are enforced per
        teamspace, endpoint path, and HTTP method over a 60-second sliding
        window. Each endpoint may have its own limit — check the
        X-RateLimit-Limit response header for the effective value.
      required:
        - error
        - message
        - retryable
        - status_code
      properties:
        status_code:
          type: integer
          description: The HTTP status code (429).
        statusCode:
          type: integer
          deprecated: true
          description: Deprecated. Use status_code instead.
        error:
          type: string
          enum:
            - rate_limit_exceeded
          description: The error code identifying this as a rate limit error.
        message:
          type: string
          description: A human-readable error message.
        mitigation:
          type: string
          description: Suggested action to resolve the error.
        retryable:
          type: boolean
          description: Whether the request can be retried after a delay.
        details:
          type: object
          properties:
            reason:
              type: string
              description: A detailed explanation of why the rate limit was exceeded.
    Webhook:
      type: object
      description: The `webhook` object represents an outbound webhook subscription.
      required:
        - object
        - id
        - url
        - events
        - enabled
        - created_at
        - updated_at
      properties:
        object:
          type: string
          enum:
            - webhook
          description: The object type, which is always `webhook`.
        id:
          type: string
          description: The webhook identifier.
        url:
          type: string
          description: The destination URL for webhook deliveries.
        events:
          type: array
          items:
            $ref: '#/components/schemas/WebhookEventType'
          description: >-
            The subscribed event types. Currently delivered events include
            `knowledge.processing.completed`, `batch_prediction.completed`,
            `batch_prediction.failed`, `batch_prediction.expired`, and
            `batch_prediction.cancelled`.
        enabled:
          type: boolean
          description: Whether delivery is enabled for this webhook.
        created_at:
          type: string
          format: date-time
          description: The ISO string for when the webhook was created.
        updated_at:
          type: string
          format: date-time
          description: The ISO string for when the webhook was last updated.
    WebhookEventType:
      type: string
      enum:
        - knowledge.processing.completed
        - batch_prediction.completed
        - batch_prediction.failed
        - batch_prediction.expired
        - batch_prediction.cancelled
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````