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

# Delete Webhook

> Mixin for organization access validation.

Automatically resolves and validates organization access on every request,
making the organization available as self.organization.

For API key auth:  organization is derived from the key (no org_id param needed).
For user auth:     organization_id must be provided in the request
                   (kwargs / headers / body / query params).

Usage:
    class MyView(BaseOrganizationAccessMixin, APIView):
        def get(self, request):
            # self.organization is automatically available
            return Response({"org": self.organization.name})



## OpenAPI

````yaml DELETE /webhooks/{webhook_id}/
openapi: 3.1.0
info:
  title: Roe AI API
  version: 1.0.0
  description: Complete API documentation for Roe AI platform
servers:
  - url: https://api.roe-ai.com
    description: Production API
security: []
paths:
  /webhooks/{webhook_id}/:
    delete:
      tags:
        - webhooks
      description: >-
        Mixin for organization access validation.


        Automatically resolves and validates organization access on every
        request,

        making the organization available as self.organization.


        For API key auth:  organization is derived from the key (no org_id param
        needed).

        For user auth:     organization_id must be provided in the request
                           (kwargs / headers / body / query params).

        Usage:
            class MyView(BaseOrganizationAccessMixin, APIView):
                def get(self, request):
                    # self.organization is automatically available
                    return Response({"org": self.organization.name})
      operationId: webhooks_destroy
      parameters:
        - in: path
          name: webhook_id
          schema:
            type: string
            format: uuid
          required: true
        - name: organization_id
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: >-
            Organization ID. This is required for access control. It can be
            provided via query or request body depending on the endpoint.
      responses:
        '204':
          description: No response body
      security:
        - jwtAuth: []
      x-codeSamples:
        - lang: Python
          source: |
            import requests

            webhook_id = "your-webhook-id"
            response = requests.delete(
                f"https://api.roe-ai.com/webhooks/{webhook_id}/",
                headers={"Authorization": "Bearer YOUR_API_KEY"}
            )
            if response.status_code == 204:
                print("Webhook deleted")
        - lang: TypeScript
          source: |
            const webhookId = "your-webhook-id";
            const response = await fetch(
              `https://api.roe-ai.com/webhooks/${webhookId}/`,
              {
                method: "DELETE",
                headers: { "Authorization": "Bearer YOUR_API_KEY" }
              }
            );
            if (response.status === 204) {
              console.log("Webhook deleted");
            }
        - lang: cURL
          source: |
            curl -X DELETE "https://api.roe-ai.com/webhooks/YOUR_WEBHOOK_ID/" \
              -H "Authorization: Bearer YOUR_API_KEY"
components:
  securitySchemes:
    jwtAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````