{
"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."
}
Get brand data using a Domain, Website URL, Email address, Brand ID, ISIN, Stock/ETF ticker, or Crypto symbol. 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."
}
When using auto-detect, the identifier is resolved in the following order:
domain → stock/ETF ticker → ISIN → crypto symbol.The API reads an identifier that contains @ (or the percent-encoded
%40) as an email address. It resolves the address to its registrable
domain. john@example.brandfetch.com returns the same response as
brandfetch.com. A mailbox provider’s address resolves like any other
address: a gmail.com address returns the brand of gmail.com. The API does
not tell you whether the domain
is the contact’s company. A malformed address returns 400, and the API does
not bill the request. The API does not store the address. Your request logs
show only the resolved domain. This endpoint and the
Brand Context API accept email addresses.
The explicit type routes refuse an email address with a 400.The API reads an identifier that starts with http:// or https:// (or the
percent-encoded https%3A%2F%2F) as a website URL. The API also reads a
domain with a path (brandfetch.com/developers/pricing) as a website URL.
The API resolves the URL to the registrable domain of its host. The scheme,
www., port, path, and query do not change the result.https://www.brandfetch.com/developers/pricing returns the same response as
brandfetch.com. A URL whose host is not a domain name returns 400, and
the API does not bill the request. The API does not store the URL. Your
request logs show only the resolved domain. This endpoint and the
Brand Context API accept website URLs. The
explicit type routes refuse a website URL with a 400.
Note: When using this generic endpoint, the identifier is resolved in the following order: domain → ticker → isin → crypto. To avoid naming collisions, use explicit type routes: /v2/brands/{type}/{identifier} where type can be domain, ticker, isin, or crypto.
Email addresses: The API reads an identifier that contains @ (or the percent-encoded %40) as an email address. It resolves the address to its registrable domain. john@example.brandfetch.com returns the same response as brandfetch.com. A mailbox provider's address resolves like any other address: a gmail.com address returns the brand of gmail.com. The API does not tell you whether the domain is the contact's company. A malformed address returns 400, and the API does not bill the request. Refused lookups do not count against your quota. The API does not store the address. Your request logs show only the resolved domain. This endpoint and the Brand Context API accept email addresses. The explicit type routes refuse an email address with a 400.
Website URLs: The API reads an identifier that starts with http:// or https:// (or the percent-encoded https%3A%2F%2F) as a website URL. The API also reads a domain with a path (brandfetch.com/developers/pricing) as a website URL. The API resolves the URL to the registrable domain of its host. The scheme, www., port, path, and query do not change the result. https://www.brandfetch.com/developers/pricing returns the same response as brandfetch.com. A URL whose host is not a domain name returns 400, and the API does not bill the request. Refused lookups do not count against your quota. The API does not store the URL. Your request logs show only the resolved domain. This endpoint and the Brand Context API accept website URLs. The explicit type routes refuse a website URL with a 400.
Brandfetch evaluates brands for NSFW content and reserves the right to not return inappropriate brands. Depending on the severity, a brand may either not be returned at all (404), or be returned with its isNsfw property set to true. The allowNsfw query parameter lets you control this behavior:
Not set (default) — Some NSFW brands are not returned (404), others are returned with isNsfw: true.
true — Returns the brand regardless of its NSFW status.
false — Filters out all brands flagged as NSFW (returns 404).
When true, the Brand API answers from its store alone. A brand that is already indexed is returned as usual, and a brand that is not is answered with 204 No Content instead of being indexed live, which can take several seconds. Nothing is crawled, and a ticker, ISIN, or crypto symbol that is not yet indexed is not resolved either. A 204 does not count towards your quota. Any value other than true, including omitting the parameter, keeps the default behaviour of indexing the brand live on a miss. Defaults to false.
Opt in to the brand's color palette. Set true or 1 to add a palette object to the response. If you omit the parameter, or set another value, the response does not change and has no palette key.
If the brand has no palette yet, this request builds one from the brand's last crawl and can take some seconds longer.
Response
Successful request. 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.
Shortcut field for the brand's logo: the address of the best match from logos. The image is a WebP up to 512 px on its longer side. A dark logo is picked over a light one, for light backgrounds; the address names the theme it serves. null when the brand has no logo, and for brands with isNsfw: true.
Fetch the address as it is given. Its c parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its t parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota. If the logo is gone when you fetch it, the address returns 404.
Shortcut field for the brand's symbol: the address of the best match from logos. The image is a WebP up to 512 px on its longer side. A dark symbol is picked over a light one, for light backgrounds; the address names the theme it serves. null when the brand has no symbol, and for brands with isNsfw: true.
Fetch the address as it is given. Its c parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its t parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota. If the symbol is gone when you fetch it, the address returns 404.
Shortcut field for the brand's icon: the address of the best match from logos. The image is a square WebP up to 128 px. A brand without an icon gets one made from its symbol or logo. When no icon can be made, the address returns a lettermark: the brand's initial on a plain square. null when the brand has no icon, symbol or logo, and for brands with isNsfw: true.
Fetch the address as it is given. Its c parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its t parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota.
Shortcut field for the brand's banner: the address of the best match from images. The image is a WebP up to 1500 px wide. null when the brand has no banner, and for brands with isNsfw: true.
Fetch the address as it is given. Its c parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its t parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota. If the banner is gone when you fetch it, the address returns 404.
Score between 0-1 which indicates the quality of the data for the given brand. Useful when you don't want to show lower quality brands to your users.
Lower 3rd is poor quality, middle 3rd is OK quality, upper 3rd is high quality. Lower scores indicate that a brand is less likely to be "real". For example, where google.com will score high, my-random-blog.com will score between 0.3-0.4. The score factors in things like data-recency, whether the brand has been claimed, if it has been manually verified by our team, the brand's domain ranking on the web, as well as other factors.
Don't rely on a fixed score for any given brand. The way we calculate this score may change over time as we add new factors, or tweak the weights of existing ones such that a score for a given brand may change. However, they will remain aligned such that scores divide quality into thirds: low, medium, high.
The brand's homepage screenshot. null when Brandfetch holds no screenshot of the homepage yet, and for brands with isNsfw: true.
The screenshot shows the top of the homepage at a desktop viewport, as Brandfetch saw it on its last visit. It is not a full-page capture. Fetch url as it is given: its c parameter is a client ID signed for your API key, and the image does not count towards your quota. A request that drops the client ID is refused. t is the time of capture, so the address changes when Brandfetch takes a new screenshot.
The brand's color palette. Present only when the request sets palette=true or palette=1. When a brand has no palette yet, the first request builds one from the brand's last crawl without a new render. Then themes and onPairs can be empty until the next crawl. When Brandfetch finds no color that it can defend as the brand's color, no color has the role primary.
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":""},"chroma":{"liveDeploymentHistoryId":"6aec85e68c2847cc731f9590","collectionId":"1abb6975-5594-4c3f-811c-48b2f1940c83","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aec85e68c2847cc731f9590"},"feedback":{"thumbs":true,"edits":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aec85e68c2847cc731f9590","clientVersion":"0.0.4076","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-api","slug":"/reference/brand-api","pageMetadata":{"title":"Brand API (auto-detect)","sidebarTitle":"/v2/brands/{identifier}","openapi":"GET /v2/brands/{identifier}","description":"Get brand data using a Domain, Website URL, Email address, Brand ID, ISIN, Stock/ETF ticker, or Crypto symbol. 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-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 brand data using a Domain, Website URL, Email address, Brand ID, ISIN, Stock/ETF ticker, or Crypto symbol. 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{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Note}=_components;if(!Note)_missingMdxReference(`Note`,true);return _jsxs(Note,{children:[_jsx(_components.p,{children:`This endpoint auto-detects the identifier type. To prevent naming collisions,\nwe recommend using one of the explicit type routes:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/reference/brand-api-domain`,children:`By domain`}),`: `,_jsx(_components.code,{children:`GET /v2/brands/domain/{domain}`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/reference/brand-api-ticker`,children:`By stock or ETF ticker`}),`: `,_jsx(_components.code,{children:`GET /v2/brands/ticker/{ticker}`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/reference/brand-api-isin`,children:`By ISIN`}),`: `,_jsx(_components.code,{children:`GET /v2/brands/isin/{isin}`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/reference/brand-api-crypto`,children:`By crypto symbol`}),`: `,_jsx(_components.code,{children:`GET /v2/brands/crypto/{symbol}`})]}),`\n`]}),_jsx(_components.p,{children:`When using auto-detect, the identifier is resolved in the following order:\ndomain → stock/ETF ticker → ISIN → crypto symbol.`}),_jsxs(_components.p,{children:[`The API reads an identifier that contains `,_jsx(_components.code,{children:`@`}),` (or the percent-encoded\n`,_jsx(_components.code,{children:`%40`}),`) as an email address. It resolves the address to its registrable\ndomain. `,_jsx(_components.code,{children:`john@example.brandfetch.com`}),` returns the same response as\n`,_jsx(_components.code,{children:`brandfetch.com`}),`. A mailbox provider’s address resolves like any other\naddress: a gmail.com address returns the brand of gmail.com. The API does\nnot tell you whether the domain\nis the contact’s company. A malformed address returns `,_jsx(_components.code,{children:`400`}),`, and the API does\nnot bill the request. The API does not store the address. Your request logs\nshow only the resolved domain. This endpoint and the\n`,_jsx(_components.a,{href:`/reference/brand-context-api`,children:`Brand Context API`}),` accept email addresses.\nThe explicit type routes refuse an email address with a `,_jsx(_components.code,{children:`400`}),`.`]}),_jsxs(_components.p,{children:[`The API reads an identifier that starts with `,_jsx(_components.code,{children:`http://`}),` or `,_jsx(_components.code,{children:`https://`}),` (or the\npercent-encoded `,_jsx(_components.code,{children:`https%3A%2F%2F`}),`) as a website URL. The API also reads a\ndomain with a path (`,_jsx(_components.code,{children:`brandfetch.com/developers/pricing`}),`) as a website URL.\nThe API resolves the URL to the registrable domain of its host. The scheme,\n`,_jsx(_components.code,{children:`www.`}),`, port, path, and query do not change the result.`]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`https://www.brandfetch.com/developers/pricing`}),` returns the same response as\n`,_jsx(_components.code,{children:`brandfetch.com`}),`. A URL whose host is not a domain name returns `,_jsx(_components.code,{children:`400`}),`, and\nthe API does not bill the request. The API does not store the URL. Your\nrequest logs show only the resolved domain. This endpoint and the\n`,_jsx(_components.a,{href:`/reference/brand-context-api`,children:`Brand Context API`}),` accept website URLs. The\nexplicit type routes refuse a website URL with a `,_jsx(_components.code,{children:`400`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Brand API (auto-detect)","sidebarTitle":"/v2/brands/{identifier}","openapi":"GET /v2/brands/{identifier}","description":"Get brand data using a Domain, Website URL, Email address, Brand ID, ISIN, Stock/ETF ticker, or Crypto symbol. 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-api"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Get brand data","description":"Get brand data using a Domain, Website URL, Email address, Brand ID, ISIN, Stock/ETF ticker, or Crypto symbol. 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":"getBrandData","tags":["brands"],"security":["71d8b5c5-46c6-4e59-a4f4-59f0af3006c8","e069ded5-24fa-4fbb-b132-251fdd6522e0","219e5e49-52c8-410f-8ec8-f4a2da8c2c9d"],"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 API request","intent":"charge","method":"tempo"}]},"parameters":["31facd44-ca66-48fd-ad3d-780d2eddec77","06cdc516-3195-4038-9793-2d80ed5f8c74","4eb1725a-25a9-49b6-a58e-f18a512e3310","5f447a06-04f7-4fd7-8545-d889867f8dbc"],"responses":{"200":"12643c74-cbf0-483d-8293-2f818edeb715","204":"8a82c84a-5e84-45fc-b908-4e9643b9eb48","400":"0a8f68ed-16db-41df-b8af-64dc60b57707","401":"1387005b-2992-4938-92b3-6bbfd413ac91","402":"fd1cb805-8417-45fd-b444-dab28c07a735","403":"5c14af5b-7906-43cf-80e9-06929b71d055","404":"6573d1b7-17cc-41bb-bf60-c151b7965c47","429":"59419506-4da2-4421-b0fb-069f94110355","500":"72a48335-848b-4c3e-b5e0-76fbf8e1c598"},"method":"get","type":"path","servers":["7b0d6084-1738-4fb2-bc03-db3e71596d0a"],"path":"/v2/brands/{identifier}","baseUrlOptions":["https://api.brandfetch.io"],"title":"Get brand data","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"31facd44-ca66-48fd-ad3d-780d2eddec77":{"name":"identifier","in":"path","description":"Identifier to retrieve brand data. Accepted formats:\n\n- **Domain:** `nike.com`\n- **Email address:** `john@example.brandfetch.com`\n- **Website URL:** `https://www.brandfetch.com/developers/pricing`\n- **Brand ID:** `id_0dwKPKT`\n- **Stock or ETF ticker:** `NKE`\n- **ISIN:** `US6541061031`\n- **Crypto symbol:** `BTC`, `ETH`\n\n**Note:** When using this generic endpoint, the identifier is resolved in the following order: `domain` → `ticker` → `isin` → `crypto`. To avoid naming collisions, use explicit type routes: `/v2/brands/{type}/{identifier}` where `type` can be `domain`, `ticker`, `isin`, or `crypto`.\n\n**Email addresses:** The API reads an identifier that contains `@` (or the percent-encoded `%40`) as an email address. It resolves the address to its registrable domain. `john@example.brandfetch.com` returns the same response as `brandfetch.com`. A mailbox provider's address resolves like any other address: a gmail.com address returns the brand of gmail.com. The API does not tell you whether the domain is the contact's company. A malformed address returns `400`, and the API does not bill the request. Refused lookups do not count against your quota. The API does not store the address. Your request logs show only the resolved domain. This endpoint and the Brand Context API accept email addresses. The explicit type routes refuse an email address with a `400`.\n\n**Website URLs:** The API reads an identifier that starts with `http://` or `https://` (or the percent-encoded `https%3A%2F%2F`) as a website URL. The API also reads a domain with a path (`brandfetch.com/developers/pricing`) as a website URL. The API resolves the URL to the registrable domain of its host. The scheme, `www.`, port, path, and query do not change the result. `https://www.brandfetch.com/developers/pricing` returns the same response as `brandfetch.com`. A URL whose host is not a domain name returns `400`, and the API does not bill the request. Refused lookups do not count against your quota. The API does not store the URL. Your request logs show only the resolved domain. This endpoint and the Brand Context API accept website URLs. The explicit type routes refuse a website URL with a `400`.","required":true,"schema":{"type":"string","isRequired":true,"description":"Identifier to retrieve brand data. Accepted formats:\n\n- **Domain:** `nike.com`\n- **Email address:** `john@example.brandfetch.com`\n- **Website URL:** `https://www.brandfetch.com/developers/pricing`\n- **Brand ID:** `id_0dwKPKT`\n- **Stock or ETF ticker:** `NKE`\n- **ISIN:** `US6541061031`\n- **Crypto symbol:** `BTC`, `ETH`\n\n**Note:** When using this generic endpoint, the identifier is resolved in the following order: `domain` → `ticker` → `isin` → `crypto`. To avoid naming collisions, use explicit type routes: `/v2/brands/{type}/{identifier}` where `type` can be `domain`, `ticker`, `isin`, or `crypto`.\n\n**Email addresses:** The API reads an identifier that contains `@` (or the percent-encoded `%40`) as an email address. It resolves the address to its registrable domain. `john@example.brandfetch.com` returns the same response as `brandfetch.com`. A mailbox provider's address resolves like any other address: a gmail.com address returns the brand of gmail.com. The API does not tell you whether the domain is the contact's company. A malformed address returns `400`, and the API does not bill the request. Refused lookups do not count against your quota. The API does not store the address. Your request logs show only the resolved domain. This endpoint and the Brand Context API accept email addresses. The explicit type routes refuse an email address with a `400`.\n\n**Website URLs:** The API reads an identifier that starts with `http://` or `https://` (or the percent-encoded `https%3A%2F%2F`) as a website URL. The API also reads a domain with a path (`brandfetch.com/developers/pricing`) as a website URL. The API resolves the URL to the registrable domain of its host. The scheme, `www.`, port, path, and query do not change the result. `https://www.brandfetch.com/developers/pricing` returns the same response as `brandfetch.com`. A URL whose host is not a domain name returns `400`, and the API does not bill the request. Refused lookups do not count against your quota. The API does not store the URL. Your request logs show only the resolved domain. This endpoint and the Brand Context API accept website URLs. The explicit type routes refuse a website URL with a `400`.","uniqueKey":"","typeLabel":"string"},"examples":{"domain":{"summary":"Domain","value":"nike.com"},"email":{"summary":"Email address","value":"john@example.brandfetch.com"},"url":{"summary":"Website URL","value":"https://www.brandfetch.com/developers/pricing"},"brandId":{"summary":"Brand ID","value":"id_0dwKPKT"},"ISIN":{"summary":"ISIN","value":"US6541061031"},"stockSymbol":{"summary":"Stock or ETF ticker","value":"NKE"},"cryptoSymbol":{"summary":"Crypto symbol","value":"BTC"}}},"06cdc516-3195-4038-9793-2d80ed5f8c74":{"name":"allowNsfw","in":"query","required":false,"description":"Brandfetch evaluates brands for NSFW content and reserves the right to not return inappropriate brands. Depending on the severity, a brand may either not be returned at all (`404`), or be returned with its `isNsfw` property set to `true`. The `allowNsfw` query parameter lets you control this behavior:\n\n- **Not set** (default) — Some NSFW brands are not returned (`404`), others are returned with `isNsfw: true`.\n- **`true`** — Returns the brand regardless of its NSFW status.\n- **`false`** — Filters out all brands flagged as NSFW (returns `404`).","schema":{"type":"boolean","isRequired":false,"description":"Brandfetch evaluates brands for NSFW content and reserves the right to not return inappropriate brands. Depending on the severity, a brand may either not be returned at all (`404`), or be returned with its `isNsfw` property set to `true`. The `allowNsfw` query parameter lets you control this behavior:\n\n- **Not set** (default) — Some NSFW brands are not returned (`404`), others are returned with `isNsfw: true`.\n- **`true`** — Returns the brand regardless of its NSFW status.\n- **`false`** — Filters out all brands flagged as NSFW (returns `404`).","uniqueKey":"","typeLabel":"boolean"}},"4eb1725a-25a9-49b6-a58e-f18a512e3310":{"name":"cachedOnly","in":"query","description":"When `true`, the Brand API answers from its store alone. A brand that is already indexed is returned as usual, and a brand that is not is answered with `204 No Content` instead of being indexed live, which can take several seconds. Nothing is crawled, and a ticker, ISIN, or crypto symbol that is not yet indexed is not resolved either. A `204` does not count towards your quota. Any value other than `true`, including omitting the parameter, keeps the default behaviour of indexing the brand live on a miss. Defaults to `false`.","required":false,"schema":{"type":"boolean","default":false,"isRequired":false,"description":"When `true`, the Brand API answers from its store alone. A brand that is already indexed is returned as usual, and a brand that is not is answered with `204 No Content` instead of being indexed live, which can take several seconds. Nothing is crawled, and a ticker, ISIN, or crypto symbol that is not yet indexed is not resolved either. A `204` does not count towards your quota. Any value other than `true`, including omitting the parameter, keeps the default behaviour of indexing the brand live on a miss. Defaults to `false`.","uniqueKey":"","typeLabel":"boolean"},"examples":{"cachedOnly":{"summary":"Cached only (skip crawling)","value":true}}},"5f447a06-04f7-4fd7-8545-d889867f8dbc":{"name":"palette","in":"query","required":false,"description":"Opt in to the brand's color palette. Set `true` or `1` to add a `palette` object to the response. If you omit the parameter, or set another value, the response does not change and has no `palette` key.\n\nIf the brand has no palette yet, this request builds one from the brand's last crawl and can take some seconds longer.","schema":{"type":"boolean","isRequired":false,"description":"Opt in to the brand's color palette. Set `true` or `1` to add a `palette` object to the response. If you omit the parameter, or set another value, the response does not change and has no `palette` key.\n\nIf the brand has no palette yet, this request builds one from the brand's last crawl and can take some seconds longer.","uniqueKey":"","typeLabel":"boolean"}}},"responses":{"12643c74-cbf0-483d-8293-2f818edeb715":{"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. 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","properties":{"id":{"type":"string","description":"Unique identifier for the brand","nullable":false,"uniqueKey":"id","typeLabel":"string"},"name":{"oneOf":[{"type":"string","description":"Brand name","uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Brand name","uniqueKey":"name.oneOf.1","typeLabel":"null"}],"uniqueKey":"name","typeLabel":"string | null"},"domain":{"type":"string","description":"Brand website URL","nullable":false,"uniqueKey":"domain","typeLabel":"string"},"claimed":{"type":"boolean","description":"Set to true if the owner of the brand claimed its brand profile on [Brandfetch](https://brandfetch.com)","nullable":false,"uniqueKey":"claimed","typeLabel":"boolean"},"description":{"oneOf":[{"type":"string","description":"Brand description","uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Brand description","uniqueKey":"description.oneOf.1","typeLabel":"null"}],"uniqueKey":"description","typeLabel":"string | null"},"longDescription":{"oneOf":[{"type":"string","description":"Brand long description","uniqueKey":"longDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Brand long description","uniqueKey":"longDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"longDescription","typeLabel":"string | null"},"links":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the social media platform","nullable":false,"enum":["twitter","facebook","instagram","github","youtube","linkedin","crunchbase"],"uniqueKey":"links.items.[INDEX].name","typeLabel":"enum\u003cstring>"},"url":{"type":"string","description":"URL of the social media profile","nullable":false,"uniqueKey":"links.items.[INDEX].url","typeLabel":"string"}},"uniqueKey":"links.items.[INDEX]","typeLabel":"object"},"description":"Social media links of the brand","nullable":false,"uniqueKey":"links","typeLabel":"object[]"},"logo":{"oneOf":[{"type":"string","description":"Shortcut field for the brand's logo: the address of the best match from `logos`. The image is a WebP up to 512 px on its longer side. A dark logo is picked over a light one, for light backgrounds; the address names the theme it serves. `null` when the brand has no logo, and for brands with `isNsfw: true`.\n\nFetch the address as it is given. Its `c` parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its `t` parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota. If the logo is gone when you fetch it, the address returns `404`.","uniqueKey":"logo.oneOf.0","typeLabel":"string"},{"type":"null","description":"Shortcut field for the brand's logo: the address of the best match from `logos`. The image is a WebP up to 512 px on its longer side. A dark logo is picked over a light one, for light backgrounds; the address names the theme it serves. `null` when the brand has no logo, and for brands with `isNsfw: true`.\n\nFetch the address as it is given. Its `c` parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its `t` parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota. If the logo is gone when you fetch it, the address returns `404`.","uniqueKey":"logo.oneOf.1","typeLabel":"null"}],"uniqueKey":"logo","typeLabel":"string | null"},"symbol":{"oneOf":[{"type":"string","description":"Shortcut field for the brand's symbol: the address of the best match from `logos`. The image is a WebP up to 512 px on its longer side. A dark symbol is picked over a light one, for light backgrounds; the address names the theme it serves. `null` when the brand has no symbol, and for brands with `isNsfw: true`.\n\nFetch the address as it is given. Its `c` parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its `t` parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota. If the symbol is gone when you fetch it, the address returns `404`.","uniqueKey":"symbol.oneOf.0","typeLabel":"string"},{"type":"null","description":"Shortcut field for the brand's symbol: the address of the best match from `logos`. The image is a WebP up to 512 px on its longer side. A dark symbol is picked over a light one, for light backgrounds; the address names the theme it serves. `null` when the brand has no symbol, and for brands with `isNsfw: true`.\n\nFetch the address as it is given. Its `c` parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its `t` parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota. If the symbol is gone when you fetch it, the address returns `404`.","uniqueKey":"symbol.oneOf.1","typeLabel":"null"}],"uniqueKey":"symbol","typeLabel":"string | null"},"icon":{"oneOf":[{"type":"string","description":"Shortcut field for the brand's icon: the address of the best match from `logos`. The image is a square WebP up to 128 px. A brand without an icon gets one made from its symbol or logo. When no icon can be made, the address returns a lettermark: the brand's initial on a plain square. `null` when the brand has no icon, symbol or logo, and for brands with `isNsfw: true`.\n\nFetch the address as it is given. Its `c` parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its `t` parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota.","uniqueKey":"icon.oneOf.0","typeLabel":"string"},{"type":"null","description":"Shortcut field for the brand's icon: the address of the best match from `logos`. The image is a square WebP up to 128 px. A brand without an icon gets one made from its symbol or logo. When no icon can be made, the address returns a lettermark: the brand's initial on a plain square. `null` when the brand has no icon, symbol or logo, and for brands with `isNsfw: true`.\n\nFetch the address as it is given. Its `c` parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its `t` parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota.","uniqueKey":"icon.oneOf.1","typeLabel":"null"}],"uniqueKey":"icon","typeLabel":"string | null"},"banner":{"oneOf":[{"type":"string","description":"Shortcut field for the brand's banner: the address of the best match from `images`. The image is a WebP up to 1500 px wide. `null` when the brand has no banner, and for brands with `isNsfw: true`.\n\nFetch the address as it is given. Its `c` parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its `t` parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota. If the banner is gone when you fetch it, the address returns `404`.","uniqueKey":"banner.oneOf.0","typeLabel":"string"},{"type":"null","description":"Shortcut field for the brand's banner: the address of the best match from `images`. The image is a WebP up to 1500 px wide. `null` when the brand has no banner, and for brands with `isNsfw: true`.\n\nFetch the address as it is given. Its `c` parameter is a client ID signed for your API key. The client ID is required, and a request without it is refused. Its `t` parameter changes when the image does, so you can cache the image for as long as you like. The image does not count towards your quota. If the banner is gone when you fetch it, the address returns `404`.","uniqueKey":"banner.oneOf.1","typeLabel":"null"}],"uniqueKey":"banner","typeLabel":"string | null"},"logos":{"type":"array","items":{"type":"object","properties":{"theme":{"oneOf":[{"type":"string","description":"See logo theme. Possible values:\n- **dark**: A dark logo should be displayed on a light background (e.g. #ffffff)\n- **light**: A light logo should be displayed on a dark background (e.g. #000000)","enum":["dark","light",null],"uniqueKey":"logos.items.[INDEX].theme.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"See logo theme. Possible values:\n- **dark**: A dark logo should be displayed on a light background (e.g. #ffffff)\n- **light**: A light logo should be displayed on a dark background (e.g. #000000)","enum":["dark","light",null],"uniqueKey":"logos.items.[INDEX].theme.oneOf.1","typeLabel":"null"}],"uniqueKey":"logos.items.[INDEX].theme","typeLabel":"enum\u003cstring> | null"},"formats":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","description":"File source","uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].src","typeLabel":"string"},"format":{"type":"string","enum":["svg","webp","png","jpeg"],"description":"File format","uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].format","typeLabel":"enum\u003cstring>"},"height":{"oneOf":[{"type":"integer","description":"File height in pixels","uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].height.oneOf.0","typeLabel":"integer"},{"type":"null","description":"File height in pixels","uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].height.oneOf.1","typeLabel":"null"}],"uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].height","typeLabel":"integer | null"},"width":{"oneOf":[{"type":"integer","description":"File width in pixels","uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].width.oneOf.0","typeLabel":"integer"},{"type":"null","description":"File width in pixels","uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].width.oneOf.1","typeLabel":"null"}],"uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].width","typeLabel":"integer | null"},"size":{"type":"integer","description":"File size in bytes","uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].size","typeLabel":"integer"},"background":{"oneOf":[{"type":"string","enum":["transparent"],"description":"Indicates if the file has a transparent background","uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].background.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["transparent"],"description":"Indicates if the file has a transparent background","uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].background.oneOf.1","typeLabel":"null"}],"uniqueKey":"logos.items.[INDEX].formats.items.[INDEX].background","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"logos.items.[INDEX].formats.items.[INDEX]","typeLabel":"object"},"description":"A list of format objects containing files in different formats","nullable":false,"uniqueKey":"logos.items.[INDEX].formats","typeLabel":"object[]"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"logos.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"description":"What the image is. Brandfetch tags a brand's icon and logo; one that is no longer the brand's main icon or logo keeps its tags and is listed with type `other`. Possible values:\n- **photographic**: The image is a photograph, or a logo shown on one, such as a sign or a vehicle.\n- **portrait**: The image is a photograph mainly of one or more people. An image tagged `portrait` is also tagged `photographic`.\n- **illustration**: The image is a drawing, painting, cartoon or 3D render that is not a logo.\n- **screenshot**: The image is a screenshot or mockup of software, a website, an app or a device screen. Logos only.\n- **text**: The image is a flyer, poster, advert, social media post, infographic, document or menu.\n- **placeholder**: The image is a default avatar, a blank or single-colour image, or a \"no image\" graphic.\n- **wordmark**: The logo is the brand's name set in type, with no separate symbol.\n- **lettermark**: The logo is initials, a monogram or a single letter. Icons only.\n- **symbol**: The logo is a symbol alone, without text. Icons only.\n- **combination**: The logo pairs a symbol with the name.\n- **emblem**: The logo's text sits inside a badge, seal or crest.\n\nThe mark types, `wordmark` to `emblem`, go only on an image that is mainly a logo, one at most. A tag is assigned only when the image clearly is one, so an image without a tag can still be any of these. Logos and icons that Brandfetch has not refreshed since October 2026 may carry fewer tags, or none. Brandfetch may add values.","nullable":false,"uniqueKey":"logos.items.[INDEX].tags","typeLabel":"string[]"},"type":{"type":"string","description":"See logo type. Possible values:\n- **icon**: The icon that is used on social profiles (e.g. [Tesla's social icon](https://cdn.brandfetch.io/tesla.com/icon))\n- **logo**: The horizontal logo, seen on large surfaces (e.g. [Tesla's logo](https://asset.brandfetch.io/id2S-kXbuK/idAJ5NMLPG.svg))\n- **symbol**: The universal mark that abstractly represents the brand (e.g. [Tesla's T symbol](https://asset.brandfetch.io/id2S-kXbuK/idM-t614MT.svg))\n- **other**: Other is used to refer to any type of logo that is not the primary one. (e.g. Amazon Kindle Logo)","nullable":false,"enum":["icon","logo","symbol","other"],"uniqueKey":"logos.items.[INDEX].type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"logos.items.[INDEX]","typeLabel":"object"},"description":"Logos, symbols \u0026 icons of the brand","nullable":false,"uniqueKey":"logos","typeLabel":"object[]"},"colors":{"type":"array","items":{"type":"object","properties":{"hex":{"type":"string","description":"Color HEX code","nullable":false,"uniqueKey":"colors.items.[INDEX].hex","typeLabel":"string"},"type":{"type":"string","description":"Type of the color. Possible values:\n- **accent**: The main color that represents the brand (used to draw attention e.g. call to action button)\n- **dark**: The darker color of the brand (used for surfaces or backgrounds)\n- **light**: The lighter color of the brand (used for surfaces or backgrounds)\n- **brand**: The full-color scheme of the brand (used to create color palettes users can pick from)","nullable":false,"enum":["accent","dark","light","brand"],"uniqueKey":"colors.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"brightness":{"type":"number","description":"Color brightness. Calculated based on the standard formula 0.2126*R + 0.7152*G + 0.0722*B","nullable":false,"format":"float","uniqueKey":"colors.items.[INDEX].brightness","typeLabel":"number\u003cfloat>"}},"uniqueKey":"colors.items.[INDEX]","typeLabel":"object"},"description":"Accent, dark, light \u0026 palette colors of the brand","nullable":false,"uniqueKey":"colors","typeLabel":"object[]"},"fonts":{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"Font family","uniqueKey":"fonts.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Font family","uniqueKey":"fonts.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"fonts.items.[INDEX].name","typeLabel":"string | null"},"type":{"type":"string","description":"Font type","nullable":false,"enum":["title","body"],"uniqueKey":"fonts.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"origin":{"type":"string","description":"See font origin. Possible values:\n- **google**: The font that's hosted on Google Font\n- **custom**: The font that has been uploaded by the brand itself\n- **system**: The font that's already installed on the user's operating system (see example)","enum":["google","custom","system"],"uniqueKey":"fonts.items.[INDEX].origin","typeLabel":"enum\u003cstring>"},"originId":{"oneOf":[{"type":"string","description":"Font origin ID","uniqueKey":"fonts.items.[INDEX].originId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Font origin ID","uniqueKey":"fonts.items.[INDEX].originId.oneOf.1","typeLabel":"null"}],"uniqueKey":"fonts.items.[INDEX].originId","typeLabel":"string | null"},"weights":{"type":"array","items":{"type":"object","properties":{},"uniqueKey":"fonts.items.[INDEX].weights.items.[INDEX]","typeLabel":"object"},"uniqueKey":"fonts.items.[INDEX].weights","typeLabel":"object[]"}},"uniqueKey":"fonts.items.[INDEX]","typeLabel":"object"},"description":"Title \u0026 body fonts of the brand","nullable":false,"uniqueKey":"fonts","typeLabel":"object[]"},"images":{"type":"array","items":{"type":"object","properties":{"formats":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","description":"File source","uniqueKey":"images.items.[INDEX].formats.items.[INDEX].src","typeLabel":"string"},"format":{"type":"string","enum":["svg","webp","png","jpeg"],"description":"File format","uniqueKey":"images.items.[INDEX].formats.items.[INDEX].format","typeLabel":"enum\u003cstring>"},"height":{"oneOf":[{"type":"integer","description":"File height in pixels","uniqueKey":"images.items.[INDEX].formats.items.[INDEX].height.oneOf.0","typeLabel":"integer"},{"type":"null","description":"File height in pixels","uniqueKey":"images.items.[INDEX].formats.items.[INDEX].height.oneOf.1","typeLabel":"null"}],"uniqueKey":"images.items.[INDEX].formats.items.[INDEX].height","typeLabel":"integer | null"},"width":{"oneOf":[{"type":"integer","description":"File width in pixels","uniqueKey":"images.items.[INDEX].formats.items.[INDEX].width.oneOf.0","typeLabel":"integer"},{"type":"null","description":"File width in pixels","uniqueKey":"images.items.[INDEX].formats.items.[INDEX].width.oneOf.1","typeLabel":"null"}],"uniqueKey":"images.items.[INDEX].formats.items.[INDEX].width","typeLabel":"integer | null"},"size":{"type":"integer","description":"File size in bytes","uniqueKey":"images.items.[INDEX].formats.items.[INDEX].size","typeLabel":"integer"},"background":{"oneOf":[{"type":"string","enum":["transparent"],"description":"Indicates if the file has a transparent background","uniqueKey":"images.items.[INDEX].formats.items.[INDEX].background.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["transparent"],"description":"Indicates if the file has a transparent background","uniqueKey":"images.items.[INDEX].formats.items.[INDEX].background.oneOf.1","typeLabel":"null"}],"uniqueKey":"images.items.[INDEX].formats.items.[INDEX].background","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"images.items.[INDEX].formats.items.[INDEX]","typeLabel":"object"},"description":"Available formats of the image","nullable":false,"uniqueKey":"images.items.[INDEX].formats","typeLabel":"object[]"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"images.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"description":"What the image is. A banner that is no longer the brand's main one keeps its tags and is listed with type `other`. Possible values:\n- **photographic**: The image is a photograph, or a logo shown on one. Banners and pictures.\n- **portrait**: The image is a photograph mainly of one or more people. Banners and pictures. An image tagged `portrait` is also tagged `photographic`.\n- **illustration**: The image is a drawing, painting, cartoon or 3D render that is not a logo. Banners and pictures.\n- **screenshot**: The image is a screenshot or mockup of software, a website, an app or a device screen. Pictures.\n- **text**: The image is a flyer, poster, advert, social media post, infographic, document or menu. Banners and pictures.\n- **pattern**: The image is an abstract background, texture, gradient or pattern with no subject. Pictures.\n- **placeholder**: The image is blank, a single colour, or a \"no image\" graphic. Banners.\n\nA tag is assigned only when the image clearly is one, so an image without a tag can still be any of these. Images that Brandfetch has not refreshed since October 2026 have no tags. Brandfetch may add values.","nullable":false,"uniqueKey":"images.items.[INDEX].tags","typeLabel":"string[]"},"type":{"type":"string","description":"Image type. `picture` entries are images published on the brand's own site and carry `pictureMetadata`. Their `tags` say what each one is, such as a photograph, a screenshot or a flyer.","nullable":false,"enum":["banner","other","picture"],"uniqueKey":"images.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"pictureMetadata":{"type":"object","description":"Present on `picture` entries only. Lets you choose between a brand's pictures without fetching the files first.","properties":{"score":{"type":"number","description":"How representative of the brand we consider this picture","nullable":false,"uniqueKey":"images.items.[INDEX].pictureMetadata.score","typeLabel":"number"},"rank":{"type":"integer","description":"Position of this picture among the brand's pictures, by descending score","nullable":false,"uniqueKey":"images.items.[INDEX].pictureMetadata.rank","typeLabel":"integer"},"naturalWidth":{"type":"integer","description":"Intrinsic width of the image in pixels","nullable":false,"uniqueKey":"images.items.[INDEX].pictureMetadata.naturalWidth","typeLabel":"integer"},"naturalHeight":{"type":"integer","description":"Intrinsic height of the image in pixels","nullable":false,"uniqueKey":"images.items.[INDEX].pictureMetadata.naturalHeight","typeLabel":"integer"},"alt":{"type":"string","description":"Alt text published with the image on the brand's site","nullable":false,"uniqueKey":"images.items.[INDEX].pictureMetadata.alt","typeLabel":"string"},"sourceUrl":{"type":"string","description":"URL of the image on the brand's own site. A `picture` can arrive with an empty `formats` array, in which case this is how you reach the image.","nullable":false,"uniqueKey":"images.items.[INDEX].pictureMetadata.sourceUrl","typeLabel":"string"},"imageCategory":{"oneOf":[{"type":"string","description":"Category we classified the image into","uniqueKey":"images.items.[INDEX].pictureMetadata.imageCategory.oneOf.0","typeLabel":"string"},{"type":"null","description":"Category we classified the image into","uniqueKey":"images.items.[INDEX].pictureMetadata.imageCategory.oneOf.1","typeLabel":"null"}],"uniqueKey":"images.items.[INDEX].pictureMetadata.imageCategory","typeLabel":"string | null"},"categoryConfidence":{"oneOf":[{"type":"number","description":"Confidence in the assigned `imageCategory`","uniqueKey":"images.items.[INDEX].pictureMetadata.categoryConfidence.oneOf.0","typeLabel":"number"},{"type":"null","description":"Confidence in the assigned `imageCategory`","uniqueKey":"images.items.[INDEX].pictureMetadata.categoryConfidence.oneOf.1","typeLabel":"null"}],"uniqueKey":"images.items.[INDEX].pictureMetadata.categoryConfidence","typeLabel":"number | null"}},"nullable":false,"uniqueKey":"images.items.[INDEX].pictureMetadata","typeLabel":"object"}},"uniqueKey":"images.items.[INDEX]","typeLabel":"object"},"description":"Banner, picture \u0026 other images of the brand","nullable":false,"uniqueKey":"images","typeLabel":"object[]"},"qualityScore":{"type":"number","description":"Score between 0-1 which indicates the quality of the data for the given brand. Useful when you don't want to show lower quality brands to your users.\n\nLower 3rd is poor quality, middle 3rd is OK quality, upper 3rd is high quality. Lower scores indicate that a brand is less likely to be \"real\". For example, where google.com will score high, my-random-blog.com will score between 0.3-0.4. The score factors in things like data-recency, whether the brand has been claimed, if it has been manually verified by our team, the brand's domain ranking on the web, as well as other factors.\n\nDon't rely on a fixed score for any given brand. The way we calculate this score may change over time as we add new factors, or tweak the weights of existing ones such that a score for a given brand may change. However, they will remain aligned such that scores divide quality into thirds: low, medium, high.","nullable":false,"uniqueKey":"qualityScore","typeLabel":"number"},"company":{"type":"object","properties":{"employees":{"oneOf":[{"type":"integer","description":"1 employee, 2-10 employees, 11-50 employees, 51-200 employees, 201-500 employees, 501-1,000 employees, 1,001-5,000 employees, 5,001-10,000 employees, 10,001+ employees","enum":[1,2,11,51,201,501,1001,5001,10001],"uniqueKey":"company.employees.oneOf.0","typeLabel":"enum\u003cinteger>"},{"type":"null","description":"1 employee, 2-10 employees, 11-50 employees, 51-200 employees, 201-500 employees, 501-1,000 employees, 1,001-5,000 employees, 5,001-10,000 employees, 10,001+ employees","enum":[1,2,11,51,201,501,1001,5001,10001],"uniqueKey":"company.employees.oneOf.1","typeLabel":"null"}],"uniqueKey":"company.employees","typeLabel":"enum\u003cinteger> | null"},"financialIdentifiers":{"oneOf":[{"type":"object","description":"Object holding financial identifiers","properties":{"isin":{"type":"array","description":"List of ISIN codes","items":{"type":"string","uniqueKey":"company.financialIdentifiers.oneOf.0.isin.items.[INDEX]","typeLabel":"string"},"uniqueKey":"company.financialIdentifiers.oneOf.0.isin","typeLabel":"string[]"},"ticker":{"type":"array","description":"List of Stock or ETF ticker","items":{"type":"string","uniqueKey":"company.financialIdentifiers.oneOf.0.ticker.items.[INDEX]","typeLabel":"string"},"uniqueKey":"company.financialIdentifiers.oneOf.0.ticker","typeLabel":"string[]"}},"uniqueKey":"company.financialIdentifiers.oneOf.0","typeLabel":"object"},{"type":"null","description":"Object holding financial identifiers","properties":{"isin":{"type":"array","description":"List of ISIN codes","items":{"type":"string"}},"ticker":{"type":"array","description":"List of Stock or ETF ticker","items":{"type":"string"}}},"uniqueKey":"company.financialIdentifiers.oneOf.1","typeLabel":"null"}],"uniqueKey":"company.financialIdentifiers","typeLabel":"object | null"},"foundedYear":{"oneOf":[{"type":"integer","description":"The year the brand was founded","uniqueKey":"company.foundedYear.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The year the brand was founded","uniqueKey":"company.foundedYear.oneOf.1","typeLabel":"null"}],"uniqueKey":"company.foundedYear","typeLabel":"integer | null"},"industries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the industry","uniqueKey":"company.industries.items.[INDEX].id","typeLabel":"string"},"score":{"type":"number","format":"float","description":"Probability, between 0 and 1, that the brand belongs to this industry. A value of 1 marks an industry that was set rather than predicted, for example by a curator, an import or a content rule.","uniqueKey":"company.industries.items.[INDEX].score","typeLabel":"number\u003cfloat>"},"slug":{"type":"string","description":"URL friendly identifier","uniqueKey":"company.industries.items.[INDEX].slug","typeLabel":"string"},"name":{"type":"string","description":"Name of the industry","uniqueKey":"company.industries.items.[INDEX].name","typeLabel":"string"},"emoji":{"type":"string","description":"An emoji for the industry","uniqueKey":"company.industries.items.[INDEX].emoji","typeLabel":"string"},"parent":{"oneOf":[{"description":"If the object is a sub-category, the parent industry","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the industry","uniqueKey":"company.industries.items.[INDEX].parent.oneOf.0.items.[INDEX].id","typeLabel":"string"},"slug":{"type":"string","description":"URL friendly identifier","uniqueKey":"company.industries.items.[INDEX].parent.oneOf.0.items.[INDEX].slug","typeLabel":"string"},"name":{"type":"string","description":"Name of the industry","uniqueKey":"company.industries.items.[INDEX].parent.oneOf.0.items.[INDEX].name","typeLabel":"string"},"emoji":{"type":"string","description":"An emoji for the industry","uniqueKey":"company.industries.items.[INDEX].parent.oneOf.0.items.[INDEX].emoji","typeLabel":"string"}},"uniqueKey":"company.industries.items.[INDEX].parent.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"company.industries.items.[INDEX].parent.oneOf.0","typeLabel":"object[]"},{"description":"If the object is a sub-category, the parent industry","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the industry"},"slug":{"type":"string","description":"URL friendly identifier"},"name":{"type":"string","description":"Name of the industry"},"emoji":{"type":"string","description":"An emoji for the industry"}}},"type":"null","uniqueKey":"company.industries.items.[INDEX].parent.oneOf.1","typeLabel":"null"}],"uniqueKey":"company.industries.items.[INDEX].parent","typeLabel":"object[] | null"}},"uniqueKey":"company.industries.items.[INDEX]","typeLabel":"object"},"description":"An array of industries, sorted by descending `score`. A sub-industry carries its top-level industry in `parent`. See the full list of industries [here](https://docs.google.com/spreadsheets/d/1N44nMfVtPCFM4ebTcmRlqbyxjFtDAGVuqd0mh0dcOU0/edit?usp=sharing)","uniqueKey":"company.industries","typeLabel":"object[]"},"kind":{"oneOf":[{"type":"string","description":"Organizational Structure","enum":["EDUCATIONAL","GOVERNMENT_AGENCY","NON_PROFIT","PARTNERSHIP","PRIVATELY_HELD","PUBLIC_COMPANY","SELF_EMPLOYED","SELF_OWNED"],"uniqueKey":"company.kind.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Organizational Structure","enum":["EDUCATIONAL","GOVERNMENT_AGENCY","NON_PROFIT","PARTNERSHIP","PRIVATELY_HELD","PUBLIC_COMPANY","SELF_EMPLOYED","SELF_OWNED"],"uniqueKey":"company.kind.oneOf.1","typeLabel":"null"}],"uniqueKey":"company.kind","typeLabel":"enum\u003cstring> | null"},"location":{"type":"object","description":"Company's headquarter information","properties":{"city":{"oneOf":[{"type":"string","description":"Headquarter city","uniqueKey":"company.location.city.oneOf.0","typeLabel":"string"},{"type":"null","description":"Headquarter city","uniqueKey":"company.location.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"company.location.city","typeLabel":"string | null"},"country":{"oneOf":[{"type":"string","description":"Headquarter country","uniqueKey":"company.location.country.oneOf.0","typeLabel":"string"},{"type":"null","description":"Headquarter country","uniqueKey":"company.location.country.oneOf.1","typeLabel":"null"}],"uniqueKey":"company.location.country","typeLabel":"string | null"},"countryCode":{"oneOf":[{"type":"string","description":"Headquarter country code (ISO 3166-1 alpha-2)","uniqueKey":"company.location.countryCode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Headquarter country code (ISO 3166-1 alpha-2)","uniqueKey":"company.location.countryCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"company.location.countryCode","typeLabel":"string | null"},"region":{"oneOf":[{"type":"string","description":"Headquarter region","uniqueKey":"company.location.region.oneOf.0","typeLabel":"string"},{"type":"null","description":"Headquarter region","uniqueKey":"company.location.region.oneOf.1","typeLabel":"null"}],"uniqueKey":"company.location.region","typeLabel":"string | null"},"state":{"oneOf":[{"type":"string","description":"Headquarter state","uniqueKey":"company.location.state.oneOf.0","typeLabel":"string"},{"type":"null","description":"Headquarter state","uniqueKey":"company.location.state.oneOf.1","typeLabel":"null"}],"uniqueKey":"company.location.state","typeLabel":"string | null"},"subregion":{"oneOf":[{"type":"string","description":"Headquarter subregion","uniqueKey":"company.location.subregion.oneOf.0","typeLabel":"string"},{"type":"null","description":"Headquarter subregion","uniqueKey":"company.location.subregion.oneOf.1","typeLabel":"null"}],"uniqueKey":"company.location.subregion","typeLabel":"string | null"}},"uniqueKey":"company.location","typeLabel":"object"}},"description":"The company object returns firmographic data related to the brand","nullable":false,"uniqueKey":"company","typeLabel":"object"},"isNsfw":{"type":"boolean","description":"true when the brand is for adult content, e.g. is not safe for work","nullable":false,"uniqueKey":"isNsfw","typeLabel":"boolean"},"urn":{"type":"string","description":"Uniform Resource Name for the brand","nullable":false,"uniqueKey":"urn","typeLabel":"string"},"screenshot":{"oneOf":[{"type":"object","description":"The brand's homepage screenshot. `null` when Brandfetch holds no screenshot of the homepage yet, and for brands with `isNsfw: true`.\n\nThe screenshot shows the top of the homepage at a desktop viewport, as Brandfetch saw it on its last visit. It is not a full-page capture. Fetch `url` as it is given: its `c` parameter is a client ID signed for your API key, and the image does not count towards your quota. A request that drops the client ID is refused. `t` is the time of capture, so the address changes when Brandfetch takes a new screenshot.","properties":{"url":{"type":"string","description":"The address of the PNG, signed for your API key. Fetch it as it is given, with its `c` and `t` parameters.","nullable":false,"uniqueKey":"screenshot.oneOf.0.url","typeLabel":"string"},"capturedAt":{"type":"string","format":"date-time","description":"When Brandfetch took the screenshot.","nullable":false,"uniqueKey":"screenshot.oneOf.0.capturedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"screenshot.oneOf.0","typeLabel":"object"},{"type":"null","description":"The brand's homepage screenshot. `null` when Brandfetch holds no screenshot of the homepage yet, and for brands with `isNsfw: true`.\n\nThe screenshot shows the top of the homepage at a desktop viewport, as Brandfetch saw it on its last visit. It is not a full-page capture. Fetch `url` as it is given: its `c` parameter is a client ID signed for your API key, and the image does not count towards your quota. A request that drops the client ID is refused. `t` is the time of capture, so the address changes when Brandfetch takes a new screenshot.","properties":{"url":{"type":"string","description":"The address of the PNG, signed for your API key. Fetch it as it is given, with its `c` and `t` parameters.","nullable":false},"capturedAt":{"type":"string","format":"date-time","description":"When Brandfetch took the screenshot.","nullable":false}},"uniqueKey":"screenshot.oneOf.1","typeLabel":"null"}],"uniqueKey":"screenshot","typeLabel":"object | null"},"palette":{"oneOf":[{"type":"object","description":"The brand's color palette. Present only when the request sets `palette=true` or `palette=1`. When a brand has no palette yet, the first request builds one from the brand's last crawl without a new render. Then `themes` and `onPairs` can be empty until the next crawl. When Brandfetch finds no color that it can defend as the brand's color, no color has the role `primary`.","properties":{"colors":{"type":"array","items":{"type":"object","properties":{"hex":{"type":"string","description":"Color HEX code.","nullable":false,"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].hex","typeLabel":"string"},"name":{"oneOf":[{"type":"string","description":"Name of the closest named color. Uses the same list as `colors[].name`, so the same HEX code has the same name everywhere.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the closest named color. Uses the same list as `colors[].name`, so the same HEX code has the same name everywhere.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].name","typeLabel":"string | null"},"role":{"type":"string","description":"What the color does for the brand. Possible values: `primary`, `secondary`, `accent`, `background`, `surface`, `text`, `muted`, `border`, `other`.","nullable":false,"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].role","typeLabel":"string"},"context":{"type":"string","description":"Where Brandfetch observed the color. `identity` for colors of the brand's mark and identity, `interface` for colors that structure its website, `both` for colors that do both.","nullable":false,"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].context","typeLabel":"string"},"rank":{"oneOf":[{"type":"integer","description":"Position of the color in the palette, from 1. `null` for a color that a theme, gradient, on-pair, or logo references but that does not rank as a brand color.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].rank.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Position of the color in the palette, from 1. `null` for a color that a theme, gradient, on-pair, or logo references but that does not rank as a brand color.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].rank.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].rank","typeLabel":"integer | null"},"member":{"type":"boolean","description":"`true` for a color listed only because a theme, gradient, on-pair or logo references it. Absent on ranked colors.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].member","typeLabel":"boolean"},"legibleText":{"type":"string","description":"`#ffffff` or `#000000`, whichever reads better on this color.","nullable":false,"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].legibleText","typeLabel":"string"},"legibleTextContrast":{"type":"number","description":"WCAG contrast ratio between the color and `legibleText`.","nullable":false,"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].legibleTextContrast","typeLabel":"number"},"onColor":{"oneOf":[{"type":"string","description":"The text color that the brand's website places on this color, when Brandfetch observed it.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].onColor.oneOf.0","typeLabel":"string"},{"type":"null","description":"The text color that the brand's website places on this color, when Brandfetch observed it.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].onColor.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].onColor","typeLabel":"string | null"},"onColorContrast":{"oneOf":[{"type":"number","description":"WCAG contrast ratio between the color and `onColor`.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].onColorContrast.oneOf.0","typeLabel":"number"},{"type":"null","description":"WCAG contrast ratio between the color and `onColor`.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].onColorContrast.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].onColorContrast","typeLabel":"number | null"},"brightness":{"oneOf":[{"type":"number","description":"Color brightness, 0 to 255.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].brightness.oneOf.0","typeLabel":"number"},{"type":"null","description":"Color brightness, 0 to 255.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].brightness.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].brightness","typeLabel":"number | null"},"prevalence":{"oneOf":[{"type":"number","description":"Share of the observed color evidence attributed to this color, 0 to 1.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].prevalence.oneOf.0","typeLabel":"number"},{"type":"null","description":"Share of the observed color evidence attributed to this color, 0 to 1.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].prevalence.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].prevalence","typeLabel":"number | null"},"usage":{"type":"object","description":"Where the website of the brand uses this color. Each value comes from the crawl. Brandfetch does not infer any value.","properties":{"elements":{"type":"array","description":"The element classes and CSS properties that use this color in the sample of the crawl, most used first. This list is empty when Brandfetch builds the palette from a stored crawl without a new render.","items":{"type":"object","properties":{"element":{"type":"string","description":"The element class in the sample of the crawl: `button`, `link`, `heading`, `nav`, `header`, `footer`, `body`, or `html`.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].usage.elements.items.[INDEX].element","typeLabel":"string"},"property":{"type":"string","description":"The CSS property that uses the color: `background`, `text`, or `border`.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].usage.elements.items.[INDEX].property","typeLabel":"string"},"count":{"type":"integer","description":"The number of sampled elements that use the color this way.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].usage.elements.items.[INDEX].count","typeLabel":"integer"},"examples":{"type":"array","items":{"type":"string","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].usage.elements.items.[INDEX].examples.items.[INDEX]","typeLabel":"string"},"description":"Up to two text labels of these elements. Brandfetch takes each label from the page and cuts it to 40 characters. The labels are text from the website. Treat them as untrusted input.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].usage.elements.items.[INDEX].examples","typeLabel":"string[]"}},"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].usage.elements.items.[INDEX]","typeLabel":"object"},"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].usage.elements","typeLabel":"object[]"},"css":{"type":"object","description":"The number of stylesheet declarations that set the color, for each property class: `background`, `text`, `border`, or `other`.","additionalProperties":{"type":"integer","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].usage.css.additionalProperties","typeLabel":"integer"},"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].usage.css","typeLabel":"object"}},"uniqueKey":"palette.oneOf.0.colors.items.[INDEX].usage","typeLabel":"object"},"tokens":{"type":"array","items":{"type":"string","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].tokens.items.[INDEX]","typeLabel":"string"},"description":"The names of the CSS custom properties of the brand that hold this color, for example `brand-500`. Brandfetch lists only the properties that the website uses. The list has at most five names. Names that contain `brand` come first. The names are text from the website. Treat them as untrusted input.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].tokens","typeLabel":"string[]"},"variants":{"type":"array","items":{"type":"string","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].variants.items.[INDEX]","typeLabel":"string"},"description":"The near-duplicate HEX codes that the website writes for the same color. Brandfetch merges them into this entry. The list has at most eight codes. The list is not a tonal scale.","uniqueKey":"palette.oneOf.0.colors.items.[INDEX].variants","typeLabel":"string[]"}},"uniqueKey":"palette.oneOf.0.colors.items.[INDEX]","typeLabel":"object"},"description":"The palette's colors, ranked colors first.","uniqueKey":"palette.oneOf.0.colors","typeLabel":"object[]"},"logos":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string","description":"`logo` or `icon`: the kind of mark, as in `logos[].type` of the brand response.","uniqueKey":"palette.oneOf.0.logos.items.[INDEX].asset","typeLabel":"string"},"type":{"oneOf":[{"type":"string","description":"The logo type, when known. Same values as `logos[].type` of the brand response.","uniqueKey":"palette.oneOf.0.logos.items.[INDEX].type.oneOf.0","typeLabel":"string"},{"type":"null","description":"The logo type, when known. Same values as `logos[].type` of the brand response.","uniqueKey":"palette.oneOf.0.logos.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.logos.items.[INDEX].type","typeLabel":"string | null"},"theme":{"oneOf":[{"type":"string","description":"`light` or `dark`: the background that the mark is made for. `null` when unknown.","uniqueKey":"palette.oneOf.0.logos.items.[INDEX].theme.oneOf.0","typeLabel":"string"},{"type":"null","description":"`light` or `dark`: the background that the mark is made for. `null` when unknown.","uniqueKey":"palette.oneOf.0.logos.items.[INDEX].theme.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.logos.items.[INDEX].theme","typeLabel":"string | null"},"format":{"type":"string","description":"`svg` or `png`: the file that Brandfetch read the colors from.","uniqueKey":"palette.oneOf.0.logos.items.[INDEX].format","typeLabel":"string"},"primary":{"type":"boolean","description":"`true` for the main logo or icon of the brand.","uniqueKey":"palette.oneOf.0.logos.items.[INDEX].primary","typeLabel":"boolean"},"colors":{"type":"array","description":"The colors of the mark, largest share first.","items":{"type":"object","properties":{"hex":{"type":"string","description":"Color HEX code. It is also an entry in `colors[]`, so you can join the two by `hex`.","uniqueKey":"palette.oneOf.0.logos.items.[INDEX].colors.items.[INDEX].hex","typeLabel":"string"},"coverage":{"type":"number","description":"Share of the logo's pixels in this color, 0 to 1.","uniqueKey":"palette.oneOf.0.logos.items.[INDEX].colors.items.[INDEX].coverage","typeLabel":"number"}},"uniqueKey":"palette.oneOf.0.logos.items.[INDEX].colors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"palette.oneOf.0.logos.items.[INDEX].colors","typeLabel":"object[]"}},"uniqueKey":"palette.oneOf.0.logos.items.[INDEX]","typeLabel":"object"},"description":"The colors of each logo and icon, with how much of the mark each color covers.","uniqueKey":"palette.oneOf.0.logos","typeLabel":"object[]"},"onPairs":{"type":"array","items":{"type":"object","properties":{"element":{"type":"string","description":"The kind of element observed, for example `body`, `link`, `button`, `heading`.","uniqueKey":"palette.oneOf.0.onPairs.items.[INDEX].element","typeLabel":"string"},"theme":{"type":"string","description":"`light` or `dark`.","uniqueKey":"palette.oneOf.0.onPairs.items.[INDEX].theme","typeLabel":"string"},"background":{"type":"string","description":"The background color HEX code. It is also an entry in `colors[]`.","uniqueKey":"palette.oneOf.0.onPairs.items.[INDEX].background","typeLabel":"string"},"text":{"type":"string","description":"The text color HEX code. It is also an entry in `colors[]`.","uniqueKey":"palette.oneOf.0.onPairs.items.[INDEX].text","typeLabel":"string"},"contrast":{"type":"number","description":"WCAG contrast ratio between `background` and `text`.","uniqueKey":"palette.oneOf.0.onPairs.items.[INDEX].contrast","typeLabel":"number"},"wcag":{"type":"string","description":"`AAA`, `AA`, `AA-large` or `fail`.","uniqueKey":"palette.oneOf.0.onPairs.items.[INDEX].wcag","typeLabel":"string"},"count":{"type":"integer","description":"How many elements showed this pair.","uniqueKey":"palette.oneOf.0.onPairs.items.[INDEX].count","typeLabel":"integer"}},"uniqueKey":"palette.oneOf.0.onPairs.items.[INDEX]","typeLabel":"object"},"description":"The background and text color pairs that Brandfetch observed on the brand's website, with their contrast. Empty for a palette built from a stored crawl without a new render.","uniqueKey":"palette.oneOf.0.onPairs","typeLabel":"object[]"},"gradients":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer","description":"Position of the gradient, from 1.","uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].rank","typeLabel":"integer"},"type":{"type":"string","description":"`linear`, `radial`, or `conic`.","uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].type","typeLabel":"string"},"angle":{"oneOf":[{"type":"number","description":"The angle of a linear gradient, in degrees. `null` when the stylesheet gives none.","uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].angle.oneOf.0","typeLabel":"number"},{"type":"null","description":"The angle of a linear gradient, in degrees. `null` when the stylesheet gives none.","uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].angle.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].angle","typeLabel":"number | null"},"stops":{"type":"array","description":"The color stops, in order.","items":{"type":"object","properties":{"hex":{"type":"string","description":"Color HEX code. It is also an entry in `colors[]`.","uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].stops.items.[INDEX].hex","typeLabel":"string"},"position":{"oneOf":[{"type":"number","description":"Position of the stop, 0 to 1. `null` when the stylesheet gives none.","uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].stops.items.[INDEX].position.oneOf.0","typeLabel":"number"},{"type":"null","description":"Position of the stop, 0 to 1. `null` when the stylesheet gives none.","uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].stops.items.[INDEX].position.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].stops.items.[INDEX].position","typeLabel":"number | null"}},"uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].stops.items.[INDEX]","typeLabel":"object"},"uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].stops","typeLabel":"object[]"},"css":{"type":"string","description":"The gradient as a CSS value, for example `linear-gradient(90deg, #ff0000 0%, #0000ff 100%)`.","uniqueKey":"palette.oneOf.0.gradients.items.[INDEX].css","typeLabel":"string"}},"uniqueKey":"palette.oneOf.0.gradients.items.[INDEX]","typeLabel":"object"},"description":"Gradients from the brand's stylesheets that use a brand color, at most four. Every stop color is also an entry in `colors[]`, with `rank: null` when it is not a brand color.","uniqueKey":"palette.oneOf.0.gradients","typeLabel":"object[]"},"themes":{"type":"object","description":"The `light` and `dark` themes that the website showed. A theme that Brandfetch did not observe is absent. A palette built from a stored crawl without a new render often has no themes.","properties":{"light":{"type":"object","description":"One theme of the brand's website. Each slot holds a color that the render of this theme showed. A slot that the render did not show is `null`. Every color is also an entry in `colors[]`.","properties":{"background":{"type":"string","description":"The page background color HEX code.","uniqueKey":"palette.oneOf.0.themes.light.background","typeLabel":"string"},"surface":{"oneOf":[{"type":"string","description":"The color HEX code of cards and panels on the page background.","uniqueKey":"palette.oneOf.0.themes.light.surface.oneOf.0","typeLabel":"string"},{"type":"null","description":"The color HEX code of cards and panels on the page background.","uniqueKey":"palette.oneOf.0.themes.light.surface.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.themes.light.surface","typeLabel":"string | null"},"text":{"type":"string","description":"The body text color HEX code.","uniqueKey":"palette.oneOf.0.themes.light.text","typeLabel":"string"},"muted":{"oneOf":[{"type":"string","description":"The color HEX code of secondary text.","uniqueKey":"palette.oneOf.0.themes.light.muted.oneOf.0","typeLabel":"string"},{"type":"null","description":"The color HEX code of secondary text.","uniqueKey":"palette.oneOf.0.themes.light.muted.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.themes.light.muted","typeLabel":"string | null"},"border":{"oneOf":[{"type":"string","description":"The color HEX code of borders and dividers.","uniqueKey":"palette.oneOf.0.themes.light.border.oneOf.0","typeLabel":"string"},{"type":"null","description":"The color HEX code of borders and dividers.","uniqueKey":"palette.oneOf.0.themes.light.border.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.themes.light.border","typeLabel":"string | null"},"accent":{"oneOf":[{"type":"string","description":"The color HEX code of links and buttons in this theme.","uniqueKey":"palette.oneOf.0.themes.light.accent.oneOf.0","typeLabel":"string"},{"type":"null","description":"The color HEX code of links and buttons in this theme.","uniqueKey":"palette.oneOf.0.themes.light.accent.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.themes.light.accent","typeLabel":"string | null"},"contrast":{"type":"number","description":"WCAG contrast ratio between `background` and `text`.","uniqueKey":"palette.oneOf.0.themes.light.contrast","typeLabel":"number"}},"uniqueKey":"palette.oneOf.0.themes.light","typeLabel":"object"},"dark":{"type":"object","description":"One theme of the brand's website. Each slot holds a color that the render of this theme showed. A slot that the render did not show is `null`. Every color is also an entry in `colors[]`.","properties":{"background":{"type":"string","description":"The page background color HEX code.","uniqueKey":"palette.oneOf.0.themes.dark.background","typeLabel":"string"},"surface":{"oneOf":[{"type":"string","description":"The color HEX code of cards and panels on the page background.","uniqueKey":"palette.oneOf.0.themes.dark.surface.oneOf.0","typeLabel":"string"},{"type":"null","description":"The color HEX code of cards and panels on the page background.","uniqueKey":"palette.oneOf.0.themes.dark.surface.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.themes.dark.surface","typeLabel":"string | null"},"text":{"type":"string","description":"The body text color HEX code.","uniqueKey":"palette.oneOf.0.themes.dark.text","typeLabel":"string"},"muted":{"oneOf":[{"type":"string","description":"The color HEX code of secondary text.","uniqueKey":"palette.oneOf.0.themes.dark.muted.oneOf.0","typeLabel":"string"},{"type":"null","description":"The color HEX code of secondary text.","uniqueKey":"palette.oneOf.0.themes.dark.muted.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.themes.dark.muted","typeLabel":"string | null"},"border":{"oneOf":[{"type":"string","description":"The color HEX code of borders and dividers.","uniqueKey":"palette.oneOf.0.themes.dark.border.oneOf.0","typeLabel":"string"},{"type":"null","description":"The color HEX code of borders and dividers.","uniqueKey":"palette.oneOf.0.themes.dark.border.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.themes.dark.border","typeLabel":"string | null"},"accent":{"oneOf":[{"type":"string","description":"The color HEX code of links and buttons in this theme.","uniqueKey":"palette.oneOf.0.themes.dark.accent.oneOf.0","typeLabel":"string"},{"type":"null","description":"The color HEX code of links and buttons in this theme.","uniqueKey":"palette.oneOf.0.themes.dark.accent.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette.oneOf.0.themes.dark.accent","typeLabel":"string | null"},"contrast":{"type":"number","description":"WCAG contrast ratio between `background` and `text`.","uniqueKey":"palette.oneOf.0.themes.dark.contrast","typeLabel":"number"}},"uniqueKey":"palette.oneOf.0.themes.dark","typeLabel":"object"}},"uniqueKey":"palette.oneOf.0.themes","typeLabel":"object"}},"uniqueKey":"palette.oneOf.0","typeLabel":"object"},{"type":"null","description":"The brand's color palette. Present only when the request sets `palette=true` or `palette=1`. When a brand has no palette yet, the first request builds one from the brand's last crawl without a new render. Then `themes` and `onPairs` can be empty until the next crawl. When Brandfetch finds no color that it can defend as the brand's color, no color has the role `primary`.","properties":{"colors":{"type":"array","items":{"type":"object","properties":{"hex":{"type":"string","description":"Color HEX code.","nullable":false},"name":{"oneOf":[{"type":"string","description":"Name of the closest named color. Uses the same list as `colors[].name`, so the same HEX code has the same name everywhere."},{"type":"null","description":"Name of the closest named color. Uses the same list as `colors[].name`, so the same HEX code has the same name everywhere."}]},"role":{"type":"string","description":"What the color does for the brand. Possible values: `primary`, `secondary`, `accent`, `background`, `surface`, `text`, `muted`, `border`, `other`.","nullable":false},"context":{"type":"string","description":"Where Brandfetch observed the color. `identity` for colors of the brand's mark and identity, `interface` for colors that structure its website, `both` for colors that do both.","nullable":false},"rank":{"oneOf":[{"type":"integer","description":"Position of the color in the palette, from 1. `null` for a color that a theme, gradient, on-pair, or logo references but that does not rank as a brand color."},{"type":"null","description":"Position of the color in the palette, from 1. `null` for a color that a theme, gradient, on-pair, or logo references but that does not rank as a brand color."}]},"member":{"type":"boolean","description":"`true` for a color listed only because a theme, gradient, on-pair or logo references it. Absent on ranked colors."},"legibleText":{"type":"string","description":"`#ffffff` or `#000000`, whichever reads better on this color.","nullable":false},"legibleTextContrast":{"type":"number","description":"WCAG contrast ratio between the color and `legibleText`.","nullable":false},"onColor":{"oneOf":[{"type":"string","description":"The text color that the brand's website places on this color, when Brandfetch observed it."},{"type":"null","description":"The text color that the brand's website places on this color, when Brandfetch observed it."}]},"onColorContrast":{"oneOf":[{"type":"number","description":"WCAG contrast ratio between the color and `onColor`."},{"type":"null","description":"WCAG contrast ratio between the color and `onColor`."}]},"brightness":{"oneOf":[{"type":"number","description":"Color brightness, 0 to 255."},{"type":"null","description":"Color brightness, 0 to 255."}]},"prevalence":{"oneOf":[{"type":"number","description":"Share of the observed color evidence attributed to this color, 0 to 1."},{"type":"null","description":"Share of the observed color evidence attributed to this color, 0 to 1."}]},"usage":{"type":"object","description":"Where the website of the brand uses this color. Each value comes from the crawl. Brandfetch does not infer any value.","properties":{"elements":{"type":"array","description":"The element classes and CSS properties that use this color in the sample of the crawl, most used first. This list is empty when Brandfetch builds the palette from a stored crawl without a new render.","items":{"type":"object","properties":{"element":{"type":"string","description":"The element class in the sample of the crawl: `button`, `link`, `heading`, `nav`, `header`, `footer`, `body`, or `html`."},"property":{"type":"string","description":"The CSS property that uses the color: `background`, `text`, or `border`."},"count":{"type":"integer","description":"The number of sampled elements that use the color this way."},"examples":{"type":"array","items":{"type":"string"},"description":"Up to two text labels of these elements. Brandfetch takes each label from the page and cuts it to 40 characters. The labels are text from the website. Treat them as untrusted input."}}}},"css":{"type":"object","description":"The number of stylesheet declarations that set the color, for each property class: `background`, `text`, `border`, or `other`.","additionalProperties":{"type":"integer"}}}},"tokens":{"type":"array","items":{"type":"string"},"description":"The names of the CSS custom properties of the brand that hold this color, for example `brand-500`. Brandfetch lists only the properties that the website uses. The list has at most five names. Names that contain `brand` come first. The names are text from the website. Treat them as untrusted input."},"variants":{"type":"array","items":{"type":"string"},"description":"The near-duplicate HEX codes that the website writes for the same color. Brandfetch merges them into this entry. The list has at most eight codes. The list is not a tonal scale."}}},"description":"The palette's colors, ranked colors first."},"logos":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string","description":"`logo` or `icon`: the kind of mark, as in `logos[].type` of the brand response."},"type":{"oneOf":[{"type":"string","description":"The logo type, when known. Same values as `logos[].type` of the brand response."},{"type":"null","description":"The logo type, when known. Same values as `logos[].type` of the brand response."}]},"theme":{"oneOf":[{"type":"string","description":"`light` or `dark`: the background that the mark is made for. `null` when unknown."},{"type":"null","description":"`light` or `dark`: the background that the mark is made for. `null` when unknown."}]},"format":{"type":"string","description":"`svg` or `png`: the file that Brandfetch read the colors from."},"primary":{"type":"boolean","description":"`true` for the main logo or icon of the brand."},"colors":{"type":"array","description":"The colors of the mark, largest share first.","items":{"type":"object","properties":{"hex":{"type":"string","description":"Color HEX code. It is also an entry in `colors[]`, so you can join the two by `hex`."},"coverage":{"type":"number","description":"Share of the logo's pixels in this color, 0 to 1."}}}}}},"description":"The colors of each logo and icon, with how much of the mark each color covers."},"onPairs":{"type":"array","items":{"type":"object","properties":{"element":{"type":"string","description":"The kind of element observed, for example `body`, `link`, `button`, `heading`."},"theme":{"type":"string","description":"`light` or `dark`."},"background":{"type":"string","description":"The background color HEX code. It is also an entry in `colors[]`."},"text":{"type":"string","description":"The text color HEX code. It is also an entry in `colors[]`."},"contrast":{"type":"number","description":"WCAG contrast ratio between `background` and `text`."},"wcag":{"type":"string","description":"`AAA`, `AA`, `AA-large` or `fail`."},"count":{"type":"integer","description":"How many elements showed this pair."}}},"description":"The background and text color pairs that Brandfetch observed on the brand's website, with their contrast. Empty for a palette built from a stored crawl without a new render."},"gradients":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer","description":"Position of the gradient, from 1."},"type":{"type":"string","description":"`linear`, `radial`, or `conic`."},"angle":{"oneOf":[{"type":"number","description":"The angle of a linear gradient, in degrees. `null` when the stylesheet gives none."},{"type":"null","description":"The angle of a linear gradient, in degrees. `null` when the stylesheet gives none."}]},"stops":{"type":"array","description":"The color stops, in order.","items":{"type":"object","properties":{"hex":{"type":"string","description":"Color HEX code. It is also an entry in `colors[]`."},"position":{"oneOf":[{"type":"number","description":"Position of the stop, 0 to 1. `null` when the stylesheet gives none."},{"type":"null","description":"Position of the stop, 0 to 1. `null` when the stylesheet gives none."}]}}}},"css":{"type":"string","description":"The gradient as a CSS value, for example `linear-gradient(90deg, #ff0000 0%, #0000ff 100%)`."}}},"description":"Gradients from the brand's stylesheets that use a brand color, at most four. Every stop color is also an entry in `colors[]`, with `rank: null` when it is not a brand color."},"themes":{"type":"object","description":"The `light` and `dark` themes that the website showed. A theme that Brandfetch did not observe is absent. A palette built from a stored crawl without a new render often has no themes.","properties":{"light":{"type":"object","description":"One theme of the brand's website. Each slot holds a color that the render of this theme showed. A slot that the render did not show is `null`. Every color is also an entry in `colors[]`.","properties":{"background":{"type":"string","description":"The page background color HEX code."},"surface":{"oneOf":[{"type":"string","description":"The color HEX code of cards and panels on the page background."},{"type":"null","description":"The color HEX code of cards and panels on the page background."}]},"text":{"type":"string","description":"The body text color HEX code."},"muted":{"oneOf":[{"type":"string","description":"The color HEX code of secondary text."},{"type":"null","description":"The color HEX code of secondary text."}]},"border":{"oneOf":[{"type":"string","description":"The color HEX code of borders and dividers."},{"type":"null","description":"The color HEX code of borders and dividers."}]},"accent":{"oneOf":[{"type":"string","description":"The color HEX code of links and buttons in this theme."},{"type":"null","description":"The color HEX code of links and buttons in this theme."}]},"contrast":{"type":"number","description":"WCAG contrast ratio between `background` and `text`."}}},"dark":{"type":"object","description":"One theme of the brand's website. Each slot holds a color that the render of this theme showed. A slot that the render did not show is `null`. Every color is also an entry in `colors[]`.","properties":{"background":{"type":"string","description":"The page background color HEX code."},"surface":{"oneOf":[{"type":"string","description":"The color HEX code of cards and panels on the page background."},{"type":"null","description":"The color HEX code of cards and panels on the page background."}]},"text":{"type":"string","description":"The body text color HEX code."},"muted":{"oneOf":[{"type":"string","description":"The color HEX code of secondary text."},{"type":"null","description":"The color HEX code of secondary text."}]},"border":{"oneOf":[{"type":"string","description":"The color HEX code of borders and dividers."},{"type":"null","description":"The color HEX code of borders and dividers."}]},"accent":{"oneOf":[{"type":"string","description":"The color HEX code of links and buttons in this theme."},{"type":"null","description":"The color HEX code of links and buttons in this theme."}]},"contrast":{"type":"number","description":"WCAG contrast ratio between `background` and `text`."}}}}}},"uniqueKey":"palette.oneOf.1","typeLabel":"null"}],"uniqueKey":"palette","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","name":"\u003cstring>","domain":"\u003cstring>","claimed":true,"description":"\u003cstring>","longDescription":"\u003cstring>","links":[{"name":"twitter","url":"\u003cstring>"}],"logo":"\u003cstring>","symbol":"\u003cstring>","icon":"\u003cstring>","banner":"\u003cstring>","logos":[{"theme":"dark","formats":[{"src":"\u003cstring>","format":"svg","height":123,"width":123,"size":123,"background":"transparent"}],"tags":["\u003cstring>"],"type":"icon"}],"colors":[{"hex":"\u003cstring>","type":"accent","brightness":123}],"fonts":[{"name":"\u003cstring>","type":"title","origin":"google","originId":"\u003cstring>","weights":[{}]}],"images":[{"formats":[{"src":"\u003cstring>","format":"svg","height":123,"width":123,"size":123,"background":"transparent"}],"tags":["\u003cstring>"],"type":"banner","pictureMetadata":{"score":123,"rank":123,"naturalWidth":123,"naturalHeight":123,"alt":"\u003cstring>","sourceUrl":"\u003cstring>","imageCategory":"\u003cstring>","categoryConfidence":123}}],"qualityScore":123,"company":{"employees":1,"financialIdentifiers":{"isin":["\u003cstring>"],"ticker":["\u003cstring>"]},"foundedYear":123,"industries":[{"id":"\u003cstring>","score":123,"slug":"\u003cstring>","name":"\u003cstring>","emoji":"\u003cstring>","parent":[{"id":"\u003cstring>","slug":"\u003cstring>","name":"\u003cstring>","emoji":"\u003cstring>"}]}],"kind":"EDUCATIONAL","location":{"city":"\u003cstring>","country":"\u003cstring>","countryCode":"\u003cstring>","region":"\u003cstring>","state":"\u003cstring>","subregion":"\u003cstring>"}},"isNsfw":true,"urn":"\u003cstring>","screenshot":{"url":"\u003cstring>","capturedAt":"2023-11-07T05:31:56Z"},"palette":{"colors":[{"hex":"\u003cstring>","name":"\u003cstring>","role":"\u003cstring>","context":"\u003cstring>","rank":123,"member":true,"legibleText":"\u003cstring>","legibleTextContrast":123,"onColor":"\u003cstring>","onColorContrast":123,"brightness":123,"prevalence":123,"usage":{"elements":[{"element":"\u003cstring>","property":"\u003cstring>","count":123,"examples":["\u003cstring>"]}],"css":{}},"tokens":["\u003cstring>"],"variants":["\u003cstring>"]}],"logos":[{"asset":"\u003cstring>","type":"\u003cstring>","theme":"\u003cstring>","format":"\u003cstring>","primary":true,"colors":[{"hex":"\u003cstring>","coverage":123}]}],"onPairs":[{"element":"\u003cstring>","theme":"\u003cstring>","background":"\u003cstring>","text":"\u003cstring>","contrast":123,"wcag":"\u003cstring>","count":123}],"gradients":[{"rank":123,"type":"\u003cstring>","angle":123,"stops":[{"hex":"\u003cstring>","position":123}],"css":"\u003cstring>"}],"themes":{"light":{"background":"\u003cstring>","surface":"\u003cstring>","text":"\u003cstring>","muted":"\u003cstring>","border":"\u003cstring>","accent":"\u003cstring>","contrast":123},"dark":{"background":"\u003cstring>","surface":"\u003cstring>","text":"\u003cstring>","muted":"\u003cstring>","border":"\u003cstring>","accent":"\u003cstring>","contrast":123}}}}}},"exampleType":"generated"}},"exampleType":"generated"},"8a82c84a-5e84-45fc-b908-4e9643b9eb48":{"description":"Returned when `cachedOnly=true` and the brand is not yet indexed. The response body is empty. Because live indexing is disabled there is nothing to return, and the request does not count towards your quota. Retry without `cachedOnly` to index the brand live.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"0a8f68ed-16db-41df-b8af-64dc60b57707":{"description":"The request could not be read. `error` says which part: the identifier, the route, the lookup kind, or an email address or URL used as the identifier. A `400` consumes no API credit.","headers":{"x-bf-error":{"description":"Why the request was refused. The same value as `error` in the body.","schema":{"type":"string","enum":["identifier_invalid","route_invalid","lookup_kind_invalid","email_invalid","url_invalid","identifier_ambiguous"]}}},"content":{"application/json":{"schema":{"type":"object","description":"Every refusal the Brand API writes itself. `message` is the text for a person; `error` is the code for your code, and the same value travels in the `x-bf-error` header; `docs` links the table of codes. A `402` is the exception: its body is the payment protocols' own, and only the header carries the code.","required":["message","error","docs"],"properties":{"message":{"type":"string","description":"What happened, written for a person. Do not branch on it.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Why the request was refused. Stable; branch on it. Also in the `x-bf-error` header.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"docs":{"type":"string","format":"uri","enum":["https://docs.brandfetch.com/brand-api/overview#errors"],"isRequired":true,"uniqueKey":"docs","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","error":"\u003cstring>","docs":"https://docs.brandfetch.com/brand-api/overview#errors"}}},"exampleType":"generated"}},"exampleType":"generated"},"1387005b-2992-4938-92b3-6bbfd413ac91":{"description":"The `Authorization` header is present but carries no usable token (`authorization_required`). A request with no credential at all receives a `402` with a payment challenge instead.","headers":{"x-bf-error":{"description":"Why the request was refused. The same value as `error` in the body.","schema":{"type":"string","enum":["authorization_required"]}}},"content":{"application/json":{"schema":{"type":"object","description":"Every refusal the Brand API writes itself. `message` is the text for a person; `error` is the code for your code, and the same value travels in the `x-bf-error` header; `docs` links the table of codes. A `402` is the exception: its body is the payment protocols' own, and only the header carries the code.","required":["message","error","docs"],"properties":{"message":{"type":"string","description":"What happened, written for a person. Do not branch on it.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Why the request was refused. Stable; branch on it. Also in the `x-bf-error` header.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"docs":{"type":"string","format":"uri","enum":["https://docs.brandfetch.com/brand-api/overview#errors"],"isRequired":true,"uniqueKey":"docs","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","error":"\u003cstring>","docs":"https://docs.brandfetch.com/brand-api/overview#errors"}}},"exampleType":"generated"}},"exampleType":"generated"},"fd1cb805-8417-45fd-b444-dab28c07a735":{"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"}},"x-bf-error":{"description":"Only the header names this refusal: the body is the payment protocols' own.","schema":{"type":"string","enum":["payment_required"]}}},"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"},"5c14af5b-7906-43cf-80e9-06929b71d055":{"description":"The credential was refused: the key is unknown or revoked (`api_key_invalid`), the plan includes no Brand API credits (`no_api_credits`), or the key could not be checked just now (`auth_unavailable`, worth a retry).","headers":{"x-bf-error":{"description":"Why the request was refused. The same value as `error` in the body.","schema":{"type":"string","enum":["api_key_invalid","no_api_credits","auth_unavailable"]}}},"content":{"application/json":{"schema":{"type":"object","description":"Every refusal the Brand API writes itself. `message` is the text for a person; `error` is the code for your code, and the same value travels in the `x-bf-error` header; `docs` links the table of codes. A `402` is the exception: its body is the payment protocols' own, and only the header carries the code.","required":["message","error","docs"],"properties":{"message":{"type":"string","description":"What happened, written for a person. Do not branch on it.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Why the request was refused. Stable; branch on it. Also in the `x-bf-error` header.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"docs":{"type":"string","format":"uri","enum":["https://docs.brandfetch.com/brand-api/overview#errors"],"isRequired":true,"uniqueKey":"docs","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","error":"\u003cstring>","docs":"https://docs.brandfetch.com/brand-api/overview#errors"}}},"exampleType":"generated"}},"exampleType":"generated"},"6573d1b7-17cc-41bb-bf60-c151b7965c47":{"description":"Nothing can be served for the identifier. `error` says why: no brand and the crawl found nothing (`brand_not_found`), a ticker, ISIN or crypto symbol we do not know (`identifier_unknown`), the brand was removed or withheld (`brand_removed`, `brand_withheld_nsfw`), the domain is invalid, does not resolve or redirects elsewhere (`domain_invalid`, `domain_unresolvable`, `domain_redirected`), the site could not be read just now (`site_unavailable`), or we are still collecting the brand (`crawl_queued`). Every `404` consumes an API credit. A payment presented with a `404` is settled, except when the response carries `x-bf-error: crawl_queued`: that payment is not charged, the body carries a `payment` object saying so, and the same payment can be presented again for the retry while it is still valid.","headers":{"x-bf-error":{"description":"Why the request was refused. The same value as `error` in the body.","schema":{"type":"string","enum":["brand_not_found","identifier_unknown","brand_removed","brand_withheld_nsfw","crawl_queued","domain_invalid","domain_unresolvable","domain_redirected","site_unavailable"]}}},"content":{"application/json":{"schema":{"type":"object","description":"Every refusal the Brand API writes itself. `message` is the text for a person; `error` is the code for your code, and the same value travels in the `x-bf-error` header; `docs` links the table of codes. A `402` is the exception: its body is the payment protocols' own, and only the header carries the code.","required":["message","error","docs"],"properties":{"message":{"type":"string","description":"What happened, written for a person. Do not branch on it.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Why the request was refused. Stable; branch on it. Also in the `x-bf-error` header.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"docs":{"type":"string","format":"uri","enum":["https://docs.brandfetch.com/brand-api/overview#errors"],"isRequired":true,"uniqueKey":"docs","typeLabel":"enum\u003cstring>"},"payment":{"type":"object","description":"Present on a paid request answered with `x-bf-error: crawl_queued`.","properties":{"charged":{"type":"boolean","enum":[false],"uniqueKey":"payment.charged","typeLabel":"enum\u003cboolean>"},"documentation":{"type":"string","format":"uri","uniqueKey":"payment.documentation","typeLabel":"string\u003curi>"},"message":{"type":"string","uniqueKey":"payment.message","typeLabel":"string"}},"uniqueKey":"payment","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","error":"\u003cstring>","docs":"https://docs.brandfetch.com/brand-api/overview#errors","payment":{"charged":false,"documentation":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"59419506-4da2-4421-b0fb-069f94110355":{"description":"The key's monthly quota is used up (`quota_exceeded`).","headers":{"x-bf-error":{"description":"Why the request was refused. The same value as `error` in the body.","schema":{"type":"string","enum":["quota_exceeded"]}}},"content":{"application/json":{"schema":{"type":"object","description":"Every refusal the Brand API writes itself. `message` is the text for a person; `error` is the code for your code, and the same value travels in the `x-bf-error` header; `docs` links the table of codes. A `402` is the exception: its body is the payment protocols' own, and only the header carries the code.","required":["message","error","docs"],"properties":{"message":{"type":"string","description":"What happened, written for a person. Do not branch on it.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Why the request was refused. Stable; branch on it. Also in the `x-bf-error` header.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"docs":{"type":"string","format":"uri","enum":["https://docs.brandfetch.com/brand-api/overview#errors"],"isRequired":true,"uniqueKey":"docs","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","error":"\u003cstring>","docs":"https://docs.brandfetch.com/brand-api/overview#errors"}}},"exampleType":"generated"}},"exampleType":"generated"},"72a48335-848b-4c3e-b5e0-76fbf8e1c598":{"description":"A failure on our side (`internal_error`). Retry; nothing in the request caused it.","headers":{"x-bf-error":{"description":"Why the request was refused. The same value as `error` in the body.","schema":{"type":"string","enum":["internal_error"]}}},"content":{"application/json":{"schema":{"type":"object","description":"Every refusal the Brand API writes itself. `message` is the text for a person; `error` is the code for your code, and the same value travels in the `x-bf-error` header; `docs` links the table of codes. A `402` is the exception: its body is the payment protocols' own, and only the header carries the code.","required":["message","error","docs"],"properties":{"message":{"type":"string","description":"What happened, written for a person. Do not branch on it.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Why the request was refused. Stable; branch on it. Also in the `x-bf-error` header.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"docs":{"type":"string","format":"uri","enum":["https://docs.brandfetch.com/brand-api/overview#errors"],"isRequired":true,"uniqueKey":"docs","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","error":"\u003cstring>","docs":"https://docs.brandfetch.com/brand-api/overview#errors"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"71d8b5c5-46c6-4e59-a4f4-59f0af3006c8":{"bearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"}},"e069ded5-24fa-4fbb-b132-251fdd6522e0":{"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"}},"219e5e49-52c8-410f-8ec8-f4a2da8c2c9d":{"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 API (auto-detect) - Brandfetch","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-01T12:23:11.435Z","originalFileLocation":"reference/brand-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 brand data using a Domain, Website URL, Email address, Brand ID, ISIN, Stock/ETF ticker, or Crypto symbol. 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 API (auto-detect) - Brandfetch\">\u003cmeta data-mint-head property=\"og:description\" content=\"Get brand data using a Domain, Website URL, Email address, Brand ID, ISIN, Stock/ETF ticker, or Crypto symbol. 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-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 API (auto-detect) - Brandfetch\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Get brand data using a Domain, Website URL, Email address, Brand ID, ISIN, Stock/ETF ticker, or Crypto symbol. 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-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-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-api#webpage\",\"url\":\"https://docs.brandfetch.com/reference/brand-api\",\"name\":\"Brand API (auto-detect)\",\"description\":\"Get brand data using a Domain, Website URL, Email address, Brand ID, ISIN, Stock/ETF ticker, or Crypto symbol. 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-01T12:23:11.435Z\",\"isPartOf\":{\"@id\":\"https://docs.brandfetch.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.brandfetch.com/reference/brand-api#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.brandfetch.com/reference/brand-api#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Brand API\",\"item\":\"https://docs.brandfetch.com/reference/brand-api-domain\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Brand API (auto-detect)\",\"item\":\"https://docs.brandfetch.com/reference/brand-api\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.brandfetch.com/reference/brand-api#apireference\",\"headline\":\"Brand API (auto-detect)\",\"name\":\"Brand API (auto-detect)\",\"description\":\"Get brand data using a Domain, Website URL, Email address, Brand ID, ISIN, Stock/ETF ticker, or Crypto symbol. 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-api\",\"mainEntityOfPage\":{\"@id\":\"https://docs.brandfetch.com/reference/brand-api#webpage\"},\"image\":\"https://developers.brandfetch.com/og_docs.webp\",\"dateModified\":\"2026-10-01T12:23:11.435Z\",\"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}","description":"Get brand data using a crypto symbol. 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-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","description":"Send up to 100 identifiers. Get one result per identifier, in the order you sent them. Each identifier is answered the way `GET /v2/brands/{identifier}` answers it.\n\nOne difference: a batch never crawls while you wait. A brand that is not indexed yet is queued for indexing and answered `202`. Request it again later.\n\nEach identifier answered `200` uses one API credit. Every other result is free, `404` included. An identifier repeated in one request is charged once.\n\nAvailable on paid plans and with prepaid credits. Authenticate with an API key sent as `Authorization: Bearer \u003ckey>`.","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}","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}","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 API (auto-detect) - Brandfetch","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}