# Brand Management API Use the Brand Management REST API to create a [brand kit](https://doc.sitecore.com/stream/en/users/sitecore-stream/brand-kits.html), retrieve all brand kits or a specific one including sections and subsections, and create or update the content of individual subsections. This REST API lets you interect with: - The brand kit object. A [brand kit](https://doc.sitecore.com/stream/en/users/sitecore-stream/brand-kits.html) is a structured resource that enables organizations to manage their brand across various channels, teams, and content types. It defines the brand's identity through guidelines, tone, messaging rules, and other defining traits. After creating a brand kit using the Brand Management REST API, you can use the [Documents REST API](https://api-docs.sitecore.com/ai-capabilities/ai-document-management-rest-api) to upload brand documents and the [Pipeline REST API](https://api-docs.sitecore.com/ai-capabilities/ai-pipeline-rest-api) to initiate the brand ingestion process. Note the following: - To use this REST API, you must authenticate your API requests. - All API requests are made in your production environment. For more information, see the [official Sitecore Stream documentation](https://doc.sitecore.com/stream/en/users/sitecore-stream/sitecore-stream.html). # Authorization The Brand Management REST API uses the OAuth 2.0 standard with [JSON web tokens](https://doc.sitecore.com/stream/en/users/sitecore-stream/generate-a-json-web-token--jwt-.html) to authorize REST API requests. ### Create Client ID and Client Secret 1. In the Sitecore Cloud Portal, open Stream. 2. Click **Admin** > **Brand Kit keys** > **Create credential**. 3. In the **​Create New Client​​** dialog, enter a name and description for the client. Then click **Create**. The ​Client ID and Client Secret​​ display. 4. Copy the Client ID and Client Secret because you won't be able to view them again in Stream. You'll use them to request an access token. ### Request an access token Run the following cURL command to request an access token. Replace the placeholder values with your Client ID and Client Secret. ```curl curl -X POST 'https://auth.sitecorecloud.io/oauth/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'client_id={YOUR_API_KEY}' \ --data-urlencode 'client_secret={YOUR_API_SECRET}' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'audience=https://api.sitecorecloud.io' ``` In the response, the `access_token` key contains the access token: ```json { "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" } ``` Access tokens expire in 24 hours. If your requests unexpectedly return a response with status `401 Unauthorized`, request a new access token by repeating this `POST` request. We recommend that you cache the access token for 24 hours to avoid repeating this `POST` request while the access token is still valid. ### Include the access token in the request header You can now start making REST API requests. You must include the access token in the request header of every request. For example: ```curl curl -X GET '{YOUR_BASE_URL}/v2/...' \ -H 'Authorization: Bearer {YOUR_ACCESS_TOKEN}' \ -H 'Accept: application/json' ``` Version: 0.1.0 License: Apache 2.0 Metadata: - product: AI capabilities ## Servers Production server West Europe ``` https://ai-brands-api-euw.sitecorecloud.io ``` Production server East US ``` https://ai-brands-api-use.sitecorecloud.io ``` Production server East Australia ``` https://ai-brands-api-aue.sitecorecloud.io ``` Production server East Japan ``` https://ai-brands-api-jpe.sitecorecloud.io ``` ## Security ### HTTPBearer Type: http Scheme: bearer Bearer Format: JWT ## Download OpenAPI description [Brand Management API](https://api-docs.sitecore.com/_spec/ai-capabilities/ai-brand-management-rest-api/index.yaml) ## Brand kit The Brand kit API lets you create and retrieve brand kits within your organization. You can also retrieve or update sections—such as *Brand Context*, *Global Goals*, and *Tone of Voice*—and retrieve or create subsections within those sections. ### Create a brand kit - [POST /api/brands/v1/organizations/{organizationId}/brandkits](https://api-docs.sitecore.com/ai-capabilities/ai-brand-management-rest-api/brand-kit/create_brand_kit_api_brands_v1_organizations__organizationid__brandkits_post.md): Creates a new brand kit for an organization. The created brand kit includes predefined sections like , , , and more, which are empty by default. In the response, the key contains the created brand kit's unique identifier. ### List brand kits - [GET /api/brands/v1/organizations/{organizationId}/brandkits](https://api-docs.sitecore.com/ai-capabilities/ai-brand-management-rest-api/brand-kit/list_brand_kits_api_brands_v1_organizations__organizationid__brandkits_get.md): Retrieves a list of brand kits in an organization. The response includes basic information about each brand kit, such as its name, description, industry, and status. The response does not include the actual content of the brand kit sections or subsections. ### Retrieve a brand kit - [GET /api/brands/v1/organizations/{organizationId}/brandkits/{brandkitId}](https://api-docs.sitecore.com/ai-capabilities/ai-brand-management-rest-api/brand-kit/get_brand_kit_api_brands_v1_organizations__organizationid__brandkits__brandkitid__get.md): Retrieves a specific brand kit by its ID. The response includes basic information about the brand kit, such as its name, description, industry, and status. The response does not include the actual content of the brand kit sections or subsections. If you don't know the brand kit ID, you can use the List brand kits endpoint to retrieve the list of brand kits in your organization. ### List brand kit sections - [GET /api/brands/v1/organizations/{organizationId}/brandkits/{brandkitId}/sections](https://api-docs.sitecore.com/ai-capabilities/ai-brand-management-rest-api/brand-kit/list_brand_kit_sections_api_brands_v1_organizations__organizationid__brandkits__brandkitid__sections_get.md): Retrieves a list of sections in a brand kit. Each section contains information that define the brand's identity and guidelines, such as , , and . To return actual content in the sections, the Documents REST API and Pipeline REST API must have already been used to upload and process brand documents for the brand kit. ### Create a brand kit subsection - [POST /api/brands/v2/organizations/{organizationId}/brandkits/{brandkitId}/sections/{sectionId}/fields](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.md): Creates a custom brand kit subsection. Each brand kit section contains predefined subsections. If a relevant guideline isn’t included by default, you can create a custom subsection to define it. For example, the section has default subsections has subsections to define the brand's purpose, history, and more. To add a new subsection for , you can use this endpoint to create it. ### List brand kit subsections - [GET /api/brands/v2/organizations/{organizationId}/brandkits/{brandkitId}/sections/{sectionId}/fields](https://api-docs.sitecore.com/ai-capabilities/ai-brand-management-rest-api/brand-kit/list_brand_kit_section_fields_api_brands_v2_organizations__organizationid__brandkits__brandkitid__sections__sectionid__fields_get.md): Retrieves a list of subsections in a specific brand kit section. Each subsection contains guidelines that define that section's content. For example, the section has subsections to define the brand's purpose, history, and more. To return actual content in the subsections, the Documents REST API and Pipeline REST API must have already been used to upload and process brand documents for the brand kit. ### Partially update a brand kit subsection - [PATCH /api/brands/v2/organizations/{organizationId}/brandkits/{brandkitId}/sections/{sectionId}/fields/{fieldId}](https://api-docs.sitecore.com/ai-capabilities/ai-brand-management-rest-api/brand-kit/update_brand_kit_section_field_api_brands_v2_organizations__organizationid__brandkits__brandkitid__sections__sectionid__fields__fieldid__patch.md): Partially updates a specific subsection in a brand kit. A brand kit includes default sections such as , , and . Each section contains predefined subsections that reflect your brand guidelines. Use this endpoint to update a subsection’s properties, such as intent, content, and AI editability.