> ## Documentation Index > Fetch the complete documentation index at: https://bunny.net/docs/llms.txt > Use this file to discover all available pages before exploring further. # Get the API Guardian configuration and endpoints. ## OpenAPI ````yaml https://api.bunny.net/shield/docs/v1/swagger.json get /shield/shield-zone/{shieldZoneId}/api-guardian 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/shield-zone/{shieldZoneId}/api-guardian: get: tags: - API Guardian summary: Get the API Guardian configuration and endpoints. operationId: Get API Guardian parameters: - name: shieldZoneId in: path required: true schema: type: integer format: int32 responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/GetApiGuardianResponse' application/json: schema: $ref: '#/components/schemas/GetApiGuardianResponse' text/json: schema: $ref: '#/components/schemas/GetApiGuardianResponse' '401': description: Unauthorized content: text/plain: schema: $ref: '#/components/schemas/ProblemDetails' application/json: schema: $ref: '#/components/schemas/ProblemDetails' text/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: Forbidden content: text/plain: schema: $ref: '#/components/schemas/GetApiGuardianResponse' application/json: schema: $ref: '#/components/schemas/GetApiGuardianResponse' text/json: schema: $ref: '#/components/schemas/GetApiGuardianResponse' '404': description: Not Found content: text/plain: schema: $ref: '#/components/schemas/GetApiGuardianResponse' application/json: schema: $ref: '#/components/schemas/GetApiGuardianResponse' text/json: schema: $ref: '#/components/schemas/GetApiGuardianResponse' '500': description: Internal Server Error components: schemas: GetApiGuardianResponse: type: object properties: error: $ref: '#/components/schemas/GenericRequestResponse' data: $ref: '#/components/schemas/ApiGuardianConfigurationResponse' additionalProperties: false description: Represents the response for getting API Guardian configuration. ProblemDetails: type: object properties: type: type: string nullable: true title: type: string nullable: true status: type: integer format: int32 nullable: true detail: type: string nullable: true instance: type: string nullable: true additionalProperties: {} 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. ApiGuardianConfigurationResponse: required: - configuration - endpoints type: object properties: configuration: $ref: '#/components/schemas/ApiGuardianConfigurationDetails' endpoints: type: array items: $ref: '#/components/schemas/ApiGuardianEndpointDetails' description: All endpoints discovered from the uploaded OpenAPI specification. nullable: true additionalProperties: false description: >- The full API Guardian state for a shield zone: global configuration and all endpoints. 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 ApiGuardianConfigurationDetails: type: object properties: shieldZoneId: type: integer format: int32 isEnabled: type: boolean description: >- Whether API Guardian is enabled for this shield zone. When disabled, no requests are inspected. executionMode: $ref: '#/components/schemas/WAFExecutionMode' bodyLimitAction: $ref: '#/components/schemas/WAFPayloadLimitAction' unmatchedPathAction: $ref: '#/components/schemas/UnmatchedPathAction' title: type: string description: The `info.title` field from the uploaded OpenAPI specification. nullable: true version: type: string description: The `info.version` field from the uploaded OpenAPI specification. nullable: true maxEndpoints: type: integer description: >- Plan limit: maximum number of endpoints that can be defined in the specification. format: int32 maxFieldsPerType: type: integer description: >- Plan limit: maximum number of properties a single schema object may declare. format: int32 maxNestingDepth: type: integer description: >- Plan limit: maximum depth of nested `$ref`, `items`, and `properties` chains. format: int32 maxTotalSchemaNodes: type: integer description: >- Plan limit: combined node count across all `components/schemas` entries. format: int32 maxTotalRegexLength: type: integer description: >- Plan limit: combined character length of all `pattern` regex strings in the specification. format: int32 createdAt: type: string format: date-time updatedAt: type: string format: date-time nullable: true additionalProperties: false description: Global API Guardian configuration for a shield zone. ApiGuardianEndpointDetails: type: object properties: apiGuardianEndpointId: type: integer format: int64 shieldZoneId: type: integer format: int32 requestMethod: type: string description: The HTTP method (e.g. "GET", "POST"). nullable: true requestPath: type: string description: The OAS path template (e.g. "/pets/{petId}"). nullable: true validateRequestBodySchema: type: boolean description: >- Whether inbound request bodies are validated against the OAS request body schema. validateResponseBodySchema: type: boolean description: >- Whether outbound response bodies are validated against the OAS response schema. validateAuthorization: type: boolean description: Whether authentication credentials are enforced. isEnabled: type: boolean description: >- Whether this endpoint is active. Disabled endpoints are not enforced. authSchemes: type: array items: $ref: '#/components/schemas/AuthSchemeDetails' description: >- Authentication schemes required by this endpoint, derived from the OAS security requirements. Null when the endpoint has no security requirements. nullable: true requestBodySchemaYaml: type: string description: >- The request body schema rendered as YAML for display purposes. Null if no request body is defined. nullable: true responseBodySchemasYaml: type: object additionalProperties: type: string description: >- Response body schemas keyed by HTTP status code, rendered as YAML. Null if no response schemas are defined. nullable: true availableParameters: type: object properties: Path: type: array items: type: string Query: type: array items: type: string Header: type: array items: type: string Cookie: type: array items: type: string additionalProperties: false description: >- All parameters defined in the OAS operation, grouped by location (path, query, header, cookie). nullable: true injectionDetectionParameters: type: object properties: Path: type: array items: type: string Query: type: array items: type: string Header: type: array items: type: string Cookie: type: array items: type: string additionalProperties: false description: >- Parameters selected for XSS/SQLi injection detection, grouped by location. Null if not configured. Subset of BunnyNet.Shield.Api.Services.Shield.ApiGuardian.Models.ApiGuardianEndpointDetails.AvailableParameters. nullable: true detectParameterXss: type: boolean description: Whether XSS detection is enabled for the selected parameters. detectParameterSqli: type: boolean description: >- Whether SQL injection detection is enabled for the selected parameters. rateLimitingEnabled: type: boolean description: Whether per-endpoint rate limiting is active. rateLimitingType: $ref: '#/components/schemas/ApiGuardianRateLimitType' rateLimitingRequestCount: type: integer description: >- Maximum number of requests allowed within the rate limiting timeframe before blocking. format: int32 rateLimitingTimeframe: $ref: '#/components/schemas/RateLimitTimeframe' createdAt: type: string format: date-time updatedAt: type: string format: date-time nullable: true additionalProperties: false description: >- Detailed view of a single API Guardian endpoint, including its validation settings, authentication requirements, and rate limiting configuration. WAFExecutionMode: enum: - 0 - 1 type: integer description: |- 0 = Log 1 = Block format: int32 x-enum-varnames: - Log - Block WAFPayloadLimitAction: enum: - 0 - 1 - 2 type: integer description: |- 0 = Block 1 = Log 2 = Ignore format: int32 x-enum-varnames: - Block - Log - Ignore UnmatchedPathAction: enum: - 0 - 1 - 2 type: integer description: |- 0 = Block 1 = Log 2 = Ignore format: int32 x-enum-varnames: - Block - Log - Ignore AuthSchemeDetails: type: object properties: schemeName: type: string description: >- The OpenAPI security scheme reference name (e.g. "bearerAuth", "apiKey"). nullable: true schemeType: $ref: '#/components/schemas/AuthSchemeType' location: $ref: '#/components/schemas/AuthLocation' credentialName: type: string description: >- The name of the header, query parameter, or cookie that carries the credential (e.g. "Authorization", "X-API-Key"). nullable: true httpScheme: type: string description: >- For HTTP auth schemes, the scheme name (e.g. "bearer", "basic"). Null for non-HTTP schemes. nullable: true additionalProperties: false description: |- Describes a single authentication scheme required by an endpoint, as extracted from the OpenAPI specification's securitySchemes. ApiGuardianRateLimitType: enum: - Global - IP type: string RateLimitTimeframe: enum: - 1 - 10 - 60 - 300 - 900 - 3600 type: integer description: |- 1 = PerSecond 10 = PerTenSeconds 60 = PerOneMinute 300 = PerFiveMinutes 900 = PerFifteenMinutes 3600 = PerOneHour format: int32 x-enum-varnames: - PerSecond - PerTenSeconds - PerOneMinute - PerFiveMinutes - PerFifteenMinutes - PerOneHour AuthSchemeType: enum: - ApiKey - Http - OAuth2 - OpenIdConnect type: string description: The type of security scheme as defined in the OpenAPI specification. AuthLocation: enum: - Header - Query - Cookie type: string description: Where an authentication credential is transmitted in the HTTP request. ```` This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.