
Today, I am going to provide a thorough and step-by-step explanation on how to programmatically create and manage custom subsections for brand kits within the Sitecore Stream.
To begin, let us firstly understand what Sitecore Stream is. Sitecore Stream is an AI platform which brings AI capabilities to Sitecore products, fundamentally changing the way how marketers create and manage their content. Sitecore Stream is built on the Microsoft Azure OpenAI Service and uses advanced large language models (LLMs) to help teams ideate, create and refine on-brand content quickly and securely. Sitecore Stream simplifies everyday marketing tasks, such as content creation, developing campaigns and personalizing messages. Sitecore Stream supports work to happen across multiple brands and complex campaigns while creating organization organized and maintaining pace. Sitecore Stream is AI-first in its approach, effectively capturing your brands voice, while also automating daily workflows for your team by enabling them to do more in a shorter timeframe. Because Sitecore Stream is AI-enabled it helps marketing teams to increase levels of efficiency, strengthen team collaboration, and delivers high-quality end-user experiences throughout all stages of the engagement lifecycle with your brand.
Custom Subsections Within Brand Kits
In July 2025, Sitecore Stream introduced a powerful enhancement to its Stream platform in the form of a REST API endpoint that allows developers to programmatically create custom subsections in brand kits. This newly released feature finally resolves a longstanding limitation in the system that is the inability to define, structure, and extend brand guidelines beyond the constraints of the default templates provided by the Sitecore Stream. With this improvement, development teams can now dynamically customize brand kits to fit the individual needs of brands, providing more flexibility, consistency, and control over how the brand assets and guidelines are organized and presented.

Create Custom Subsections within Existing Brand Kits
This technical guide will provide a comprehensive walkthrough for implementing the subsection creation endpoint, including authentication, request and response handling, and a production-ready code example in C#.
Base API Endpoint:
POST /api/brands/v2/organizations/{organizationId}/brandkits/{brandkitId}/sections/{sectionId}/fields
The primary purpose of this functionality is to enable the creation of custom subsections within the existing sections of brand kits where the default options are unable to align with specific organization's needs. This functionality provides powerful customization capabilities allowing you to define brand guidelines that are uniquely tailored to your organization, with fine-grained control over both the structure and the content of each subsection. Developers can configure various properties of each subsection, such as providing options for enabling or disabling AI-based editing, and can also attach metadata to support effective categorization and filtering. Additionally, the system allows for the automatic generation of subsections based on predefined specifications, streamlining the process and ensuring consistency across brand kits.
Prerequisites
Before proceeding with the implementing of the endpoint, ensure the following:
1. Sitecore Stream Account - You must have administrative rights for the Sitecore Stream account.
2. Brand Kit Keys - You must have the Client ID and Client Secret for the brand kit you are going to work with.
3. Existing Brand Kit - The brand kit must already exist and contain at least one section.
4. Organization ID - You can retrieve it from your Stream instance.
5. Development Environment - C#
Step-by-Step Implementation Guide: Creating Custom Brand Kit Subsections
Let us now deep dive into the technical implementation of the Create Subsection endpoint.
1. Authenticate with the Sitecore Stream API
Before making any API calls it is necessary to obtain an access token using your Client ID and Client Secret.
Token Endpoint:
POST https://auth.sitecorecloud.io/oauth/token
Request Body:
{
"client_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"client_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"audience": "https://api.sitecorecloud.io",
"grant_type": "client_credentials"
}
Note: Replace client_id and client_secret with your own values. Refer to my previous blog, How to Install and Configure Sitecore Stream for Platform DXP, to learn how to obtain them.
Response:
{
"access_token": "{YOUR_ACCESS_TOKEN}",
"scope": "ai.org.brd:w ai.org.brd:r ai.org.docs:w ai.org.docs:r ai.org:admin",
"expires_in": 86400,
"token_type": "Bearer"
}
Save the access_token obtained for authorization in subsequent requests.

2. Construct the Create Subsection Request
Now we are ready to call the new endpoint to create a subsection.
Endpoint:
POST /api/brands/v2/organizations/{organizationId}/brandkits/{brandkitId}/sections/{sectionId}/fields
Note: Replace organizationId with your Sitecore Stream organization ID, brandkitId with the target brand kit’s ID and sectionId with the ID of the section in which you want to create a subsection.
Headers:
Authorization: Bearer {access_token}
Content-Type: application/json
Request Body:
{
"name": "Localization and cultural sensitivity",
"type": "text",
"order": 1,
"value": "Essential requirements for adapting digital content to diverse linguistic, cultural, and regional contexts",
"intent": "The core reason for the brand existence",
"references": [
{
"id": "2ad5c154-6404-49ed-9ffc-0603c360a5af",
"path": "/path",
"type": "documentChunk"
}
],
"deletable": true,
"verified": true,
"aiEditable": true
}
This payload creates a custom subsection titled “Localization and cultural sensitivity” with AI editing enabled and metadata to help with filtering and display logic.
Response:
Successful Response (201 Created):
{
"id": "b2f2e1a1-295d-4d40-88f2-93bf545bb879",
"name": "Localization and cultural sensitivity",
"type": "text",
"order": 1,
"value": "Essential requirements for adapting digital content to diverse linguistic, cultural, and regional contexts.",
"intent": "The core reason for the brand existence.",
"references": [
{
"id": "2ad5c154-6404-49ed-9ffc-0603c360a5af",
"path": "/path",
"type": "document"
}
],
"deletable": true,
"verified": true,
"createdOn": "2025-06-06T09:33:13.486417",
"createdBy": "mman",
"updatedOn": "2025-06-06T09:33:13.486417",
"updatedBy": "mman",
"aiEditable": true
}
The response confirms that the subsection was successfully created and provides the id that can be used for further management (e.g., updating or deleting it).
Use Cases
This API unlocks several powerful features for marketers and business users:
1. Support for Multiple Brands - Customize the organization of brand kit subsections differently for each brand.
2. Regional Customization - Add brand guidelines by region or language.
3. AI-Enhanced Content Creation - Allow marketing teams to use AI to generate content directly inside dedicated subsections.
4. Smart Organization with Metadata - Tag content with information like priority, platform, or audience to make it easier to find and manage.
C# Implementation
public async Task<string> CreateBrandKitField(string accessToken, string organizationId, string brandkitId, string sectionId)
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var payload = new
{
name = "Localization and cultural sensitivity",
type = "text",
order = 1,
value = "Essential requirements for adapting digital content to diverse linguistic, cultural, and regional contexts",
intent = "The core reason for the brand existence",
references = new[]
{
new
{
id = "2ad5c154-6404-49ed-9ffc-0603c360a5af",
path = "/path",
type = "documentChunk"
}
},
deletable = true,
verified = true,
aiEditable = true
};
var content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json");
var response = await client.PostAsync($"https://api.sitecorestream.com/api/brands/v2/organizations/{organizationId}/brandkits/{brandkitId}/sections/{sectionId}/fields", content);
response.EnsureSuccessStatusCode();
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
return result;
}
With the new API capability, Sitecore Stream empowers developers and brand managers to take full control of how their brand kits are structured. You can now move beyond rigid templates and tailor brand guidelines with the precision your organization requires.
References
Sitecore Changelog - https://developers.sitecore.com/changelog/stream/30072025/improve-your-brand-kits-with-two-new-rest-api-endpoints
Create a brand kit subsection - https://api-docs.sitecore.com/ai-capabilities/ai-brand-management-rest-api/brand-kit/create_brand_kit_section_field_api_brands_v2_organizations__organizationid__brandkits__brandkitid__sections__sectionid__fields_post
That's All for Today,
Happy Coding
Coders for Life