--- title: "Create schema" slug: "datastream-createschemas" updated: 2026-09-17T09:47:59Z published: 2026-09-17T09:47:59Z canonical: "api.ncloud-docs.com/datastream-createschemas" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Create schema Available in VPC Create a schema on a topic. Note Schemas are used to define the structure of messages. You can register a value schema to manage the structure of message values. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | POST | /api/v1/topics/{topicId}/schemas | ### Request headers For information about the headers common to all Data Stream APIs, see [Data Stream request headers](/docs/en/datastream-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request path parameters You can use the following path parameters with your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `topicId` | String | Required | Topic ID - See [Get topic list](/docs/en/datastream-gettopic). | ### Request body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `schemaType` | String | Required | Schema type - `AVRO` \| `JSON` \| `PROTOBUF` - `AVRO`: Apache Avro schema - `JSON`: JSON schema - `PROTOBUF`: Protocol Buffers schema | | `schema` | String | Required | Schema definition - Write in the format appropriate for the selected schema type. - Pass in JSON string format. | ### Request example The request example is as follows: #### Create AVRO schema ``` curl --location --request POST 'https://datastream.apigw.ntruss.com/api/v1/topics/mgNWA*****/schemas' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --data '{ "schemaType": "AVRO", "schema": "{\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"email\",\"type\":\"string\"}]}" }' ``` #### Create JSON schema ``` curl --location --request POST 'https://datastream.apigw.ntruss.com/api/v1/topics/mgNWA*****/schemas' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --data '{ "schemaType": "JSON", "schema": "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\"},\"name\":{\"type\":\"string\"},\"email\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]}" }' ``` ## Response This section describes the response format. ### Response status codes For information about the HTTP status codes common to all Data Stream APIs, see [Data Stream response status codes](/docs/en/datastream-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example If the schemas are successfully created, there is no response body, and a status code 200 is returned. ``` HTTP/1.1 200 OK ```