Brand API (Brandfetch) · Authentication Profile

Brand Api Authentication

Authentication

Brand API (Brandfetch) secures its APIs with http, apiKey, and oauth2 across 4 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode flow(s).

BrandsLogosBrand AssetsCompany DataFirmographicsBrand ContextMerchant EnrichmentAgent Tools
Methods: http, apiKey, oauth2 Schemes: 4 OAuth flows: authorizationCode API key in: header, query

Security Schemes

bearerAuth http
scheme: bearer · in: header (Authorization)
clientId apiKey
· in: query (c)
mcpOAuth oauth2
· flows: authorizationCode
mcpToken http
scheme: bearer · in: header (Authorization)

Source

Authentication Profile

Raw ↑
generated: '2026-08-14'
method: searched
source: https://docs.brandfetch.com/.well-known/agent-skills/brandfetch/skill.md
sources:
  - openapi/brand-api-brandfetch-openapi.yml
  - https://docs.brandfetch.com/.well-known/agent-skills/brandfetch/skill.md
  - https://docs.brandfetch.com/logo-api/overview
  - https://docs.brandfetch.com/mcp/overview
  - https://developers.brandfetch.com/.well-known/oauth-authorization-server
  - https://mcp.brandfetch.io/.well-known/oauth-protected-resource
note: >-
  The OpenAPI declares only one scheme (http bearer). That is a thin spec, not the whole
  auth model: Brandfetch actually runs THREE distinct credential types across four
  surfaces, and mixing them up is the failure mode Brandfetch itself calls out in its
  published Agent Skill. This file is upgraded from the derived baseline with the docs.
summary:
  types: [http, apiKey, oauth2]
  api_key_in: [header, query]
  oauth2_flows: [authorizationCode]
  surfaces: 4
schemes:
  - name: bearerAuth
    type: http
    scheme: bearer
    in: header
    parameter: Authorization
    format: 'Authorization: Bearer <api_key>'
    applies_to: [Brand API, Brand Context API, Transaction API, Viewer API]
    sources: [openapi/brand-api-brandfetch-openapi.yml]
    declared_on_operations:
      - getBrandData
      - getBrandDataByDomain
      - getBrandDataByTicker
      - getBrandDataByIsin
      - getBrandDataByCrypto
      - getBrandContext
      - getBrandFromTransaction
      - getViewer
  - name: clientId
    type: apiKey
    in: query
    parameter: c
    format: '?c=<client_id>'
    applies_to: [Logo API, Brand Search API]
    secret: false
    sources:
      - openapi/brand-api-brandfetch-openapi.yml
      - https://docs.brandfetch.com/logo-api/overview
    note: >-
      Present in the spec as a required query parameter on searchBrands rather than as a
      securityScheme, which is why the mechanical derive missed it. The Client ID is
      embedded in the `src` of a public <img> tag and is explicitly not a secret — it
      scopes fair-use rate limiting, not authorization. Logo CDN requests additionally
      require a Referer header and a Referrer-Policy of origin, origin-when-cross-origin,
      strict-origin, strict-origin-when-cross-origin or unsafe-url.
  - name: mcpOAuth
    type: oauth2
    applies_to: [MCP server]
    issuer: https://developers.brandfetch.com
    flows:
      - flow: authorizationCode
        authorizationUrl: https://developers.brandfetch.com/oauth/authorize
        tokenUrl: https://developers.brandfetch.com/api/oauth/token
        registrationUrl: https://developers.brandfetch.com/api/oauth/register
        pkce: [S256]
        scopes: {read: Read access to Brandfetch brand data}
    sources:
      - https://developers.brandfetch.com/.well-known/oauth-authorization-server
      - https://mcp.brandfetch.io/.well-known/oauth-protected-resource
    see: scopes/brand-api-scopes.yml
  - name: mcpToken
    type: http
    scheme: bearer
    in: header
    parameter: Authorization
    prefix: 'bf1.'
    applies_to: [MCP server]
    sources: [https://docs.brandfetch.com/mcp/overview]
    note: >-
      Non-interactive fallback for MCP clients that cannot run an OAuth flow (CI,
      scripted agents). Minted in the Keys and MCP section of the developer dashboard.
credential_introspection:
  operation: getViewer
  path: GET /v2/viewer
  returns: 'ViewerApiKeyResponse | ViewerUserResponse — a `type` field says which credential was presented.'
  semantics: '200 = valid credential; 401 = missing/unknown; 403 = revoked key or expired session.'
  note: 'A genuinely useful integration-time affordance most providers do not ship.'
failure_modes:
  - 'Sending a Client ID as a Bearer token (or an API key as ?c=) returns 401 Unauthorized.'
  - 'Logo CDN requests without an acceptable Referrer-Policy can be rate limited or blocked.'
docs: https://docs.brandfetch.com/get-started

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/brand-api-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.