Brand-aware completions
A company profile is built in the console: voice, tone, audience and banned words. When its id is added to a chat completion, the model answers in that voice without extra prompt engineering.
Find the brand id
Brands and their ids are listed on the Developer page in the console, and are also available programmatically:
curl https://console.aimodelhub.ai/v1/brands \
-H "Authorization: Bearer $AIHUB_API_KEY"Pass it on a completion
Add the optional top-level brand field. It works on streamed and non-streamed calls; omit it and the request behaves exactly as before.
curl https://console.aimodelhub.ai/v1/chat/completions \
-H "Authorization: Bearer $AIHUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic-claude-sonnet-4-6",
"brand": "0197c2a1-4e5f-7000-8000-1a2b3c4d5e6f",
"messages": [{ "role": "user", "content": "Write a launch announcement" }]
}'Official SDKs type-check request fields, so the brand must be passed as an extra body field:
resp = client.chat.completions.create(
model="anthropic-claude-sonnet-4-6",
messages=[{"role": "user", "content": "Write a launch announcement"}],
extra_body={"brand": "0197c2a1-4e5f-7000-8000-1a2b3c4d5e6f"},
)const resp = await client.chat.completions.create({
model: "anthropic-claude-sonnet-4-6",
messages: [{ role: "user", content: "Write a launch announcement" }],
// @ts-expect-error — AI HUB extension field
brand: "0197c2a1-4e5f-7000-8000-1a2b3c4d5e6f",
});Example response
The response is the standard OpenAI chat-completion shape. The brand only changes the content, not the envelope. The reply below came back from a brand with a confident, plain-spoken voice:
{
"id": "c6d277078ea94782b82fe39865417c02",
"object": "chat.completion",
"created": 1784288435,
"model": "deepseek-v4-flash",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Alchemist Marketing just launched Creator Connect, a system that embeds your brand directly into creator storylines so your message lands without interrupting."
},
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 520, "completion_tokens": 529, "total_tokens": 1049 }
}The prompt_tokens count includes the injected brand voice, so it is higher than the same call without a brand. Those tokens are billed at the model's normal list rate, and there is no separate brand fee.
On reasoning-capable models, completion_tokens also includes a hidden "thinking" pass that the model runs before writing the visible reply. In the capture above, 500 of the 529 completion tokens were reasoning, not the final sentence. Set max_tokens accordingly on those models.
How it applies
The brand's voice is injected as a leading system message, before any system message in the request, so the request's own instructions always win on conflict. If the brand's "Humanize AI output" toggle is on, human-writing rules are added too. The injected text is billed as normal prompt tokens, with no extra fee.
Errors
An id that does not exist on the account returns 404 with error.type = "brand_not_found" and error.param = "brand". The call is not forwarded and nothing is billed.