---
title: Schema Validation
---

[Skip to content](#_top)

[API Reference](https://developers.cloudflare.com/api/python)

Copy Markdown

Open in **Claude**Open in **ChatGPT**Open in **Cursor**

---

**Copy Markdown****View as Markdown**

# Schema Validation

#### Schema ValidationSchemas

##### [List all uploaded schemas](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/schemas/methods/list)

schema\_validation.schemas.list(SchemaListParams\*\*kwargs) -> SyncV4PagePaginationArray\[[PublicSchema](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.schemas%20%3E%20(model)%20public_schema%20%3E%20(schema)>)]

GET/zones/{zone\_id}/schema\_validation/schemas

##### [Get details of a schema](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/schemas/methods/get)

schema\_validation.schemas.get(strschema\_id, SchemaGetParams\*\*kwargs) -> [PublicSchema](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.schemas%20%3E%20(model)%20public_schema%20%3E%20(schema)>)

GET/zones/{zone\_id}/schema\_validation/schemas/{schema\_id}

##### [Upload a schema](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/schemas/methods/create)

schema\_validation.schemas.create(SchemaCreateParams\*\*kwargs) -> [PublicSchema](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.schemas%20%3E%20(model)%20public_schema%20%3E%20(schema)>)

POST/zones/{zone\_id}/schema\_validation/schemas

##### [Set schema validation state](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/schemas/methods/edit)

schema\_validation.schemas.edit(strschema\_id, SchemaEditParams\*\*kwargs) -> [PublicSchema](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.schemas%20%3E%20(model)%20public_schema%20%3E%20(schema)>)

PATCH/zones/{zone\_id}/schema\_validation/schemas/{schema\_id}

##### [Delete a schema](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/schemas/methods/delete)

schema\_validation.schemas.delete(strschema\_id, SchemaDeleteParams\*\*kwargs) -> object

DELETE/zones/{zone\_id}/schema\_validation/schemas/{schema\_id}

##### ModelsExpand Collapse

<details>

<summary>

class PublicSchema: …

A schema used in schema validation

</summary>

created\_at: datetime

formatdate-time

<a href="#(resource)%20schema_validation.schemas%20%3E%20(model)%20public_schema%20%3E%20(schema)%20%3E%20(property)%20created_at">Link to this property</a>

kind: Literal\["openapi\_v3"]

The kind of the schema

<a href="#(resource)%20schema_validation.schemas%20%3E%20(model)%20public_schema%20%3E%20(schema)%20%3E%20(property)%20kind">Link to this property</a>

name: str

A human-readable name for the schema

<a href="#(resource)%20schema_validation.schemas%20%3E%20(model)%20public_schema%20%3E%20(schema)%20%3E%20(property)%20name">Link to this property</a>

schema\_id: str

A unique identifier of this schema

maxLength36

minLength36

formatuuid

<a href="#(resource)%20schema_validation.schemas%20%3E%20(model)%20public_schema%20%3E%20(schema)%20%3E%20(property)%20schema_id">Link to this property</a>

source: str

The raw schema, e.g., the OpenAPI schema, either as JSON or YAML

<a href="#(resource)%20schema_validation.schemas%20%3E%20(model)%20public_schema%20%3E%20(schema)%20%3E%20(property)%20source">Link to this property</a>

validation\_enabled: Optional\[bool]

An indicator if this schema is enabled

<a href="#(resource)%20schema_validation.schemas%20%3E%20(model)%20public_schema%20%3E%20(schema)%20%3E%20(property)%20validation_enabled">Link to this property</a>

</details>

[Link to this property](<#(resource)%20schema_validation.schemas%20%3E%20(model)%20public_schema%20%3E%20(schema)>)

#### Schema ValidationSettings

##### [Get global schema validation settings](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/settings/methods/get)

schema\_validation.settings.get(SettingGetParams\*\*kwargs) -> [SettingGetResponse](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_get_response%20%3E%20(schema)>)

GET/zones/{zone\_id}/schema\_validation/settings

##### [Update global schema validation settings](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/settings/methods/update)

schema\_validation.settings.update(SettingUpdateParams\*\*kwargs) -> [SettingUpdateResponse](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_update_response%20%3E%20(schema)>)

PUT/zones/{zone\_id}/schema\_validation/settings

##### [Edit global schema validation settings](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/settings/methods/edit)

schema\_validation.settings.edit(SettingEditParams\*\*kwargs) -> [SettingEditResponse](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_edit_response%20%3E%20(schema)>)

PATCH/zones/{zone\_id}/schema\_validation/settings

##### ModelsExpand Collapse

<details>

<summary>

class SettingGetResponse: …

</summary>

<details>

<summary>

validation\_default\_mitigation\_action: Literal\["none", "log", "block"]

The default mitigation action used

Mitigation actions are as follows:

- <code>log</code> - log request when request does not conform to schema
- <code>block</code> - deny access to the site when request does not conform to schema
- <code>none</code> - skip running schema validation

</summary>

One of the following:

"none"

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_get_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action%20%3E%20(member)%200">Link to this property</a>

"log"

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_get_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action%20%3E%20(member)%201">Link to this property</a>

"block"

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_get_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action%20%3E%20(member)%202">Link to this property</a>

</details>

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_get_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action">Link to this property</a>

validation\_override\_mitigation\_action: Optional\[Literal\["none"]]

When not null, this overrides global both zone level and operation level mitigation actions. This can serve as a quick way to disable schema validation for the whole zone.

- <code>"none"</code> will skip running schema validation entirely for the request

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_get_response%20%3E%20(schema)%20%3E%20(property)%20validation_override_mitigation_action">Link to this property</a>

</details>

[Link to this property](<#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_get_response%20%3E%20(schema)>)

<details>

<summary>

class SettingUpdateResponse: …

</summary>

<details>

<summary>

validation\_default\_mitigation\_action: Literal\["none", "log", "block"]

The default mitigation action used

Mitigation actions are as follows:

- <code>log</code> - log request when request does not conform to schema
- <code>block</code> - deny access to the site when request does not conform to schema
- <code>none</code> - skip running schema validation

</summary>

One of the following:

"none"

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_update_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action%20%3E%20(member)%200">Link to this property</a>

"log"

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_update_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action%20%3E%20(member)%201">Link to this property</a>

"block"

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_update_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action%20%3E%20(member)%202">Link to this property</a>

</details>

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_update_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action">Link to this property</a>

validation\_override\_mitigation\_action: Optional\[Literal\["none"]]

When not null, this overrides global both zone level and operation level mitigation actions. This can serve as a quick way to disable schema validation for the whole zone.

- <code>"none"</code> will skip running schema validation entirely for the request

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_update_response%20%3E%20(schema)%20%3E%20(property)%20validation_override_mitigation_action">Link to this property</a>

</details>

[Link to this property](<#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_update_response%20%3E%20(schema)>)

<details>

<summary>

class SettingEditResponse: …

</summary>

<details>

<summary>

validation\_default\_mitigation\_action: Literal\["none", "log", "block"]

The default mitigation action used

Mitigation actions are as follows:

- <code>log</code> - log request when request does not conform to schema
- <code>block</code> - deny access to the site when request does not conform to schema
- <code>none</code> - skip running schema validation

</summary>

One of the following:

"none"

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_edit_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action%20%3E%20(member)%200">Link to this property</a>

"log"

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_edit_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action%20%3E%20(member)%201">Link to this property</a>

"block"

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_edit_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action%20%3E%20(member)%202">Link to this property</a>

</details>

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_edit_response%20%3E%20(schema)%20%3E%20(property)%20validation_default_mitigation_action">Link to this property</a>

validation\_override\_mitigation\_action: Optional\[Literal\["none"]]

When not null, this overrides global both zone level and operation level mitigation actions. This can serve as a quick way to disable schema validation for the whole zone.

- <code>"none"</code> will skip running schema validation entirely for the request

<a href="#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_edit_response%20%3E%20(schema)%20%3E%20(property)%20validation_override_mitigation_action">Link to this property</a>

</details>

[Link to this property](<#(resource)%20schema_validation.settings%20%3E%20(model)%20setting_edit_response%20%3E%20(schema)>)

#### Schema ValidationSettingsOperations

##### [List per-operation schema validation settings](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/settings/subresources/operations/methods/list)

schema\_validation.settings.operations.list(OperationListParams\*\*kwargs) -> SyncV4PagePaginationArray\[[OperationListResponse](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_list_response%20%3E%20(schema)>)]

GET/zones/{zone\_id}/schema\_validation/settings/operations

##### [Get per-operation schema validation setting](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/settings/subresources/operations/methods/get)

schema\_validation.settings.operations.get(stroperation\_id, OperationGetParams\*\*kwargs) -> [OperationGetResponse](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_get_response%20%3E%20(schema)>)

GET/zones/{zone\_id}/schema\_validation/settings/operations/{operation\_id}

##### [Update per-operation schema validation setting](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/settings/subresources/operations/methods/update)

schema\_validation.settings.operations.update(stroperation\_id, OperationUpdateParams\*\*kwargs) -> [OperationUpdateResponse](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_update_response%20%3E%20(schema)>)

PUT/zones/{zone\_id}/schema\_validation/settings/operations/{operation\_id}

##### [Bulk edit per-operation schema validation settings](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/settings/subresources/operations/methods/bulk_edit)

schema\_validation.settings.operations.bulk\_edit(OperationBulkEditParams\*\*kwargs) -> [OperationBulkEditResponse](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_bulk_edit_response%20%3E%20(schema)>)

PATCH/zones/{zone\_id}/schema\_validation/settings/operations

##### [Delete per-operation schema validation setting](https://developers.cloudflare.com/api/python/resources/schema_validation/subresources/settings/subresources/operations/methods/delete)

schema\_validation.settings.operations.delete(stroperation\_id, OperationDeleteParams\*\*kwargs) -> [OperationDeleteResponse](<https://developers.cloudflare.com/api/python/resources/schema_validation#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_delete_response%20%3E%20(schema)>)

DELETE/zones/{zone\_id}/schema\_validation/settings/operations/{operation\_id}

##### ModelsExpand Collapse

<details>

<summary>

class OperationListResponse: …

</summary>

<details>

<summary>

mitigation\_action: Literal\["log", "block", "none"]

When set, this applies a mitigation action to this operation which supersedes a global schema validation setting just for this operation

- <code>"log"</code> - log request when request does not conform to schema for this operation
- <code>"block"</code> - deny access to the site when request does not conform to schema for this operation
- <code>"none"</code> - will skip mitigation for this operation

</summary>

One of the following:

"log"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_list_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%200">Link to this property</a>

"block"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_list_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%201">Link to this property</a>

"none"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_list_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%202">Link to this property</a>

</details>

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_list_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action">Link to this property</a>

operation\_id: str

UUID.

maxLength36

minLength36

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_list_response%20%3E%20(schema)%20%3E%20(property)%20operation_id">Link to this property</a>

</details>

[Link to this property](<#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_list_response%20%3E%20(schema)>)

<details>

<summary>

class OperationGetResponse: …

</summary>

<details>

<summary>

mitigation\_action: Literal\["log", "block", "none"]

When set, this applies a mitigation action to this operation which supersedes a global schema validation setting just for this operation

- <code>"log"</code> - log request when request does not conform to schema for this operation
- <code>"block"</code> - deny access to the site when request does not conform to schema for this operation
- <code>"none"</code> - will skip mitigation for this operation

</summary>

One of the following:

"log"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_get_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%200">Link to this property</a>

"block"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_get_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%201">Link to this property</a>

"none"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_get_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%202">Link to this property</a>

</details>

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_get_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action">Link to this property</a>

operation\_id: str

UUID.

maxLength36

minLength36

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_get_response%20%3E%20(schema)%20%3E%20(property)%20operation_id">Link to this property</a>

</details>

[Link to this property](<#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_get_response%20%3E%20(schema)>)

<details>

<summary>

class OperationUpdateResponse: …

</summary>

<details>

<summary>

mitigation\_action: Literal\["log", "block", "none"]

When set, this applies a mitigation action to this operation which supersedes a global schema validation setting just for this operation

- <code>"log"</code> - log request when request does not conform to schema for this operation
- <code>"block"</code> - deny access to the site when request does not conform to schema for this operation
- <code>"none"</code> - will skip mitigation for this operation

</summary>

One of the following:

"log"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_update_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%200">Link to this property</a>

"block"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_update_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%201">Link to this property</a>

"none"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_update_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%202">Link to this property</a>

</details>

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_update_response%20%3E%20(schema)%20%3E%20(property)%20mitigation_action">Link to this property</a>

operation\_id: str

UUID.

maxLength36

minLength36

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_update_response%20%3E%20(schema)%20%3E%20(property)%20operation_id">Link to this property</a>

</details>

[Link to this property](<#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_update_response%20%3E%20(schema)>)

<details>

<summary>

Dict\[str, OperationBulkEditResponseItem]

Operation ID to updated mitigation action mapping

</summary>

<details>

<summary>

mitigation\_action: Optional\[Literal\["log", "block", "none"]]

When set, this applies a mitigation action to this operation

- <code>"log"</code> - log request when request does not conform to schema for this operation
- <code>"block"</code> - deny access to the site when request does not conform to schema for this operation
- <code>"none"</code> - will skip mitigation for this operation
- <code>null</code> - clears any mitigation action

</summary>

One of the following:

"log"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_bulk_edit_response%20%3E%20(schema)%20%3E%20(items)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%200">Link to this property</a>

"block"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_bulk_edit_response%20%3E%20(schema)%20%3E%20(items)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%201">Link to this property</a>

"none"

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_bulk_edit_response%20%3E%20(schema)%20%3E%20(items)%20%3E%20(property)%20mitigation_action%20%3E%20(member)%202">Link to this property</a>

</details>

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_bulk_edit_response%20%3E%20(schema)%20%3E%20(items)%20%3E%20(property)%20mitigation_action">Link to this property</a>

</details>

[Link to this property](<#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_bulk_edit_response%20%3E%20(schema)>)

<details>

<summary>

class OperationDeleteResponse: …

</summary>

operation\_id: Optional\[str]

UUID.

maxLength36

minLength36

<a href="#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_delete_response%20%3E%20(schema)%20%3E%20(property)%20operation_id">Link to this property</a>

</details>

[Link to this property](<#(resource)%20schema_validation.settings.operations%20%3E%20(model)%20operation_delete_response%20%3E%20(schema)>)