---
title: "POST /v2/{+parent}/schemaBundles"
method: POST
path: "/v2/{+parent}/schemaBundles"
tags: ["projects"]
---

# POST /v2/{+parent}/schemaBundles

`POST /v2/{+parent}/schemaBundles`

Creates a new schema bundle in the specified table.

## Path parameters

- `parent` string, required

## Query parameters

- `schemaBundleId` string

## Request body

- SchemaBundle — A named collection of related schemas.
  - `protoSchema` ProtoSchema — Represents a collection of protobuf schemas.
    - `protoDescriptors` string, byte — Required. Contains a protobuf-serialized [google.protobuf.FileDescriptorSet](https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/descriptor.proto), which could include multiple proto files. To generate it, [install](https://grpc.io/docs/protoc-installation/) and run `protoc` with `--include_imports` and `--descriptor_set_out`. For example, to generate for moon/shot/app.proto, run ``` $protoc --proto_path=/app_path --proto_path=/lib_path \ --include_imports \ --descriptor_set_out=descriptors.pb \ moon/shot/app.proto ``` For more details, see protobuffer [self description](https://developers.google.com/protocol-buffers/docs/techniques#self-description).
  - `name` string — Identifier. The unique name identifying this schema bundle. Values are of the form `projects/{project}/instances/{instance}/tables/{table}/schemaBundles/{schema_bundle}`
  - `etag` string — Optional. The etag for this schema bundle. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. The server returns an ABORTED error on a mismatched etag.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/bigtableadmin.md) · [All operations](https://skmtc.net/google/apis/bigtableadmin/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/bigtableadmin/versions/d59c83bbbf1e/schema)
