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

# Delete a custom WAF rule



## OpenAPI

````yaml https://api.bunny.net/shield/docs/v1/swagger.json delete /shield/waf/custom-rule/{id}
openapi: 3.0.4
info:
  title: Bunny Shield API
  description: >-
    Bunny.net API for Bunny Shield (WAF, DDoS, Rate Limiting, Bot Detection,
    Access Lists & API Guardian).
  version: v1
servers:
  - url: https://api.bunny.net
security: []
paths:
  /shield/waf/custom-rule/{id}:
    delete:
      tags:
        - WAF
      summary: Delete a custom WAF rule
      operationId: Delete Custom WAF Rule
      parameters:
        - name: id
          in: path
          description: The ID of the Custom WAF Rule that should be deleted.
          required: true
          schema:
            type: integer
            description: The ID of the Custom WAF Rule that should be deleted.
            format: int32
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GenericRequestResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/GenericRequestResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/GenericRequestResponse'
        '202':
          description: Accepted
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/AcceptedResult'
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResult'
            text/json:
              schema:
                $ref: '#/components/schemas/AcceptedResult'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/UnauthorizedResult'
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResult'
            text/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResult'
        '500':
          description: Internal Server Error
components:
  schemas:
    GenericRequestResponse:
      type: object
      properties:
        statusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        success:
          type: boolean
          description: Indicates whether the operation was successful.
        message:
          type: string
          description: Human-readable message describing the result of the operation.
          nullable: true
        errorKey:
          type: string
          description: Unique error key for programmatic error handling, if applicable.
          nullable: true
      additionalProperties: false
      description: >-
        Generic response object containing status information for API
        operations.
    AcceptedResult:
      type: object
      properties:
        location:
          type: string
          nullable: true
        value:
          nullable: true
        formatters:
          type: array
          items:
            $ref: '#/components/schemas/IOutputFormatter'
          nullable: true
        contentTypes:
          type: array
          items:
            type: string
          nullable: true
        declaredType:
          type: string
          nullable: true
        statusCode:
          type: integer
          format: int32
          nullable: true
      additionalProperties: false
    UnauthorizedResult:
      type: object
      properties:
        statusCode:
          type: integer
          format: int32
      additionalProperties: false
    HttpStatusCode:
      enum:
        - 100
        - 101
        - 102
        - 103
        - 200
        - 201
        - 202
        - 203
        - 204
        - 205
        - 206
        - 207
        - 208
        - 226
        - 300
        - 301
        - 302
        - 303
        - 304
        - 305
        - 306
        - 307
        - 308
        - 400
        - 401
        - 402
        - 403
        - 404
        - 405
        - 406
        - 407
        - 408
        - 409
        - 410
        - 411
        - 412
        - 413
        - 414
        - 415
        - 416
        - 417
        - 421
        - 422
        - 423
        - 424
        - 426
        - 428
        - 429
        - 431
        - 451
        - 500
        - 501
        - 502
        - 503
        - 504
        - 505
        - 506
        - 507
        - 508
        - 510
        - 511
      type: integer
      description: |-
        100 = Continue
        101 = SwitchingProtocols
        102 = Processing
        103 = EarlyHints
        200 = OK
        201 = Created
        202 = Accepted
        203 = NonAuthoritativeInformation
        204 = NoContent
        205 = ResetContent
        206 = PartialContent
        207 = MultiStatus
        208 = AlreadyReported
        226 = IMUsed
        300 = MultipleChoices
        300 = Ambiguous
        301 = MovedPermanently
        301 = Moved
        302 = Found
        302 = Redirect
        303 = SeeOther
        303 = RedirectMethod
        304 = NotModified
        305 = UseProxy
        306 = Unused
        307 = TemporaryRedirect
        307 = RedirectKeepVerb
        308 = PermanentRedirect
        400 = BadRequest
        401 = Unauthorized
        402 = PaymentRequired
        403 = Forbidden
        404 = NotFound
        405 = MethodNotAllowed
        406 = NotAcceptable
        407 = ProxyAuthenticationRequired
        408 = RequestTimeout
        409 = Conflict
        410 = Gone
        411 = LengthRequired
        412 = PreconditionFailed
        413 = RequestEntityTooLarge
        414 = RequestUriTooLong
        415 = UnsupportedMediaType
        416 = RequestedRangeNotSatisfiable
        417 = ExpectationFailed
        421 = MisdirectedRequest
        422 = UnprocessableEntity
        422 = UnprocessableContent
        423 = Locked
        424 = FailedDependency
        426 = UpgradeRequired
        428 = PreconditionRequired
        429 = TooManyRequests
        431 = RequestHeaderFieldsTooLarge
        451 = UnavailableForLegalReasons
        500 = InternalServerError
        501 = NotImplemented
        502 = BadGateway
        503 = ServiceUnavailable
        504 = GatewayTimeout
        505 = HttpVersionNotSupported
        506 = VariantAlsoNegotiates
        507 = InsufficientStorage
        508 = LoopDetected
        510 = NotExtended
        511 = NetworkAuthenticationRequired
      format: int32
      x-enum-varnames:
        - Continue
        - SwitchingProtocols
        - Processing
        - EarlyHints
        - OK
        - Created
        - Accepted
        - NonAuthoritativeInformation
        - NoContent
        - ResetContent
        - PartialContent
        - MultiStatus
        - AlreadyReported
        - IMUsed
        - MultipleChoices
        - Ambiguous
        - MovedPermanently
        - Moved
        - Found
        - Redirect
        - SeeOther
        - RedirectMethod
        - NotModified
        - UseProxy
        - Unused
        - TemporaryRedirect
        - RedirectKeepVerb
        - PermanentRedirect
        - BadRequest
        - Unauthorized
        - PaymentRequired
        - Forbidden
        - NotFound
        - MethodNotAllowed
        - NotAcceptable
        - ProxyAuthenticationRequired
        - RequestTimeout
        - Conflict
        - Gone
        - LengthRequired
        - PreconditionFailed
        - RequestEntityTooLarge
        - RequestUriTooLong
        - UnsupportedMediaType
        - RequestedRangeNotSatisfiable
        - ExpectationFailed
        - MisdirectedRequest
        - UnprocessableEntity
        - UnprocessableContent
        - Locked
        - FailedDependency
        - UpgradeRequired
        - PreconditionRequired
        - TooManyRequests
        - RequestHeaderFieldsTooLarge
        - UnavailableForLegalReasons
        - InternalServerError
        - NotImplemented
        - BadGateway
        - ServiceUnavailable
        - GatewayTimeout
        - HttpVersionNotSupported
        - VariantAlsoNegotiates
        - InsufficientStorage
        - LoopDetected
        - NotExtended
        - NetworkAuthenticationRequired
    IOutputFormatter:
      type: object
      additionalProperties: false

````