#Schema Builder
Define the structure of your content API using our low-code schema builder with a variety of field options like text, assets, numbers, maps, and even connect content models to share information and scale faster.
Enjoy the flexibility of establishing content models, reusable components, and references through the UI or programmatically with the SDK.
Define the structure of your content API using our low-code schema builder with a variety of field options like text, assets, numbers, maps, and even connect content models to share information and scale faster.
Link different content models together and define the relationship as either a one-way or two-way, a one-to-many or many-to-one reference. You can predefine the model to reference or create unions such that content editors can choose from a list of predefined models (for e.g., choosing which type of block to display on a page).
Ensure data is entered correctly by defining validations per field with a predefined set of methods or fully customized ones using regular expressions. You can add custom error messages to guide editors, and require editors to match a specific input or restrict certain inputs. Validations apply to both the UI and mutations API.
Make content creation significantly faster and flexible by using components, a predefined set of fields to be used across multiple models. You define the fields that will be used inside a component once, and then content teams can fill them with different content every time it's used in a content entry.
You can choose to add basic components (allowing one component per field) or modular components (allowing multiple components per field) in a model.
Use our typed SDK to execute operations without using the UI, allowing for multiple schema-related actions to be executed in order and in a single transaction. Manage schema changes in code and under version control.
It allows accepting a set of changes which are applied on an “all or none” basis. So if anything fails in one of the events along the process, everything is rolled back automatically.
import { Client } from '@hygraph/management-sdk';const client = new Client({authToken: '...',endpoint: '...',});const run = async () => {client.createModel({apiId: 'Post',apiIdPlural: 'Posts',displayName: 'Post',});const result = await client.run(true);if (result.errors) {throw new Error(result.errors);}return result;};run().then((result) => console.log(`Finished migration at: ${result.finishedAt}`)).catch((err) => console.error('Error: ', err));