## Upload a schema to a zone
`api_gateway.user_schemas.create(UserSchemaCreateParams**kwargs) -> UserSchemaCreateResponse`
**post** `/zones/{zone_id}/api_gateway/user_schemas`
Upload a schema to a zone
### Parameters
- `zone_id: str`
Identifier.
- `file: FileTypes`
Schema file bytes
- `kind: Literal["openapi_v3"]`
Kind of schema
- `"openapi_v3"`
- `name: Optional[str]`
Name of the schema
- `validation_enabled: Optional[Literal["true", "false"]]`
Flag whether schema is enabled for validation.
- `"true"`
- `"false"`
### Returns
- `class UserSchemaCreateResponse: …`
- `schema: OldPublicSchema`
- `created_at: datetime`
- `kind: Literal["openapi_v3"]`
Kind of schema
- `"openapi_v3"`
- `name: str`
Name of the schema
- `schema_id: str`
UUID.
- `source: Optional[str]`
Source of the schema
- `validation_enabled: Optional[bool]`
Flag whether schema is enabled for validation.
- `upload_details: Optional[UploadDetails]`
- `warnings: Optional[List[UploadDetailsWarning]]`
Diagnostic warning events that occurred during processing. These events are non-critical errors found within the schema.
- `code: int`
Code that identifies the event that occurred.
- `locations: Optional[List[str]]`
JSONPath location(s) in the schema where these events were encountered. See for JSONPath specification.
- `message: Optional[str]`
Diagnostic message that describes the event.
### Example
```python
import os
from cloudflare import Cloudflare
client = Cloudflare(
api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted
)
user_schema = client.api_gateway.user_schemas.create(
zone_id="023e105f4ecef8ad9ca31a8372d0c353",
file=b"Example data",
kind="openapi_v3",
)
print(user_schema.schema)
```
#### Response
```json
{
"errors": [
{
"code": 1000,
"message": "message",
"documentation_url": "documentation_url",
"source": {
"pointer": "pointer"
}
}
],
"messages": [
{
"code": 1000,
"message": "message",
"documentation_url": "documentation_url",
"source": {
"pointer": "pointer"
}
}
],
"result": {
"schema": {
"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
},
"upload_details": {
"warnings": [
{
"code": 28,
"locations": [
".paths[\"/user/{username}\"].put"
],
"message": "unsupported media type: application/octet-stream"
}
]
}
},
"success": true
}
```