Skip to content
Start here

Upload a schema

client.SchemaValidation.Schemas.New(ctx, params) (*PublicSchema, error)
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.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Account API GatewayDomain API Gateway
ParametersExpand Collapse
params SchemaNewParams
ZoneID param.Field[string]

Path param: Identifier.

maxLength32
Kind param.Field[SchemaNewParamsKind]

Body param: The kind of the schema

const SchemaNewParamsKindOpenAPIV3 SchemaNewParamsKind = "openapi_v3"
Name param.Field[string]

Body param: A human-readable name for the schema

Source param.Field[string]

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

ValidationEnabled param.Field[bool]

Body param: An indicator if this schema is enabled

ReturnsExpand Collapse
type PublicSchema struct{…}

A schema used in schema validation

CreatedAt Time
formatdate-time
Kind PublicSchemaKind

The kind of the schema

Name string

A human-readable name for the schema

SchemaID string

A unique identifier of this schema

maxLength36
minLength36
formatuuid
Source string

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

ValidationEnabled booloptional

An indicator if this schema is enabled

Upload a schema

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/schema_validation"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  publicSchema, err := client.SchemaValidation.Schemas.New(context.TODO(), schema_validation.SchemaNewParams{
    ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    Kind: cloudflare.F(schema_validation.SchemaNewParamsKindOpenAPIV3),
    Name: cloudflare.F("petstore schema"),
    Source: cloudflare.F("<schema file contents>"),
    ValidationEnabled: cloudflare.F(true),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", publicSchema.SchemaID)
}
{
  "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": "<schema file contents>",
    "validation_enabled": true
  },
  "success": true
}
Returns Examples
{
  "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": "<schema file contents>",
    "validation_enabled": true
  },
  "success": true
}