How it works Truth Score MCP Solution Product Blog Industry Guides Early access

Brand infrastructure
for the AI stack.

A technical walkthrough of how Brandstract ingests signals, builds structured brand runtimes, scores alignment, and delivers brand context to every AI tool in your stack.

The Brand Runtime

Schema v2.0 — a structured
brand object with provenance.

The Brand Runtime is the core output of Brandstract. It is a versioned, structured object — not a document — with every field carrying a confidence score derived from real sampled content and a source provenance reference.

The runtime is organised into five top-level sections. Fields can be individually accepted, rejected, or edited before the runtime is locked as the canonical brand source.

Five runtime sections
brand_profileCompany overview, founding context, market category, target segments
brand_signatureEssence, mission, external promise, value proposition, belief system, distinctive assets
brand_intelligenceAudience clusters, competitive positioning, cultural context
brand_executableTone matrix, creative rules, visual language, deployment contexts
governanceHard stops, soft guidelines, brand constraints, channel-level overrides
// Example field with confidence + provenance

"brand_signature": {
  "essence": "Brand context for AI-native teams",
  "promise": "Your brand, always available to every tool",
  "_provenance": {
    "source": "website_homepage",
    "samples": 12,
    "confidence": 0.91,
    "last_sampled": "2026-04-14"
  }
},
"_schema": {
  "version": "2.0.1",
  "deprecated_fields": [],
  "sunset_date": null
}
Coherence index on lock
Completeness (40%)Percentage of required fields populated
Confidence quality (40%)Weighted mean of per-field confidence scores
LLM consistency (20%)Internal consistency pass across the locked runtime
Signal ingestion

Everything a brand publishes,
turned into evidence.

Brandstract ingests brand signals from multiple source types simultaneously. All sources are attributed — every extracted field traces back to the specific content that produced it.

Website scrapingHomepage, about, product pages — extracted with SSRF protection on all outbound requests
Social channelsTikTok, Instagram, X — captions, post copy, and profile context sampled and source-attributed
Document uploadPDF, PPTX, DOCX, TXT — up to 10 MB; chunked extraction with no truncation
Rate limits5 ingestion requests per 60 seconds per account

All ingestion results are stored with source metadata. When a brand field is extracted, the runtime records which source produced it, how many samples were used, and when those samples were last collected.

Re-ingestion on any source updates provenance for affected fields while preserving accepted decisions made during review. Confidence scores reflect real signal volume — a field derived from two posts will score lower than one derived from forty.

Sample ingestion event
signal_source: instagram_captions
samples_collected: 20
fields_updated: tone_matrix, audience_clusters
confidence_delta: +0.06
timestamp: 2026-04-18T09:14:22Z
REST API · v2.0.1

Schema-versioned brand endpoints
with per-field provenance.

Every API response includes a _schema block (version, deprecated fields, sunset date) and a _provenance block per data section. Downstream systems can rely on schema versioning for safe upgrades.

Schema versioning policy
Patch (2.0.x)New optional fields — backwards compatible, no migration required
Minor (2.x.0)New sections — additive, existing consumers unaffected
Major (x.0.0)Breaking changes — 6-month deprecation window with sunset date in response
Rate limits & access
External API60 requests per 60 seconds per API key
Ingestion5 requests per 60 seconds
Creative & prompt5 requests per 60 seconds
Sandbox keysbst_sandbox_* — test any endpoint without an account
Key endpoints
GET /brand/signatureFull brand signature with provenance and confidence scores
GET /brand/executableCreative rules, tone matrix, visual brief — ready for AI consumption
GET /brandsList all brand runtimes for the authenticated account
POST /brands/:id/truth-score/runTrigger a Brand Truth Score run against live external signals
GET /brands/:id/truth-scoreLatest truth score result, gap report, and dimension breakdown
POST /api/v1/webhooksRegister a webhook subscription for runtime or truth score events
SDKs
# pip install brandstract from brandstract import Brandstract client = Brandstract(api_key="bst_sandbox_...") sig = client.brand.signature() # sig.essence, sig.promise, sig._provenance
// npm install @brandstract/sdk import { Brandstract } from '@brandstract/sdk'; const client = new Brandstract({ apiKey: 'bst_sandbox_...' }); const sig = await client.brand.signature();
Model Context Protocol

Brand context as a structured
resource for any AI agent.

The Brandstract MCP server exposes your locked brand runtime as structured resources over Server-Sent Events. AI agents, coding assistants, and creative tools connect once — every downstream call inherits the current locked brand context automatically.

Endpointhttps://app.brandstract.ai/mcp
TransportServer-Sent Events (SSE)
AuthAPI key via Authorization: Bearer header
Compatible withAI assistants, IDEs, direct SSE consumers
Exposed resources
brand_signature Essence, mission, promise, value proposition, distinctive assets
brand_executable Creative rules, tone matrix, visual language, deployment contexts — structured for AI constraint injection
visual_brief Compiled brief optimised for image and video generation models
brand_ideas Latest locked creative ideas for the active brand runtime

When the brand team updates and re-locks the runtime, all downstream MCP consumers receive the updated context on their next request. No manual propagation, no stale system prompts.

Brand Truth Score

Five-dimension alignment scoring
against real external signals.

The Brand Truth Score evaluates how well your published signals match your locked brand identity. It fetches live content from your configured channels, evaluates each piece against structured rubrics, and aggregates across five weighted dimensions.

Every score is derived from real content — no synthetic values or assumptions. A minimum of three dimensions must return evaluable signals for a run to produce a valid result.

Five scored dimensions
Tone & Voice
30%
0.30
Value Proposition Clarity
20%
0.20
Audience Targeting Accuracy
20%
0.20
Distinctive Assets Usage
15%
0.15
Voice Consistency
15%
0.15
Grade scale
A
≥ 0.85
B
≥ 0.70
C
≥ 0.50
D
< 0.50
Gap report structure

Each run produces a structured gap report alongside the score:

Severityhigh / medium / low — determines remediation priority
Field pathSpecific dimension and runtime field that produced the gap
Stated vs observedWhat the locked runtime claims; what was found in sampled content
Example textVerbatim excerpt from the sampled signal
RecommendationSpecific, actionable remediation suggestion

Drift is tracked across runs. The trend (improving / degrading / stable) is available alongside each score result and exposed via the truth score history endpoint.

Webhooks

Event-driven brand context
with HMAC-signed delivery.

Register webhook endpoints to receive signed notifications when key events occur in the Brandstract platform. Every delivery is signed with HMAC-SHA256 so receiving systems can verify authenticity before processing.

Signing
HeaderX-Brandstract-Signature: sha256=<hmac>
AlgorithmHMAC-SHA256 using your subscription secret
PayloadJSON — event type, timestamp, runtime ID, and event-specific data
Retry policy
Attempt 1immediate
Attempt 210 s
Attempt 360 s
Attempt 45 min

Subscriptions auto-deactivate after 4 consecutive failures. All delivery attempts — including status codes and response bodies — are stored and retrievable.

Events
runtime.locked
A brand runtime has been locked as canonical. Coherence index and locked timestamp included.
runtime.updated
A field decision (accept/reject/edit) has been applied to a runtime in review.
truth_score.completed
A Brand Truth Score run has completed. Alignment index, grade, and gap report summary included.
truth_score.failed
A truth score run failed — insufficient signal data or signal fetch error. Error detail included.
Sub-brand branching

One parent runtime.
Multiple brand voices.

Locked runtimes can be branched into sub-brands — each with its own tone-of-voice, visual rules, and audience targeting — while preserving full lineage back to the parent. Sub-brands inherit any field not explicitly overridden.

A field-level diff is computed across the five runtime sections, classifying each field as overridden, inherited, or new. This makes the relationship between parent and sub-brand explicit and auditable.

Branch endpointPOST /runtime/:id/branch
List sub-brandsGET /runtime/:id/sub-brands
LineageGET /runtime/:id/lineage — parent ID, parent brand name, is_sub_brand flag
Parent diffGET /runtime/:id/parent-diff — overridden / inherited / new per section
Override scopeAny field in any of the five runtime sections can be overridden independently
Further reading
AI Brand Strategy
How brand strategy becomes executable for AI systems.
Brand Drift
Why brand consistency degrades without a structured data layer.
Brand Systems vs Guidelines
The infrastructure distinction that determines brand consistency at scale.
Machine-Readable Brand
What expressing brand as structured data actually means in practice.

Ready to build on it?

Sandbox keys are available immediately — test every endpoint without an account.

Get early access