{
"message": "Payment required. Either authenticate with a Brandfetch API key (Authorization: Bearer <key>) or pay for this request with x402: sign the payment described in the PAYMENT-REQUIRED header and retry with a PAYMENT-SIGNATURE header.",
"documentation": "https://docs.brandfetch.com/agents/pay-per-request",
"pricing": {
"route": "GET /v2/brands/*",
"price": "$0.10"
},
"resource": "https://api.brandfetch.io/v2/brands/nike.com",
"standingAccess": "For many requests, POST /v2/agents/access (paid the same way) provisions an API key preloaded with prepaid credits."
}
{
"message": "<Not Found> or <Invalid Domain Name>"
}
{
"message": "We couldn't read this domain (the site appears to block automated requests)."
}
{
"message": "API key quota exceeded"
}
{
"message": "The brand context for this domain is still being generated. Retry in 30 seconds."
}
Brand Context API
Get a structured, narrative-rich brand context for a domain — including identity, positioning, products and services, voice, visual style, and competitors. Authenticate with an API key sent as Authorization: Bearer <key>, or pay for the single request with x402 or MPP: https://docs.brandfetch.com/agents/pay-per-request.
{
"message": "Payment required. Either authenticate with a Brandfetch API key (Authorization: Bearer <key>) or pay for this request with x402: sign the payment described in the PAYMENT-REQUIRED header and retry with a PAYMENT-SIGNATURE header.",
"documentation": "https://docs.brandfetch.com/agents/pay-per-request",
"pricing": {
"route": "GET /v2/brands/*",
"price": "$0.10"
},
"resource": "https://api.brandfetch.io/v2/brands/nike.com",
"standingAccess": "For many requests, POST /v2/agents/access (paid the same way) provisions an API key preloaded with prepaid credits."
}
{
"message": "<Not Found> or <Invalid Domain Name>"
}
{
"message": "We couldn't read this domain (the site appears to block automated requests)."
}
{
"message": "API key quota exceeded"
}
{
"message": "The brand context for this domain is still being generated. Retry in 30 seconds."
}
Domain name (brandfetch.com), a website URL on the domain (https://www.brandfetch.com/developers/pricing), or an email address on the domain (john@example.brandfetch.com). The API resolves a website URL or an email address to its registrable domain before the lookup. It does not store the URL or the address. Your request logs show only the domain. A URL whose host is not a domain name returns 400. A malformed address also returns 400. The API does not bill these requests.
When true, return a brand context only if one is already cached, responding instantly without crawling the domain. If no cached context exists, the API responds with 204 No Content instead of resolving the domain live (which can take several seconds). Useful for latency-sensitive use cases. Any value other than true (including omitting the parameter) keeps the default behaviour of resolving the domain live on a cache miss. Defaults to false.
Response
Successful request. The response format is determined by the Accept header: application/json returns a structured JSON object, while text/markdown returns the brand context as Markdown. A request paid with MPP whose response was lost can be retried with the same credential for two minutes: it is served from the payment already taken and not charged again.
Full brand context returned by the Brand Context API. Note: unlike other endpoints in this API which use camelCase, the Brand Context endpoint intentionally returns field names in snake_case (e.g., canonical_name, resolved_at, value_proposition, target_audience, products_and_services) to align with conventions commonly used by LLM tooling that consumes this data.
The brand's competitors. null for a context generated before competitors were added to the Brand Context API; such contexts are regenerated over time.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Brandfetch","colors":{"primary":"#0084FF","light":"#FFFFFF","dark":"#0084FF"},"logo":{"light":"https://mintcdn.com/brandfetch-d7fb5329/-v6e41qD3Fxu16r-/logo/light.svg?fit=max\u0026auto=format\u0026n=-v6e41qD3Fxu16r-\u0026q=85\u0026s=4f8ea49e20e0d743c9a7754b14f01924","dark":"https://mintcdn.com/brandfetch-d7fb5329/-v6e41qD3Fxu16r-/logo/dark.svg?fit=max\u0026auto=format\u0026n=-v6e41qD3Fxu16r-\u0026q=85\u0026s=a447e4997a5b774c621a6b318290592f"},"favicon":"https://mintcdn.com/brandfetch-d7fb5329/XKUNPCS3k4Mv8APc/favicon.svg?fit=max\u0026auto=format\u0026n=XKUNPCS3k4Mv8APc\u0026q=85\u0026s=265eef38a8f076aea2e159f8e89605f9","api":{"openapi":"openapi.json"},"appearance":{"default":"dark"},"background":{"color":{"light":"#FAFAFA","dark":"#08090A"}},"navbar":{"links":[{"href":"https://brandfetch.com/developers/pricing","label":"Pricing"},{"href":"https://brandfetch.com/developers/contact/sales","label":"Contact sales"}],"primary":{"type":"button","label":"Dashboard","href":"https://developers.brandfetch.com"}},"footer":{"socials":{"x":"https://x.com/brandfetch","linkedin":"https://linkedin.com/company/brandfetch","instagram":"https://instagram.com/brandfetch"}},"seo":{"metatags":{"og:image":"https://developers.brandfetch.com/og_docs.webp"},"indexing":"navigable"},"fonts":{"heading":{"family":"Poppins"},"body":{"family":"Inter"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"gtm":{"tagId":"GTM-MMMXMV7"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"brandfetch-d7fb5329","hasAudioNarration":false,"actualSubdomain":"brandfetch-d7fb5329","customDomains":["docs.brandfetch.com"],"gitSource":{"type":"github","owner":"brandfetch","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aec85e68c2847cc731f9590","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Documentation","count":27},{"language":"default","tag":"API References","count":14},{"language":"default","tag":"Resources","count":13},{"language":"default","tag":"Use cases","count":10},{"language":"default","tag":"Delivery methods","count":8},{"language":"default","tag":"Brand API","count":8},{"language":"default","tag":"Products","count":7},{"language":"default","tag":"Integrations","count":6},{"language":"default","tag":"Support","count":6},{"language":"default","tag":"Comparisons","count":5}]},"assistantConfig":{"deflection":{"enabled":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"body::before{content:\"\";position:absolute;top:-192px;left:50%;z-index:-1;width:calc(100% + 128px);height:528px;background:linear-gradient(\n 92deg,\n #369eff 0%,\n #75bcff 14%,\n #9747ff 26%,\n #ef4c77 34%,\n #ff7510 48%,\n #ffda00 56%,\n #ffda00 72%,\n #76cc4b 88%,\n #375d96 96%,\n #1c4686 100%\n );filter:blur(100px);opacity:0.075;transform:translateX(-50%);pointer-events:none}.dark body::before{background:linear-gradient(\n -90deg,\n #000 -9.95%,\n #1ed2ed -1.71%,\n #92caff 16.58%,\n #503957 43.26%,\n #ed4aff 73.47%,\n #ff5836 111.54%,\n #1c4686 130.11%\n );opacity:0.25}body{overflow-x:clip}#sidebar .sticky.top-0.pointer-events-none{background:none!important;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);mask-image:linear-gradient(to bottom, #000, transparent);-webkit-mask-image:linear-gradient(to bottom, #000, transparent)}html.dark{--gray-100: 248 248 248;--gray-200: 236 236 236;--gray-300: 222 222 222;--gray-400: 184 184 184;--gray-500: 140 140 140;--gray-600: 104 104 104}.dark .nav-tabs-item:not([data-active=\"true\"]),.dark #navbar a.dark\\:text-gray-400{color:rgba(255, 255, 255, 0.72)!important}.dark .nav-tabs-item:not([data-active=\"true\"]):hover,.dark #navbar a.dark\\:text-gray-400:hover{color:#fff!important}.dark .nav-tabs-item[data-active=\"true\"]{color:#fff!important}.dark .nav-tabs-item:not([data-active=\"true\"]):hover>.absolute.bottom-0{background-color:rgba(255, 255, 255, 0.45)!important}.card{background-color:#f7f7f8!important}.dark .card{background-color:#1a1a1a60!important}.prompt{background-color:#f4f4f5!important;border-color:#e4e4e7!important}.dark .prompt{background-color:#1d1e20!important;border-color:rgba(255, 255, 255, 0.08)!important}@media (min-width: 1024px){#sidebar{width:19rem;min-width:19rem}#content-side-layout{max-width:25rem}#content-side-layout>div{width:25rem}#table-of-contents-layout{max-width:20rem}#table-of-contents-layout>div{width:20rem}}"}],"page":{"pagePath":"reference/brand-context-api","slug":"/reference/brand-context-api","pageMetadata":{"title":"Brand Context API","sidebarTitle":"/v2/context/{domain}","openapi":"GET /v2/context/{domain}","description":"Get a structured, narrative-rich brand context for a domain — including identity, positioning, products and services, voice, visual style, and competitors. Authenticate with an API key sent as `Authorization: Bearer \u003ckey>`, or pay for the single request with x402 or MPP: https://docs.brandfetch.com/agents/pay-per-request.","href":"/reference/brand-context-api"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Get a structured, narrative-rich brand context for a domain — including identity, positioning, products and services, voice, visual style, and competitors. Authenticate with an API key sent as \", _jsx(_components.code, {\n children: \"Authorization: Bearer \u003ckey>\"\n }), \", or pay for the single request with x402 or MPP: \", _jsx(_components.a, {\n href: \"https://docs.brandfetch.com/agents/pay-per-request\",\n children: \"https://docs.brandfetch.com/agents/pay-per-request\"\n }), \".\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Brand Context API","sidebarTitle":"/v2/context/{domain}","openapi":"GET /v2/context/{domain}","description":"Get a structured, narrative-rich brand context for a domain — including identity, positioning, products and services, voice, visual style, and competitors. Authenticate with an API key sent as `Authorization: Bearer \u003ckey>`, or pay for the single request with x402 or MPP: https://docs.brandfetch.com/agents/pay-per-request.","href":"/reference/brand-context-api"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Get brand context by domain","description":"Get a structured, narrative-rich brand context for a domain — including identity, positioning, products and services, voice, visual style, and competitors. Authenticate with an API key sent as `Authorization: Bearer \u003ckey>`, or pay for the single request with x402 or MPP: https://docs.brandfetch.com/agents/pay-per-request.","operationId":"getBrandContext","tags":["context"],"security":["59294b36-4808-4cc8-ba0a-de649086088c","2e24e716-f918-470f-a28e-fa0ccbd60c4d","4ffbcb70-9837-4483-bcd4-1c662476068f"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.10"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"offers":[{"amount":"100000","currency":"0x20C000000000000000000000b9537d11c60E8b50","description":"Brand Context API request","intent":"charge","method":"tempo"}]},"parameters":["61df783a-fb21-49d9-b799-440984392993","80e14f5a-4921-4cd7-863a-4a6a24b68472"],"responses":{"200":"b4ddc55e-83c9-4c83-8c85-46df79e87e58","204":"8e48b759-6e56-4850-93a0-b5235e917738","400":"00542fd1-aa06-4b9b-b885-a9d5f7b41626","401":"084cfb40-6175-40f2-97ca-b3b5356cc90c","402":"7c472c79-41fe-43b2-991d-591f5dafa1a0","404":"31176113-34f9-4c5a-9fcc-07e503271dc3","422":"2c1bd1e9-fb18-4f18-becb-16e72c06fcd3","429":"955bd060-2071-44ca-b8bb-0db4dec02d8c","503":"5097c8ae-fd03-4a5e-beb2-46415bd9340d"},"method":"get","type":"path","servers":["7b0d6084-1738-4fb2-bc03-db3e71596d0a"],"path":"/v2/context/{domain}","baseUrlOptions":["https://api.brandfetch.io"],"title":"Get brand context by domain","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"61df783a-fb21-49d9-b799-440984392993":{"name":"domain","in":"path","description":"Domain name (`brandfetch.com`), a website URL on the domain (`https://www.brandfetch.com/developers/pricing`), or an email address on the domain (`john@example.brandfetch.com`). The API resolves a website URL or an email address to its registrable domain before the lookup. It does not store the URL or the address. Your request logs show only the domain. A URL whose host is not a domain name returns `400`. A malformed address also returns `400`. The API does not bill these requests.","required":true,"schema":{"type":"string","isRequired":true,"description":"Domain name (`brandfetch.com`), a website URL on the domain (`https://www.brandfetch.com/developers/pricing`), or an email address on the domain (`john@example.brandfetch.com`). The API resolves a website URL or an email address to its registrable domain before the lookup. It does not store the URL or the address. Your request logs show only the domain. A URL whose host is not a domain name returns `400`. A malformed address also returns `400`. The API does not bill these requests.","uniqueKey":"","typeLabel":"string"},"examples":{"domain":{"summary":"Domain","value":"brandfetch.com"},"email":{"summary":"Email address","value":"john@example.brandfetch.com"},"url":{"summary":"Website URL","value":"https://www.brandfetch.com/developers/pricing"}}},"80e14f5a-4921-4cd7-863a-4a6a24b68472":{"name":"cachedOnly","in":"query","description":"When `true`, return a brand context only if one is already cached, responding instantly without crawling the domain. If no cached context exists, the API responds with `204 No Content` instead of resolving the domain live (which can take several seconds). Useful for latency-sensitive use cases. Any value other than `true` (including omitting the parameter) keeps the default behaviour of resolving the domain live on a cache miss. Defaults to `false`.","required":false,"schema":{"type":"boolean","default":false,"isRequired":false,"description":"When `true`, return a brand context only if one is already cached, responding instantly without crawling the domain. If no cached context exists, the API responds with `204 No Content` instead of resolving the domain live (which can take several seconds). Useful for latency-sensitive use cases. Any value other than `true` (including omitting the parameter) keeps the default behaviour of resolving the domain live on a cache miss. Defaults to `false`.","uniqueKey":"","typeLabel":"boolean"},"examples":{"cachedOnly":{"summary":"Cached only (skip crawling)","value":true}}}},"responses":{"b4ddc55e-83c9-4c83-8c85-46df79e87e58":{"headers":{"PAYMENT-RESPONSE":{"description":"Present on responses paid with x402: the base64-encoded settlement receipt (`success`, `transaction`, `network`, `payer`).","schema":{"type":"string"}},"Payment-Receipt":{"description":"Present on responses paid with MPP: the base64url-encoded receipt (`method`, `reference`, `status`, `timestamp`). Such responses also carry `Cache-Control: private`.","schema":{"type":"string"}}},"description":"Successful request. The response format is determined by the `Accept` header: `application/json` returns a structured JSON object, while `text/markdown` returns the brand context as Markdown. A request paid with MPP whose response was lost can be retried with the same credential for two minutes: it is served from the payment already taken and not charged again.","content":{"application/json":{"schema":{"type":"object","description":"Full brand context returned by the Brand Context API. Note: unlike other endpoints in this API which use camelCase, the Brand Context endpoint intentionally returns field names in `snake_case` (e.g., `canonical_name`, `resolved_at`, `value_proposition`, `target_audience`, `products_and_services`) to align with conventions commonly used by LLM tooling that consumes this data.","properties":{"meta":{"type":"object","description":"Metadata about the resolved brand context.","required":["domain","canonical_name","resolved_at"],"properties":{"domain":{"type":"string","description":"The resolved domain name.","example":"brandfetch.com","nullable":false,"isRequired":true,"uniqueKey":"meta.domain","typeLabel":"string"},"canonical_name":{"type":"string","description":"The canonical brand name.","example":"Brandfetch","nullable":false,"isRequired":true,"uniqueKey":"meta.canonical_name","typeLabel":"string"},"resolved_at":{"type":"string","format":"date-time","description":"Timestamp (ISO 8601) at which the context was resolved.","example":"2026-05-25T08:48:36.843440+00:00","nullable":false,"isRequired":true,"uniqueKey":"meta.resolved_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"meta","typeLabel":"object"},"identity":{"type":"object","description":"Core identity of the brand.","properties":{"tagline":{"oneOf":[{"type":"string","description":"A short tagline summarizing the brand.","uniqueKey":"identity.tagline.oneOf.0","typeLabel":"string"},{"type":"null","description":"A short tagline summarizing the brand.","uniqueKey":"identity.tagline.oneOf.1","typeLabel":"null"}],"uniqueKey":"identity.tagline","typeLabel":"string | null"},"mission":{"oneOf":[{"type":"string","description":"The brand's mission statement.","uniqueKey":"identity.mission.oneOf.0","typeLabel":"string"},{"type":"null","description":"The brand's mission statement.","uniqueKey":"identity.mission.oneOf.1","typeLabel":"null"}],"uniqueKey":"identity.mission","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"A descriptive paragraph about the brand, its products, and how it differentiates.","uniqueKey":"identity.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"A descriptive paragraph about the brand, its products, and how it differentiates.","uniqueKey":"identity.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"identity.description","typeLabel":"string | null"},"tags":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"identity.tags.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"A list of tags that characterize the brand.","uniqueKey":"identity.tags.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"A list of tags that characterize the brand.","uniqueKey":"identity.tags.oneOf.1","typeLabel":"null"}],"uniqueKey":"identity.tags","typeLabel":"string[] | null"}},"uniqueKey":"identity","typeLabel":"object"},"positioning":{"type":"object","description":"How the brand positions itself in the market.","properties":{"value_proposition":{"oneOf":[{"type":"string","description":"The brand's value proposition.","uniqueKey":"positioning.value_proposition.oneOf.0","typeLabel":"string"},{"type":"null","description":"The brand's value proposition.","uniqueKey":"positioning.value_proposition.oneOf.1","typeLabel":"null"}],"uniqueKey":"positioning.value_proposition","typeLabel":"string | null"},"target_audience":{"oneOf":[{"type":"array","items":{"type":"object","description":"A single target audience segment for the brand.","properties":{"segment":{"type":"string","description":"Short label describing the audience segment.","nullable":false,"uniqueKey":"positioning.target_audience.oneOf.0.items.[INDEX].segment","typeLabel":"string"},"description":{"type":"string","description":"What this segment needs from the brand and how the brand serves them.","nullable":false,"uniqueKey":"positioning.target_audience.oneOf.0.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"positioning.target_audience.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Target audience segments for the brand.","uniqueKey":"positioning.target_audience.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","description":"A single target audience segment for the brand.","properties":{"segment":{"type":"string","description":"Short label describing the audience segment.","nullable":false},"description":{"type":"string","description":"What this segment needs from the brand and how the brand serves them.","nullable":false}}},"description":"Target audience segments for the brand.","uniqueKey":"positioning.target_audience.oneOf.1","typeLabel":"null"}],"uniqueKey":"positioning.target_audience","typeLabel":"object[] | null"},"products_and_services":{"oneOf":[{"type":"array","items":{"type":"object","description":"A product or service offered by the brand. Every key is present on every product; the optional fields are `null` when the brand's site does not state them.","required":["name","type","description","category","features","tags","url","pricing"],"properties":{"name":{"type":"string","description":"Name of the product or service.","nullable":false,"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","description":"Whether the offering is a `product` or a `service`.","enum":["product","service"],"example":"product","nullable":false,"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"Description of the product or service.","nullable":false,"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].description","typeLabel":"string"},"category":{"oneOf":[{"type":"string","description":"What kind of offering it is, as a short noun phrase (e.g., `CRM`, `running shoe`, `savings account`). `null` when the brand's site does not make it clear.","example":"Brand data API","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].category.oneOf.0","typeLabel":"string"},{"type":"null","description":"What kind of offering it is, as a short noun phrase (e.g., `CRM`, `running shoe`, `savings account`). `null` when the brand's site does not make it clear.","example":"Brand data API","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].category.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].category","typeLabel":"string | null"},"features":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].features.oneOf.0.items.[INDEX]","typeLabel":"string"},"maxItems":5,"description":"Up to five concrete things a customer can do with the offering, each starting with a verb (e.g., `Manage inventory`, `Process accounts payable`), as stated on or supported by the brand's site. `null` or an empty array when the site does not enumerate any; treat both the same way.","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].features.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"maxItems":5,"description":"Up to five concrete things a customer can do with the offering, each starting with a verb (e.g., `Manage inventory`, `Process accounts payable`), as stated on or supported by the brand's site. `null` or an empty array when the site does not enumerate any; treat both the same way.","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].features.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].features","typeLabel":"string[] | null"},"tags":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].tags.oneOf.0.items.[INDEX]","typeLabel":"string"},"maxItems":5,"description":"Up to five short keywords for classifying the offering. `null` or an empty array when there are none.","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].tags.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"maxItems":5,"description":"Up to five short keywords for classifying the offering. `null` or an empty array when there are none.","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].tags.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].tags","typeLabel":"string[] | null"},"url":{"oneOf":[{"type":"string","description":"The offering's own page, only when the brand's site links to it.","example":"https://brandfetch.com/developers","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The offering's own page, only when the brand's site links to it.","example":"https://brandfetch.com/developers","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].url","typeLabel":"string | null"},"pricing":{"oneOf":[{"type":"object","description":"Published pricing for the offering. `null` unless the brand publishes prices; never estimated.","required":["model","free_tier","starting_price","currency","unit","plans","url"],"properties":{"model":{"oneOf":[{"type":"string","description":"How the offering is charged, as a lowercase snake_case token. Usually one of `per_seat`, `per_user`, `usage_based`, `subscription`, `one_time`, `freemium`, `commission` or `quote_only`, but it is an open set: other values such as `per_night` or `per_session` occur where the site states them.","example":"subscription","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.model.oneOf.0","typeLabel":"string"},{"type":"null","description":"How the offering is charged, as a lowercase snake_case token. Usually one of `per_seat`, `per_user`, `usage_based`, `subscription`, `one_time`, `freemium`, `commission` or `quote_only`, but it is an open set: other values such as `per_night` or `per_session` occur where the site states them.","example":"subscription","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.model.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.model","typeLabel":"string | null"},"free_tier":{"oneOf":[{"type":"boolean","description":"Whether a free plan or tier is offered.","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.free_tier.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether a free plan or tier is offered.","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.free_tier.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.free_tier","typeLabel":"boolean | null"},"starting_price":{"oneOf":[{"type":"number","description":"The lowest published price, in `currency`, for what `unit` describes.","example":99,"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.starting_price.oneOf.0","typeLabel":"number"},{"type":"null","description":"The lowest published price, in `currency`, for what `unit` describes.","example":99,"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.starting_price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.starting_price","typeLabel":"number | null"},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency code of `starting_price`.","example":"USD","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.currency.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 4217 currency code of `starting_price`.","example":"USD","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.currency","typeLabel":"string | null"},"unit":{"oneOf":[{"type":"string","description":"What `starting_price` buys, as the site states it (e.g., `per user/month`, `per 1,000 requests`).","example":"per month","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.unit.oneOf.0","typeLabel":"string"},{"type":"null","description":"What `starting_price` buys, as the site states it (e.g., `per user/month`, `per 1,000 requests`).","example":"per month","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.unit","typeLabel":"string | null"},"plans":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.plans.oneOf.0.items.[INDEX]","typeLabel":"string"},"maxItems":6,"description":"Names of the published plans or tiers. `null` or an empty array when the site names none.","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.plans.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"maxItems":6,"description":"Names of the published plans or tiers. `null` or an empty array when the site names none.","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.plans.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.plans","typeLabel":"string[] | null"},"url":{"oneOf":[{"type":"string","description":"The pricing page, only when the brand's site links to it.","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The pricing page, only when the brand's site links to it.","isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0.url","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.0","typeLabel":"object"},{"type":"null","description":"Published pricing for the offering. `null` unless the brand publishes prices; never estimated.","required":["model","free_tier","starting_price","currency","unit","plans","url"],"properties":{"model":{"oneOf":[{"type":"string","description":"How the offering is charged, as a lowercase snake_case token. Usually one of `per_seat`, `per_user`, `usage_based`, `subscription`, `one_time`, `freemium`, `commission` or `quote_only`, but it is an open set: other values such as `per_night` or `per_session` occur where the site states them.","example":"subscription"},{"type":"null","description":"How the offering is charged, as a lowercase snake_case token. Usually one of `per_seat`, `per_user`, `usage_based`, `subscription`, `one_time`, `freemium`, `commission` or `quote_only`, but it is an open set: other values such as `per_night` or `per_session` occur where the site states them.","example":"subscription"}]},"free_tier":{"oneOf":[{"type":"boolean","description":"Whether a free plan or tier is offered."},{"type":"null","description":"Whether a free plan or tier is offered."}]},"starting_price":{"oneOf":[{"type":"number","description":"The lowest published price, in `currency`, for what `unit` describes.","example":99},{"type":"null","description":"The lowest published price, in `currency`, for what `unit` describes.","example":99}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency code of `starting_price`.","example":"USD"},{"type":"null","description":"ISO 4217 currency code of `starting_price`.","example":"USD"}]},"unit":{"oneOf":[{"type":"string","description":"What `starting_price` buys, as the site states it (e.g., `per user/month`, `per 1,000 requests`).","example":"per month"},{"type":"null","description":"What `starting_price` buys, as the site states it (e.g., `per user/month`, `per 1,000 requests`).","example":"per month"}]},"plans":{"oneOf":[{"type":"array","items":{"type":"string"},"maxItems":6,"description":"Names of the published plans or tiers. `null` or an empty array when the site names none."},{"type":"null","items":{"type":"string"},"maxItems":6,"description":"Names of the published plans or tiers. `null` or an empty array when the site names none."}]},"url":{"oneOf":[{"type":"string","description":"The pricing page, only when the brand's site links to it."},{"type":"null","description":"The pricing page, only when the brand's site links to it."}]}},"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX].pricing","typeLabel":"object | null"}},"uniqueKey":"positioning.products_and_services.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Products and services offered by the brand.","uniqueKey":"positioning.products_and_services.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","description":"A product or service offered by the brand. Every key is present on every product; the optional fields are `null` when the brand's site does not state them.","required":["name","type","description","category","features","tags","url","pricing"],"properties":{"name":{"type":"string","description":"Name of the product or service.","nullable":false},"type":{"type":"string","description":"Whether the offering is a `product` or a `service`.","enum":["product","service"],"example":"product","nullable":false},"description":{"type":"string","description":"Description of the product or service.","nullable":false},"category":{"oneOf":[{"type":"string","description":"What kind of offering it is, as a short noun phrase (e.g., `CRM`, `running shoe`, `savings account`). `null` when the brand's site does not make it clear.","example":"Brand data API"},{"type":"null","description":"What kind of offering it is, as a short noun phrase (e.g., `CRM`, `running shoe`, `savings account`). `null` when the brand's site does not make it clear.","example":"Brand data API"}]},"features":{"oneOf":[{"type":"array","items":{"type":"string"},"maxItems":5,"description":"Up to five concrete things a customer can do with the offering, each starting with a verb (e.g., `Manage inventory`, `Process accounts payable`), as stated on or supported by the brand's site. `null` or an empty array when the site does not enumerate any; treat both the same way."},{"type":"null","items":{"type":"string"},"maxItems":5,"description":"Up to five concrete things a customer can do with the offering, each starting with a verb (e.g., `Manage inventory`, `Process accounts payable`), as stated on or supported by the brand's site. `null` or an empty array when the site does not enumerate any; treat both the same way."}]},"tags":{"oneOf":[{"type":"array","items":{"type":"string"},"maxItems":5,"description":"Up to five short keywords for classifying the offering. `null` or an empty array when there are none."},{"type":"null","items":{"type":"string"},"maxItems":5,"description":"Up to five short keywords for classifying the offering. `null` or an empty array when there are none."}]},"url":{"oneOf":[{"type":"string","description":"The offering's own page, only when the brand's site links to it.","example":"https://brandfetch.com/developers"},{"type":"null","description":"The offering's own page, only when the brand's site links to it.","example":"https://brandfetch.com/developers"}]},"pricing":{"oneOf":[{"type":"object","description":"Published pricing for the offering. `null` unless the brand publishes prices; never estimated.","required":["model","free_tier","starting_price","currency","unit","plans","url"],"properties":{"model":{"oneOf":[{"type":"string","description":"How the offering is charged, as a lowercase snake_case token. Usually one of `per_seat`, `per_user`, `usage_based`, `subscription`, `one_time`, `freemium`, `commission` or `quote_only`, but it is an open set: other values such as `per_night` or `per_session` occur where the site states them.","example":"subscription"},{"type":"null","description":"How the offering is charged, as a lowercase snake_case token. Usually one of `per_seat`, `per_user`, `usage_based`, `subscription`, `one_time`, `freemium`, `commission` or `quote_only`, but it is an open set: other values such as `per_night` or `per_session` occur where the site states them.","example":"subscription"}]},"free_tier":{"oneOf":[{"type":"boolean","description":"Whether a free plan or tier is offered."},{"type":"null","description":"Whether a free plan or tier is offered."}]},"starting_price":{"oneOf":[{"type":"number","description":"The lowest published price, in `currency`, for what `unit` describes.","example":99},{"type":"null","description":"The lowest published price, in `currency`, for what `unit` describes.","example":99}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency code of `starting_price`.","example":"USD"},{"type":"null","description":"ISO 4217 currency code of `starting_price`.","example":"USD"}]},"unit":{"oneOf":[{"type":"string","description":"What `starting_price` buys, as the site states it (e.g., `per user/month`, `per 1,000 requests`).","example":"per month"},{"type":"null","description":"What `starting_price` buys, as the site states it (e.g., `per user/month`, `per 1,000 requests`).","example":"per month"}]},"plans":{"oneOf":[{"type":"array","items":{"type":"string"},"maxItems":6,"description":"Names of the published plans or tiers. `null` or an empty array when the site names none."},{"type":"null","items":{"type":"string"},"maxItems":6,"description":"Names of the published plans or tiers. `null` or an empty array when the site names none."}]},"url":{"oneOf":[{"type":"string","description":"The pricing page, only when the brand's site links to it."},{"type":"null","description":"The pricing page, only when the brand's site links to it."}]}}},{"type":"null","description":"Published pricing for the offering. `null` unless the brand publishes prices; never estimated.","required":["model","free_tier","starting_price","currency","unit","plans","url"],"properties":{"model":{"oneOf":[{"type":"string","description":"How the offering is charged, as a lowercase snake_case token. Usually one of `per_seat`, `per_user`, `usage_based`, `subscription`, `one_time`, `freemium`, `commission` or `quote_only`, but it is an open set: other values such as `per_night` or `per_session` occur where the site states them.","example":"subscription"},{"type":"null","description":"How the offering is charged, as a lowercase snake_case token. Usually one of `per_seat`, `per_user`, `usage_based`, `subscription`, `one_time`, `freemium`, `commission` or `quote_only`, but it is an open set: other values such as `per_night` or `per_session` occur where the site states them.","example":"subscription"}]},"free_tier":{"oneOf":[{"type":"boolean","description":"Whether a free plan or tier is offered."},{"type":"null","description":"Whether a free plan or tier is offered."}]},"starting_price":{"oneOf":[{"type":"number","description":"The lowest published price, in `currency`, for what `unit` describes.","example":99},{"type":"null","description":"The lowest published price, in `currency`, for what `unit` describes.","example":99}]},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 currency code of `starting_price`.","example":"USD"},{"type":"null","description":"ISO 4217 currency code of `starting_price`.","example":"USD"}]},"unit":{"oneOf":[{"type":"string","description":"What `starting_price` buys, as the site states it (e.g., `per user/month`, `per 1,000 requests`).","example":"per month"},{"type":"null","description":"What `starting_price` buys, as the site states it (e.g., `per user/month`, `per 1,000 requests`).","example":"per month"}]},"plans":{"oneOf":[{"type":"array","items":{"type":"string"},"maxItems":6,"description":"Names of the published plans or tiers. `null` or an empty array when the site names none."},{"type":"null","items":{"type":"string"},"maxItems":6,"description":"Names of the published plans or tiers. `null` or an empty array when the site names none."}]},"url":{"oneOf":[{"type":"string","description":"The pricing page, only when the brand's site links to it."},{"type":"null","description":"The pricing page, only when the brand's site links to it."}]}}}]}}},"description":"Products and services offered by the brand.","uniqueKey":"positioning.products_and_services.oneOf.1","typeLabel":"null"}],"uniqueKey":"positioning.products_and_services","typeLabel":"object[] | null"}},"uniqueKey":"positioning","typeLabel":"object"},"brand":{"type":"object","description":"The brand's voice and visual style.","properties":{"voice":{"type":"object","description":"The brand's voice — how it communicates.","properties":{"summary":{"oneOf":[{"type":"string","description":"A narrative summary of the brand's voice.","uniqueKey":"brand.voice.summary.oneOf.0","typeLabel":"string"},{"type":"null","description":"A narrative summary of the brand's voice.","uniqueKey":"brand.voice.summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"brand.voice.summary","typeLabel":"string | null"},"attributes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"brand.voice.attributes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Short adjectives describing the voice (e.g., `confident`, `reassuring`).","uniqueKey":"brand.voice.attributes.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Short adjectives describing the voice (e.g., `confident`, `reassuring`).","uniqueKey":"brand.voice.attributes.oneOf.1","typeLabel":"null"}],"uniqueKey":"brand.voice.attributes","typeLabel":"string[] | null"},"avoid":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"brand.voice.avoid.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Things the brand should avoid in its voice.","uniqueKey":"brand.voice.avoid.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Things the brand should avoid in its voice.","uniqueKey":"brand.voice.avoid.oneOf.1","typeLabel":"null"}],"uniqueKey":"brand.voice.avoid","typeLabel":"string[] | null"}},"uniqueKey":"brand.voice","typeLabel":"object"},"style":{"type":"object","description":"The brand's visual style.","properties":{"summary":{"oneOf":[{"type":"string","description":"A narrative summary of the brand's visual identity.","uniqueKey":"brand.style.summary.oneOf.0","typeLabel":"string"},{"type":"null","description":"A narrative summary of the brand's visual identity.","uniqueKey":"brand.style.summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"brand.style.summary","typeLabel":"string | null"},"attributes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"brand.style.attributes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Short adjectives describing the visual style (e.g., `minimal`, `high-contrast`).","uniqueKey":"brand.style.attributes.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Short adjectives describing the visual style (e.g., `minimal`, `high-contrast`).","uniqueKey":"brand.style.attributes.oneOf.1","typeLabel":"null"}],"uniqueKey":"brand.style.attributes","typeLabel":"string[] | null"}},"uniqueKey":"brand.style","typeLabel":"object"}},"uniqueKey":"brand","typeLabel":"object"},"competition":{"oneOf":[{"type":"object","description":"The brand's competitors. `null` for a context generated before competitors were added to the Brand Context API; such contexts are regenerated over time.","required":["competitors"],"properties":{"competitors":{"type":"array","items":{"type":"object","description":"A company the brand competes with. Every key is present; `name` and `domain` are never `null`.","required":["name","domain","type","category","positioning","overlap"],"properties":{"name":{"type":"string","description":"The competitor's name.","nullable":false,"isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].name","typeLabel":"string"},"domain":{"type":"string","description":"The competitor's domain. Pass it to the Brand API for the competitor's logos and colors.","nullable":false,"isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].domain","typeLabel":"string"},"type":{"oneOf":[{"type":"string","description":"`direct` for a company selling a substitute to the same buyers; `indirect` for one meeting the same need another way.","enum":["direct","indirect"],"isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"`direct` for a company selling a substitute to the same buyers; `indirect` for one meeting the same need another way.","enum":["direct","indirect"],"isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].type","typeLabel":"enum\u003cstring> | null"},"category":{"oneOf":[{"type":"string","description":"The competitor's category, as a short noun phrase.","isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].category.oneOf.0","typeLabel":"string"},{"type":"null","description":"The competitor's category, as a short noun phrase.","isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].category.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].category","typeLabel":"string | null"},"positioning":{"oneOf":[{"type":"string","description":"How the competitor positions itself relative to the brand.","isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].positioning.oneOf.0","typeLabel":"string"},{"type":"null","description":"How the competitor positions itself relative to the brand.","isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].positioning.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].positioning","typeLabel":"string | null"},"overlap":{"type":"array","items":{"type":"string","uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].overlap.items.[INDEX]","typeLabel":"string"},"maxItems":3,"description":"Where the two compete (e.g., a product line, a buyer segment, a region).","nullable":false,"isRequired":true,"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX].overlap","typeLabel":"string[]"}},"uniqueKey":"competition.oneOf.0.competitors.items.[INDEX]","typeLabel":"object"},"maxItems":5,"description":"Up to five competitors, most direct first. Empty when none can be identified, which is common for small and local businesses.","nullable":false,"isRequired":true,"uniqueKey":"competition.oneOf.0.competitors","typeLabel":"object[]"}},"uniqueKey":"competition.oneOf.0","typeLabel":"object"},{"type":"null","description":"The brand's competitors. `null` for a context generated before competitors were added to the Brand Context API; such contexts are regenerated over time.","required":["competitors"],"properties":{"competitors":{"type":"array","items":{"type":"object","description":"A company the brand competes with. Every key is present; `name` and `domain` are never `null`.","required":["name","domain","type","category","positioning","overlap"],"properties":{"name":{"type":"string","description":"The competitor's name.","nullable":false},"domain":{"type":"string","description":"The competitor's domain. Pass it to the Brand API for the competitor's logos and colors.","nullable":false},"type":{"oneOf":[{"type":"string","description":"`direct` for a company selling a substitute to the same buyers; `indirect` for one meeting the same need another way.","enum":["direct","indirect"]},{"type":"null","description":"`direct` for a company selling a substitute to the same buyers; `indirect` for one meeting the same need another way.","enum":["direct","indirect"]}]},"category":{"oneOf":[{"type":"string","description":"The competitor's category, as a short noun phrase."},{"type":"null","description":"The competitor's category, as a short noun phrase."}]},"positioning":{"oneOf":[{"type":"string","description":"How the competitor positions itself relative to the brand."},{"type":"null","description":"How the competitor positions itself relative to the brand."}]},"overlap":{"type":"array","items":{"type":"string"},"maxItems":3,"description":"Where the two compete (e.g., a product line, a buyer segment, a region).","nullable":false}}},"maxItems":5,"description":"Up to five competitors, most direct first. Empty when none can be identified, which is common for small and local businesses.","nullable":false}},"uniqueKey":"competition.oneOf.1","typeLabel":"null"}],"uniqueKey":"competition","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"meta":{"domain":"brandfetch.com","canonical_name":"Brandfetch","resolved_at":"2026-05-25T08:48:36.843440+00:00"},"identity":{"tagline":"\u003cstring>","mission":"\u003cstring>","description":"\u003cstring>","tags":["\u003cstring>"]},"positioning":{"value_proposition":"\u003cstring>","target_audience":[{"segment":"\u003cstring>","description":"\u003cstring>"}],"products_and_services":[{"name":"\u003cstring>","type":"product","description":"\u003cstring>","category":"Brand data API","features":["\u003cstring>"],"tags":["\u003cstring>"],"url":"https://brandfetch.com/developers","pricing":{"model":"subscription","free_tier":true,"starting_price":99,"currency":"USD","unit":"per month","plans":["\u003cstring>"],"url":"\u003cstring>"}}]},"brand":{"voice":{"summary":"\u003cstring>","attributes":["\u003cstring>"],"avoid":["\u003cstring>"]},"style":{"summary":"\u003cstring>","attributes":["\u003cstring>"]}},"competition":{"competitors":[{"name":"\u003cstring>","domain":"\u003cstring>","type":"direct","category":"\u003cstring>","positioning":"\u003cstring>","overlap":["\u003cstring>"]}]}}}},"exampleType":"generated"},"text/markdown":{"schema":{"type":"string","description":"The brand context rendered as Markdown.","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"}},"exampleType":"generated"},"8e48b759-6e56-4850-93a0-b5235e917738":{"description":"Returned when `cachedOnly=true` and no brand context is currently cached for the domain. The response body is empty. Because crawling is disabled there is nothing to return. Retry without `cachedOnly` to resolve the domain live.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"00542fd1-aa06-4b9b-b885-a9d5f7b41626":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","enum":["Bad Request"],"uniqueKey":"message","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"Bad Request"}}},"exampleType":"generated"}},"exampleType":"generated"},"084cfb40-6175-40f2-97ca-b3b5356cc90c":{"description":"Unauthorized. Returned when the `Authorization` header is present but malformed. A request with no credential at all receives a `402` with a payment challenge instead.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","enum":["Unauthorized"],"uniqueKey":"message","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"Unauthorized"}}},"exampleType":"generated"}},"exampleType":"generated"},"7c472c79-41fe-43b2-991d-591f5dafa1a0":{"description":"Payment required. Returned when the request carries no credential: no API key, no x402 payment, no MPP credential. The `PAYMENT-REQUIRED` header prices this request at $0.10 in USDC on Base, and each `WWW-Authenticate: Payment` challenge quotes the same price over MPP. Pay either way, or send an API key. Also returned, with a `reason`, when a `PAYMENT-SIGNATURE` or an `Authorization: Payment …` credential was presented but the payment was not accepted or could not be settled. Nothing is charged in that case. See https://docs.brandfetch.com/agents/pay-per-request.","headers":{"PAYMENT-REQUIRED":{"description":"The x402 v2 payment challenge: base64-encoded JSON whose `accepts` array lists how to pay (scheme `exact`, network `eip155:8453`, the USDC asset, the `amount` in USDC's six decimals and the receiving `payTo` address). Sign the payment with an x402 client and retry with the result in a `PAYMENT-SIGNATURE` header. See https://docs.brandfetch.com/agents/pay-per-request.","schema":{"type":"string"}},"Cache-Control":{"description":"`no-store` — a challenge is issued for one request and must not be cached.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"The MPP challenge: one `Payment` challenge for USDC.e on Tempo, which settles from a cent. Answer it with an `Authorization: Payment …` credential. Cards start at $0.50, above this price, so no card challenge is issued here; a card can pay for standing access on `POST /v2/agents/access`.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Body of the 402 an unauthenticated request receives when the route can be paid for per request. The machine-readable challenges are in the `PAYMENT-REQUIRED` header for x402 and the `WWW-Authenticate: Payment` header for MPP; this body says the same in prose.","properties":{"message":{"type":"string","example":"Payment required. Either authenticate with a Brandfetch API key (Authorization: Bearer \u003ckey>) or pay for this request with x402: sign the payment described in the PAYMENT-REQUIRED header and retry with a PAYMENT-SIGNATURE header.","uniqueKey":"oneOf.0.message","typeLabel":"string"},"documentation":{"type":"string","example":"https://docs.brandfetch.com/agents/pay-per-request","uniqueKey":"oneOf.0.documentation","typeLabel":"string"},"pricing":{"type":"object","properties":{"route":{"type":"string","example":"GET /v2/brands/*","uniqueKey":"oneOf.0.pricing.route","typeLabel":"string"},"price":{"type":"string","example":"$0.10","uniqueKey":"oneOf.0.pricing.price","typeLabel":"string"}},"uniqueKey":"oneOf.0.pricing","typeLabel":"object"},"resource":{"type":"string","description":"The URL the payment is for.","example":"https://api.brandfetch.io/v2/brands/nike.com","uniqueKey":"oneOf.0.resource","typeLabel":"string"},"standingAccess":{"type":"string","example":"For many requests, POST /v2/agents/access (paid the same way) provisions an API key preloaded with prepaid credits.","uniqueKey":"oneOf.0.standingAccess","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Body of the 402 a request carrying a `PAYMENT-SIGNATURE`, or an `Authorization: Payment …` credential, receives when the payment was not accepted or could not be settled. The resource was not served. Nothing was charged, so pay afresh and retry, unless the `message` says to retry the exact request first (a refused settlement of a standing-access purchase).","properties":{"message":{"type":"string","example":"The payment was not accepted, so the request was not served and nothing was charged. Sign a new payment for the PAYMENT-REQUIRED header and retry.","uniqueKey":"oneOf.1.message","typeLabel":"string"},"reason":{"type":"string","description":"The payment service's reason code, e.g. `insufficient_funds`. An MPP credential adds `credential_spent` (it already paid for a request), `credential_in_use` (another request is settling it; retry this exact request in a moment) `credential_malformed` (it could not be read) and `challenge_invalid` (it answers a challenge this API did not issue; answer a fresh one). A Tempo transaction that cannot complete adds `nonce_already_used`, `transaction_rejected`, `transaction_reverted` and `transaction_expired`: the transfer did not happen, so answer a fresh challenge.","example":"insufficient_funds","uniqueKey":"oneOf.1.reason","typeLabel":"string"},"documentation":{"type":"string","example":"https://docs.brandfetch.com/agents/pay-per-request","uniqueKey":"oneOf.1.documentation","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"Payment required. Either authenticate with a Brandfetch API key (Authorization: Bearer \u003ckey>) or pay for this request with x402: sign the payment described in the PAYMENT-REQUIRED header and retry with a PAYMENT-SIGNATURE header.","documentation":"https://docs.brandfetch.com/agents/pay-per-request","pricing":{"route":"GET /v2/brands/*","price":"$0.10"},"resource":"https://api.brandfetch.io/v2/brands/nike.com","standingAccess":"For many requests, POST /v2/agents/access (paid the same way) provisions an API key preloaded with prepaid credits."}}},"exampleType":"generated"}},"exampleType":"generated"},"31176113-34f9-4c5a-9fcc-07e503271dc3":{"description":"Returned when no brand context could be generated for the domain, for example because the domain does not resolve or its site has no usable content. A `404` is not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","enum":["\u003cNot Found> or \u003cInvalid Domain Name>"],"uniqueKey":"message","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cNot Found> or \u003cInvalid Domain Name>"}}},"exampleType":"generated"}},"exampleType":"generated"},"2c1bd1e9-fb18-4f18-becb-16e72c06fcd3":{"description":"The domain's site blocks automated requests, so no brand context can be generated for it. Retrying is unlikely to help. A `422` is not charged.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"We couldn't read this domain (the site appears to block automated requests).","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"We couldn't read this domain (the site appears to block automated requests)."}}},"exampleType":"generated"}},"exampleType":"generated"},"955bd060-2071-44ca-b8bb-0db4dec02d8c":{"description":"API key quota exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","enum":["API key quota exceeded"],"uniqueKey":"message","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"API key quota exceeded"}}},"exampleType":"generated"}},"exampleType":"generated"},"5097c8ae-fd03-4a5e-beb2-46415bd9340d":{"description":"The brand context is not ready yet, or the Brand Context API could not answer. The `x-bf-error` header says which, and neither is charged. With `generation_in_progress`, the domain is still being resolved live: retry the request after the number of seconds in `Retry-After`. The retry returns the context once it is ready, or the error if generation failed. With `temporarily_unavailable`, retry shortly. A `503` without an `x-bf-error` header on a paid request comes from the payment service instead: retry after the `Retry-After` interval; after an MPP credential, retry the exact request with the same credential, and a payment that went through is not charged twice. See https://docs.brandfetch.com/agents/pay-per-request.","headers":{"x-bf-error":{"description":"`generation_in_progress` when the context is still being generated, `temporarily_unavailable` when the Brand Context API could not answer.","schema":{"type":"string","enum":["generation_in_progress","temporarily_unavailable"]}},"Retry-After":{"description":"The number of seconds to wait before retrying. Present with `generation_in_progress` and on a payment service `503`.","schema":{"type":"integer","example":30}}},"content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"The brand context for this domain is still being generated. Retry in 30 seconds.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"The brand context for this domain is still being generated. Retry in 30 seconds."}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"59294b36-4808-4cc8-ba0a-de649086088c":{"bearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"}},"2e24e716-f918-470f-a28e-fa0ccbd60c4d":{"x402Payment":{"type":"apiKey","in":"header","name":"PAYMENT-SIGNATURE","description":"An x402 payment for this one request: the signed payment for the challenge a bare request receives in its `PAYMENT-REQUIRED` header. Alternative to the bearer API key. See https://docs.brandfetch.com/agents/pay-per-request.","scopes":[],"schemeName":"x402Payment"}},"4ffbcb70-9837-4483-bcd4-1c662476068f":{"mppPayment":{"type":"http","scheme":"Payment","description":"An MPP (Machine Payments Protocol) payment, settled through Stripe: the credential answering one of the `WWW-Authenticate: Payment` challenges a bare request receives. Alternative to the bearer API key. See https://docs.brandfetch.com/agents/pay-per-request#paying-with-mpp.","scopes":[],"schemeName":"mppPayment"}}},"servers":{"7b0d6084-1738-4fb2-bc03-db3e71596d0a":{"url":"https://api.brandfetch.io"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"PAYMENT-SIGNATURE","description":"An x402 payment for this one request: the signed payment for the challenge a bare request receives in its `PAYMENT-REQUIRED` header. Alternative to the bearer API key. See https://docs.brandfetch.com/agents/pay-per-request.","scopes":[],"schemeName":"x402Payment"},"schema":{"title":"PAYMENT-SIGNATURE","type":"string","description":"An x402 payment for this one request: the signed payment for the challenge a bare request receives in its `PAYMENT-REQUIRED` header. Alternative to the bearer API key. See https://docs.brandfetch.com/agents/pay-per-request.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"x402Payment","name":"PAYMENT-SIGNATURE"}],"title":"x402Payment"},{"schemes":[{"scheme":{"type":"http","scheme":"Payment","description":"An MPP (Machine Payments Protocol) payment, settled through Stripe: the credential answering one of the `WWW-Authenticate: Payment` challenges a bare request receives. Alternative to the bearer API key. See https://docs.brandfetch.com/agents/pay-per-request#paying-with-mpp.","scopes":[],"schemeName":"mppPayment"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An MPP (Machine Payments Protocol) payment, settled through Stripe: the credential answering one of the `WWW-Authenticate: Payment` challenges a bare request receives. Alternative to the bearer API key. See https://docs.brandfetch.com/agents/pay-per-request#paying-with-mpp.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"mppPayment","name":"Authorization"}],"title":"mppPayment"}]},"originalFileLocation":"openapi.json"},"subdomain":"brandfetch-d7fb5329","siteName":"Brandfetch","title":"Brand Context API - Brandfetch","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-12T09:13:18.751Z","originalFileLocation":"reference/brand-context-api.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Get a structured, narrative-rich brand context for a domain — including identity, positioning, products and services, voice, visual style, and competitors. Authenticate with an API key sent as Authorization: Bearer , or pay for the single request with x402 or MPP: https://docs.brandfetch.com/agents/pay-per-request.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Brandfetch\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/brandfetch-d7fb5329/D3XFukFFOrKC-_RS/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/brandfetch-d7fb5329/D3XFukFFOrKC-_RS/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/brandfetch-d7fb5329/D3XFukFFOrKC-_RS/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/brandfetch-d7fb5329/D3XFukFFOrKC-_RS/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/brandfetch-d7fb5329/D3XFukFFOrKC-_RS/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/brandfetch-d7fb5329/D3XFukFFOrKC-_RS/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/brandfetch-d7fb5329/D3XFukFFOrKC-_RS/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/brandfetch-d7fb5329/D3XFukFFOrKC-_RS/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/brandfetch-d7fb5329/D3XFukFFOrKC-_RS/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Brand Context API - Brandfetch\">\u003cmeta data-mint-head property=\"og:description\" content=\"Get a structured, narrative-rich brand context for a domain — including identity, positioning, products and services, voice, visual style, and competitors. Authenticate with an API key sent as Authorization: Bearer , or pay for the single request with x402 or MPP: https://docs.brandfetch.com/agents/pay-per-request.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Brandfetch\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.brandfetch.com/reference/brand-context-api\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://developers.brandfetch.com/og_docs.webp\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Brand Context API - Brandfetch\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Get a structured, narrative-rich brand context for a domain — including identity, positioning, products and services, voice, visual style, and competitors. Authenticate with an API key sent as Authorization: Bearer , or pay for the single request with x402 or MPP: https://docs.brandfetch.com/agents/pay-per-request.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://developers.brandfetch.com/og_docs.webp\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/brandfetch-d7fb5329/D3XFukFFOrKC-_RS/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Brandfetch\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0084FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.brandfetch.com/reference/brand-context-api\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/brand-context-api.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.brandfetch.com/#organization\",\"name\":\"Brandfetch\",\"url\":\"https://docs.brandfetch.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/brandfetch-d7fb5329/-v6e41qD3Fxu16r-/logo/light.svg?fit=max\u0026auto=format\u0026n=-v6e41qD3Fxu16r-\u0026q=85\u0026s=4f8ea49e20e0d743c9a7754b14f01924\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.brandfetch.com#website\",\"name\":\"Brandfetch\",\"url\":\"https://docs.brandfetch.com\",\"publisher\":{\"@id\":\"https://docs.brandfetch.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.brandfetch.com/reference/brand-context-api#webpage\",\"url\":\"https://docs.brandfetch.com/reference/brand-context-api\",\"name\":\"Brand Context API\",\"description\":\"Get a structured, narrative-rich brand context for a domain — including identity, positioning, products and services, voice, visual style, and competitors. Authenticate with an API key sent as Authorization: Bearer , or pay for the single request with x402 or MPP: https://docs.brandfetch.com/agents/pay-per-request.\",\"dateModified\":\"2026-10-12T09:13:18.751Z\",\"isPartOf\":{\"@id\":\"https://docs.brandfetch.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.brandfetch.com/reference/brand-context-api#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.brandfetch.com/reference/brand-context-api#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Brandfetch\",\"item\":\"https://docs.brandfetch.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Brand Context API\",\"item\":\"https://docs.brandfetch.com/reference/brand-context-api\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.brandfetch.com/reference/brand-context-api#apireference\",\"headline\":\"Brand Context API\",\"name\":\"Brand Context API\",\"description\":\"Get a structured, narrative-rich brand context for a domain — including identity, positioning, products and services, voice, visual style, and competitors. Authenticate with an API key sent as Authorization: Bearer , or pay for the single request with x402 or MPP: https://docs.brandfetch.com/agents/pay-per-request.\",\"url\":\"https://docs.brandfetch.com/reference/brand-context-api\",\"mainEntityOfPage\":{\"@id\":\"https://docs.brandfetch.com/reference/brand-context-api#webpage\"},\"image\":\"https://developers.brandfetch.com/og_docs.webp\",\"dateModified\":\"2026-10-12T09:13:18.751Z\",\"publisher\":{\"@id\":\"https://docs.brandfetch.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.brandfetch.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Brandfetch\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Brandfetch","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/get-started"}]},{"tab":"API References","groups":[{"group":"Brand API","pages":[{"title":"Brand API by domain","sidebarTitle":"/v2/brands/domain/{domain}","openapi":"GET /v2/brands/domain/{domain}","href":"/reference/brand-api-domain"},{"title":"Brand API by ticker","sidebarTitle":"/v2/brands/ticker/{ticker}","openapi":"GET /v2/brands/ticker/{ticker}","href":"/reference/brand-api-ticker"},{"title":"Brand API by ISIN","sidebarTitle":"/v2/brands/isin/{isin}","openapi":"GET /v2/brands/isin/{isin}","href":"/reference/brand-api-isin"},{"title":"Brand API by crypto","sidebarTitle":"/v2/brands/crypto/{symbol}","openapi":"GET /v2/brands/crypto/{symbol}","href":"/reference/brand-api-crypto"},{"title":"Brand API (auto-detect)","sidebarTitle":"/v2/brands/{identifier}","openapi":"GET /v2/brands/{identifier}","href":"/reference/brand-api"},{"title":"Brand API batch","sidebarTitle":"/v2/brands/batch","openapi":"POST /v2/brands/batch","href":"/reference/brand-api-batch"},{"title":"Brand API prefetch (HEAD)","sidebarTitle":"/v2/brands/{identifier}","openapi":"HEAD /v2/brands/{identifier}","href":"/reference/brand-api-prefetch"},{"title":"Brand API prefetch by domain (HEAD)","sidebarTitle":"/v2/brands/domain/{domain}","openapi":"HEAD /v2/brands/domain/{domain}","description":null,"href":"/reference/brand-api-prefetch-domain"}]},{"group":"Brand Context API","pages":[{"title":"Brand Context API","sidebarTitle":"/v2/context/{domain}","openapi":"GET /v2/context/{domain}","href":"/reference/brand-context-api"}]},{"group":"Brand Search API","pages":[{"title":"Brand Search API","sidebarTitle":"/v2/search/{name}","openapi":"GET /v2/search/{name}?c={clientId}","description":"Search for brands by name. Log in to get a clientId","href":"/reference/brand-search-api"}]},{"group":"Transaction API","pages":[{"title":"Transaction API","sidebarTitle":"/v2/brands/transaction","openapi":"POST /v2/brands/transaction","href":"/reference/transaction-api"}]},{"group":"Viewer API","pages":[{"title":"Viewer API","sidebarTitle":"/v2/viewer","openapi":"GET /v2/viewer","href":"/reference/viewer-api"}]},{"group":"Agent access","pages":[{"title":"Agent access offer","sidebarTitle":"GET /v2/agents/access","openapi":"GET /v2/agents/access","href":"/reference/agents-access-offer"},{"title":"Buy agent access","sidebarTitle":"POST /v2/agents/access","openapi":"POST /v2/agents/access","href":"/reference/agents-access-purchase"}]}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/integrations/overview"}]},{"tab":"Use cases","pages":[{"title":"Use cases","href":"/use-cases/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/overview"}]}]},"basePath":"","title":"Brand Context API - Brandfetch","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}