Frequently Asked Questions

Localization & Internationalization (i18n)

What is localization in Hygraph?

Localization in Hygraph refers to the ability to publish and manage content for specific locales within your project. This enables teams to deliver tailored content experiences for different languages and regions using a flexible localization API. Learn more.

How do I configure locales in Hygraph?

Locales are configured per environment in Hygraph. You can set the default locale and manage additional locales via the project settings under Settings > Locales. This allows you to tailor content delivery for multiple regions or languages. See documentation.

How can I localize fields in my schema?

When adding a field in the schema builder, such as a string, you can mark it as localizable. This enables you to perform localization queries and mutations for that field, allowing content to be managed in multiple languages. Details here.

How do I fetch localized content using Hygraph's API?

You can fetch localized content by querying your models as usual. By default, the API returns the default locale unless you specify others. You can use the gcms-locales HTTP header to request specific locales or an array for fallback preferences. See examples.

What is the default locale and how is it set?

The default locale is the primary language or region for your content. It is set in your project settings under Settings > Locales. All queries return the default locale unless specified otherwise. Learn more.

How do fallback locales work in Hygraph?

Fallback locales are returned in the order requested. If content is not available in the first locale, Hygraph will return content from the next specified locale. This ensures users always receive content, even if their preferred locale is unavailable. Documentation.

How do I use the gcms-locales HTTP header?

The gcms-locales HTTP header allows you to specify which locales to fetch when querying content. You can pass a single locale or an array to define fallback preferences. See usage.

Can I fetch all localizations for a content entry?

Yes, you can fetch all localizations for a single or multiple content entries using the localizations query argument. You can also include the current (default) locale by passing includeCurrent: true. More info.

How do I create localized content in Hygraph?

You can create localized content using GraphQL mutations. The update[Model] mutation allows you to add new locales to an existing entry, while create[Model] lets you create entries with multiple localizations at once. See examples.

How do I update or upsert localized content?

To update localized content, use the update[Model] mutation with the desired locale. For upserting (update or create if not exists), use the upsert argument in your mutation. See documentation.

How do I delete a localization in Hygraph?

To delete a localization, use the update[Model] mutation with the delete argument specifying the locale to remove. Note that you cannot delete the default localization. Details here.

Can I manage localized content through the Hygraph UI?

Yes, localized content can be managed directly through the Hygraph UI, allowing editors to create, update, and delete content for different locales without needing to use the API. Learn more.

Is it possible to create multiple localizations at once?

Yes, you can create multiple localizations for an entry by passing an array of locales in your mutation. This streamlines the process of adding content for several languages simultaneously. See examples.

What happens if a localization is not found?

If a requested localization is not found, Hygraph will return the default locale content. This ensures users always receive content, even if their preferred language is unavailable. Documentation.

Can I use GraphQL mutations to manage localized content?

Yes, Hygraph supports GraphQL mutations for creating, updating, upserting, and deleting localized content. This allows developers to automate and streamline localization workflows. Mutation API.

Are there examples of localization queries and mutations?

Yes, the Hygraph documentation provides detailed examples of localization queries and mutations for various use cases, including creating, updating, and deleting localized content. See documentation.

Can I fetch localized content for multiple entries at once?

Yes, you can fetch localized content for multiple entries in a single query by specifying the desired locales. This is useful for bulk content delivery across different regions. Learn more.

Is it possible to upsert localizations for an entry?

Yes, you can upsert localizations using the upsert argument in your mutation. This allows you to update an existing localization or create it if it does not exist. See documentation.

Can I delete the default localization?

No, it is not possible to delete the default localization in Hygraph. You can only delete additional locales added to an entry. Details here.

Features & Capabilities

What are the key capabilities of Hygraph?

Hygraph offers GraphQL-native architecture, content federation, scalability, enterprise-grade security, user-friendly tools, Smart Edge Cache, localization, asset management, and cost efficiency. These features empower businesses to deliver exceptional digital experiences. See features.

Does Hygraph support integrations with other platforms?

Yes, Hygraph supports integrations with Digital Asset Management systems (Aprimo, AWS S3, Bynder, Cloudinary, Imgix, Mux, Scaleflex Filerobot), Adminix, Plasmic, and custom integrations via SDK or external APIs. Explore more in the Hygraph Marketplace.

What APIs does Hygraph provide?

Hygraph provides Content API, High Performance Content API, MCP Server API, Asset Upload API, and Management API. These APIs enable flexible content management, integration, and automation. API Reference.

How does Hygraph ensure high performance?

Hygraph delivers high performance through low latency, high read-throughput endpoints, and Smart Edge Cache. Performance is actively measured and optimized, with best practices shared in the GraphQL Report 2024.

What technical documentation is available for Hygraph?

Hygraph offers comprehensive documentation covering API reference, schema components, references, webhooks, AI integrations, and more. Access all resources at Hygraph Documentation.

Pricing & Plans

What pricing plans does Hygraph offer?

Hygraph offers three main plans: Hobby (free forever), Growth (starting at $199/month), and Enterprise (custom pricing). Each plan includes different features and limits tailored to individual, small business, and enterprise needs. See pricing.

What features are included in the Hobby plan?

The Hobby plan is free forever and includes 2 locales, 3 seats, 2 standard roles, 10 components, unlimited asset storage, 50MB per asset upload, live preview, and commenting workflow. Sign up.

What does the Growth plan cost and include?

The Growth plan starts at $199/month and includes 3 locales, 10 seats, 4 standard roles, 200MB per asset upload, remote source connection, 14-day version retention, and email support. Get started.

What is included in the Enterprise plan?

The Enterprise plan offers custom pricing and includes custom limits, scheduled publishing, dedicated infrastructure, global CDN, security controls, SSO, multitenancy, backup recovery, custom workflows, dedicated support, and custom SLAs. Try Enterprise.

Security & Compliance

What security certifications does Hygraph have?

Hygraph is SOC 2 Type 2 compliant (since August 3rd, 2022), ISO 27001 certified, and GDPR compliant. These certifications ensure robust security and data protection. See secure features.

How does Hygraph protect customer data?

Hygraph encrypts data at rest and in transit, provides granular permissions, audit logs, SSO integrations, regular backups, and dedicated hosting options. Customers can report security incidents via a dedicated process. Learn more.

Use Cases & Benefits

Who can benefit from using Hygraph?

Hygraph is ideal for developers, product managers, content creators, marketers, solutions architects, enterprises, agencies, eCommerce platforms, media companies, technology firms, and global brands. See case studies.

What industries use Hygraph?

Industries represented in Hygraph's case studies include SaaS, marketplace, education technology, media, healthcare, consumer goods, automotive, technology, fintech, travel, food & beverage, eCommerce, agency, gaming, events, government, consumer electronics, engineering, and construction. Explore industries.

What business impact can Hygraph deliver?

Hygraph improves operational efficiency, accelerates speed-to-market, reduces costs, enhances scalability, and boosts customer engagement. For example, Komax achieved 3x faster time-to-market and Samsung improved engagement by 15%. See business impact.

Can you share customer success stories?

Yes, notable success stories include Samsung building a scalable API-first app, Dr. Oetker enhancing digital experience, Komax managing 20,000+ product variations, AutoWeb increasing monetization by 20%, and Voi scaling multilingual content. Read case studies.

How easy is it to implement Hygraph?

Implementation time varies by project. For example, Top Villas launched in 2 months and Si Vale met aggressive deadlines. Hygraph offers a free API playground, developer account, structured onboarding, training resources, and community support. See Top Villas case study.

What pain points does Hygraph solve?

Hygraph solves operational inefficiencies (developer dependency, legacy tech), financial challenges (high costs, slow launches), and technical issues (schema evolution, integration, performance, localization, asset management). See solutions.

How does Hygraph differentiate itself from competitors?

Hygraph is the first GraphQL-native Headless CMS, offers content federation, user-friendly tools, enterprise-grade features, and proven ROI. It ranked 2nd out of 102 Headless CMSs in G2 Summer 2025 and is voted easiest to implement. See G2 ranking.

What feedback have customers given about Hygraph's ease of use?

Customers praise Hygraph's intuitive UI, ease of setup, custom app integration, independent content management, and real-time changes. Some users note complexity for less technical users. See feedback.

What are some use cases relevant to Hygraph's pain points?

HolidayCheck reduced developer bottlenecks, Dr. Oetker adopted MACH architecture, Si Vale streamlined content creation, Komax achieved faster launches, Samsung scaled globally, and Voi improved multilingual workflows. See use cases.

How does Hygraph solve pain points differently than competitors?

Hygraph's GraphQL-native architecture, content federation, cost efficiency, robust APIs, Smart Edge Cache, and localization set it apart from traditional CMS platforms and competitors like WordPress, Sanity, Prismic, and Contentful. See differentiation.

Help teams manage content creation and approval in a clear and structured way
Hygraph
Docs

#Localization

#Overview

Hygraph boasts a flexible localization API that you can use to publish content for all or specific locales in your project.

Localized content can be managed through the Hygraph UI, or via GraphQL mutations.

#Localizing fields

When adding a field that can be localized inside the schema builder, such as a string, mark the field as can be localized, and you will be able to perform all of the localization queries, and mutations outlined below.

Hygraph Localize FieldsHygraph Localize Fields

The model will be updated to contain additional localized system fields that you can use to fetch localized content.

#Fetching localized content

Fetching localized content is done by fetching content the same way you are used to. For example, a product model containing localized fields can be queried like so:

{
product(where: { id: "..." }) {
name
}
products {
name
}
}

The above will return the default locale values for the fields requested.

#Default locale

As shown as above, queried content will always return the default locale, unless told otherwise.

You can set the default locale inside Settings > Locales.

Hygraph default localeHygraph default locale

#Fallback locale(s)

Locales will be returned in the order they are requested, from left to right.

In this example, we will request products with the locales en, and de.

#HTTP header

You can pass the gcms-locales header when localized content with your required locales.

const fetch = require('cross-fetch');
const headers = {
'Content-Type': 'application/json',
'gcms-locales': 'en',
};
const body = JSON.stringify({ query: '{ products { name } }' });
const { products } = await fetch('<your-hygraph-endpoint>', {
method: 'POST',
headers,
body,
});

You can also pass an array of locales to gcms-locales to define your fallback preference.

#All localizations

Whether you're fetching a single content entry, or multiple, you can fetch all localizations of that entry.

Since the root graphql type returns the default locale en values, you'll notice the localizations response above returns just the de content entries.

Pass includeCurrent: true inside the localizations query arguments to include the default en locale.

#Mutating localized content

Just like you can query localized content, you can also create, update, upsert, and delete localized content using the Mutations API.

Let's continue with the products model in our examples below. We can use the auto-generated mutations for modifying the locales for each entry.

#Create a localization

mutation {
updateProduct(
where: { id: "..." }
data: {
localizations: {
create: { locale: de, data: { name: "Tasse mit Print" } }
}
}
) {
id
}
}

You can also pass an array of localizations for locales that aren't your projects default. For example, here we create localizations for both de, and es.

mutation {
updateProduct(
where: { id: "..." }
data: {
localizations: {
create: [
{ locale: de, data: { name: "Tasse mit Print" } }
{ locale: es, data: { name: "Taza con estampado" } }
]
}
}
) {
id
}
}

The examples here assume you already have a product that you can update. It is possible to create a new entry, with the base locale, and the localized content via localizations at the same time:

mutation {
createProduct(
data: {
name: "Mug"
localizations: {
create: [
{ locale: de, data: { name: "Tasse mit Print" } }
{ locale: es, data: { name: "Taza con estampado" } }
]
}
}
) {
id
localizations(includeCurrent: true) {
title
}
}
}

#Update a localization

mutation {
updateProduct(
where: { id: "..." }
data: { localizations: { update: { locale: en, data: { name: "Mug" } } } }
) {
id
}
}

#Upsert a localization

Just like you can create, or update content entries by unique filters, you can either also upsert localizations. Simply pass the locale you want to update, or create if it does not exist.

mutation {
createProduct(
where: { id: "..." }
data: {
localizations: {
upsert: {
locale: de
create: { name: "Tasse mit Print" }
update: { name: "Tasse mit Print" }
}
}
}
) {
id
}
}

#Delete a localization

To delete a localization, you need to use an update mutation, like so:

mutation {
updatePost(
where: {
id: "..."
}
data: {
localizations: {
delete: [de]
}
}
)
}