## Upload a schema
**post** `/zones/{zone_id}/schema_validation/schemas`
Uploads a new OpenAPI schema for API Shield schema validation. The schema defines expected request/response formats for API endpoints.
### Path Parameters
- `zone_id: string`
Identifier.
### Body Parameters
- `kind: "openapi_v3"`
The kind of the schema
- `"openapi_v3"`
- `name: string`
A human-readable name for the schema
- `source: string`
The raw schema, e.g., the OpenAPI schema, either as JSON or YAML
- `validation_enabled: boolean`
An indicator if this schema is enabled
### Returns
- `errors: array of { code, message, documentation_url, source }`
- `code: number`
A unique error code that describes the kind of issue with the schema
- `message: string`
A short text explaining the issue with the schema
- `documentation_url: optional string`
- `source: optional { locations, pointer }`
- `locations: optional array of string`
A list of JSON path expression(s) that describe the location(s) of the issue within the provided resource. See for JSONPath specification.
- `pointer: optional string`
- `messages: array of { code, message, documentation_url, source }`
- `code: number`
A unique error code that describes the kind of issue with the schema
- `message: string`
A short text explaining the issue with the schema
- `documentation_url: optional string`
- `source: optional { locations, pointer }`
- `locations: optional array of string`
A list of JSON path expression(s) that describe the location(s) of the issue within the provided resource. See for JSONPath specification.
- `pointer: optional string`
- `result: PublicSchema`
A schema used in schema validation
- `created_at: string`
- `kind: "openapi_v3"`
The kind of the schema
- `"openapi_v3"`
- `name: string`
A human-readable name for the schema
- `schema_id: string`
A unique identifier of this schema
- `source: string`
The raw schema, e.g., the OpenAPI schema, either as JSON or YAML
- `validation_enabled: optional boolean`
An indicator if this schema is enabled
- `success: true`
Whether the API call was successful.
- `true`
### Example
```http
curl https://api.cloudflare.com/client/v4/zones/$ZONE_ID/schema_validation/schemas \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-d '{
"kind": "openapi_v3",
"name": "petstore schema",
"source": "",
"validation_enabled": true
}'
```
#### Response
```json
{
"errors": [
{
"code": 1000,
"message": "message",
"documentation_url": "documentation_url",
"source": {
"locations": [
".paths[\"/user/{username}\"].put"
],
"pointer": "pointer"
}
}
],
"messages": [
{
"code": 1000,
"message": "message",
"documentation_url": "documentation_url",
"source": {
"locations": [
".paths[\"/user/{username}\"].put"
],
"pointer": "pointer"
}
}
],
"result": {
"created_at": "2014-01-01T05:20:00.12345Z",
"kind": "openapi_v3",
"name": "petstore schema",
"schema_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
"source": "",
"validation_enabled": true
},
"success": true
}
```