Context.dev Brand Intelligence API

The Brand Intelligence API from Context.dev — 7 operation(s) for brand intelligence.

OpenAPI Specification

contextdev-brand-intelligence-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Context Brand Intelligence API
  description: API for retrieving context data from any website
  version: 1.0.0
servers:
- url: https://api.context.dev/v1
tags:
- name: Brand Intelligence
paths:
  /brand/retrieve:
    get:
      x-hidden: true
      summary: Retrieve brand data by domain
      description: Retrieve logos, backdrops, colors, industry, description, and more from any domain
      security:
      - bearerAuth: []
      tags:
      - Brand Intelligence
      x-mint:
        content: <Badge color="orange">10 Credits</Badge>
      parameters:
      - schema:
          type: string
          minLength: 3
          description: Domain name to retrieve brand data for (e.g., 'example.com', 'google.com'). Cannot be used with name or ticker parameters.
        required: false
        description: Domain name to retrieve brand data for (e.g., 'example.com', 'google.com'). Cannot be used with name or ticker parameters.
        name: domain
        in: query
      - schema:
          type: string
          minLength: 3
          maxLength: 30
          description: Company name to retrieve brand data for (e.g., 'Apple Inc'). Cannot be used with domain or ticker parameters.
        required: false
        description: Company name to retrieve brand data for (e.g., 'Apple Inc'). Cannot be used with domain or ticker parameters.
        name: name
        in: query
      - schema:
          type: string
          minLength: 1
          maxLength: 15
          pattern: ^[A-Za-z0-9.]+$
          description: Stock ticker symbol to retrieve brand data for (e.g., 'AAPL'). Cannot be used with domain or name parameters.
        required: false
        description: Stock ticker symbol to retrieve brand data for (e.g., 'AAPL'). Cannot be used with domain or name parameters.
        name: ticker
        in: query
      - schema:
          $ref: '#/components/schemas/StockExchange'
        required: false
        description: Stock exchange code.
        name: ticker_exchange
        in: query
      - schema:
          allOf:
          - $ref: '#/components/schemas/SupportedLanguage'
          - type:
            - string
            - 'null'
        required: false
        description: Language to force for the retrieved brand data.
        name: force_language
        in: query
      - schema:
          anyOf:
          - type: boolean
          - type: string
            enum:
            - 'true'
            - 'false'
          default: false
          description: Optional parameter to optimize the API call for maximum speed. When set to true, the API will skip time-consuming operations for faster response at the cost of less comprehensive data. Works with all three lookup methods.
        required: false
        description: Optional parameter to optimize the API call for maximum speed. When set to true, the API will skip time-consuming operations for faster response at the cost of less comprehensive data. Works with all three lookup methods.
        name: maxSpeed
        in: query
      - schema:
          type:
          - integer
          - 'null'
          default: 7776000000
          description: Maximum age in milliseconds for cached brand data before the API performs a hard refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms) are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1 year.
        required: false
        description: Maximum age in milliseconds for cached brand data before the API performs a hard refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms) are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1 year.
        name: maxAgeMs
        in: query
      - schema:
          $ref: '#/components/schemas/TimeoutMS'
        required: false
        description: Optional timeout in milliseconds for the request. If the request takes longer than this value, it will be aborted with a 408 status code. Maximum allowed value is 300000ms (5 minutes).
        name: timeoutMS
        in: query
      - $ref: '#/components/parameters/RequestTags'
      responses:
        '200':
          description: Successful response
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandResponse'
        '400':
          description: Bad Request
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                  error_code:
                    type: string
                    enum:
                    - INTERNAL_ERROR
                    - VALID
                    - NOT_FOUND
                    - FORBIDDEN
                    - USAGE_EXCEEDED
                    - RATE_LIMITED
                    - UNAUTHORIZED
                    - DISABLED
                    - INSUFFICIENT_PERMISSIONS
                    - TIMEOUT_EXCEEDS_MAXIMUM
                    - WEBSITE_ACCESS_ERROR
                    - INPUT_VALIDATION_ERROR
                    description: Error code indicating the type of error
                  key_metadata:
                    $ref: '#/components/schemas/KeyMetadata'
        '401':
          description: Unauthorized
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_code:
                    type: string
                    enum:
                    - INTERNAL_ERROR
                    - VALID
                    - NOT_FOUND
                    - FORBIDDEN
                    - USAGE_EXCEEDED
                    - RATE_LIMITED
                    - UNAUTHORIZED
                    - DISABLED
                    - INSUFFICIENT_PERMISSIONS
                    - TIMEOUT_EXCEEDS_MAXIMUM
                    - WEBSITE_ACCESS_ERROR
                    - INPUT_VALIDATION_ERROR
                    description: Error code indicating the type of error
                  key_metadata:
                    $ref: '#/components/schemas/KeyMetadata'
        '408':
          description: Request Timeout
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Timeout error message
                  error_code:
                    type: string
                    enum:
                    - REQUEST_TIMEOUT
                    description: Error code indicating request timeout
                  key_metadata:
                    $ref: '#/components/schemas/KeyMetadata'
        '429':
          $ref: '#/components/responses/RateLimited'
    post:
      summary: Retrieve brand data
      description: 'Retrieve logos, backdrops, colors, industry, description, and more. Provide exactly one lookup identifier in the request body: a domain, company name, email address, stock ticker, transaction descriptor, or direct URL. Note: `by_direct_url` fetches brand data only from the provided URL — not from the entire internet.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrandRetrieveRequest'
            examples:
              domain:
                summary: By domain
                value:
                  type: by_domain
                  domain: stripe.com
              name:
                summary: By name
                value:
                  type: by_name
                  name: Stripe
              email:
                summary: By email
                value:
                  type: by_email
                  email: jane@stripe.com
              ticker:
                summary: By stock
                value:
                  type: by_ticker
                  ticker: AAPL
                  ticker_exchange: NASDAQ
              direct_url:
                summary: By direct URL
                value:
                  type: by_direct_url
                  direct_url: https://stripe.com/enterprise
              transaction:
                summary: By transaction
                value:
                  type: by_transaction
                  transaction_info: SQ *COFFEE SHOP
                  country_gl: us
                  mcc: 5814
                  high_confidence_only: true
      security:
      - bearerAuth: []
      tags:
      - Brand Intelligence
      x-mint:
        content: <Badge color="orange">10 Credits</Badge>
      responses:
        '200':
          description: Successful response
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandResponse'
        '400':
          description: Bad Request
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '408':
          description: Request Timeout
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity - Free email or disposable email detected
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          $ref: '#/components/responses/RateLimited'
      x-codeSamples:
      - lang: JavaScript
        source: "import ContextDev from 'context.dev';\n\nconst client = new ContextDev({\n  apiKey: process.env['CONTEXT_DEV_API_KEY'], // This is the default and can be omitted\n});\n\nconst brand = await client.brand.retrieve({ domain: 'stripe.com', type: 'by_domain' });\n\nconsole.log(brand.brand);"
      - lang: Python
        source: "import os\nfrom context.dev import ContextDev\n\nclient = ContextDev(\n    api_key=os.environ.get(\"CONTEXT_DEV_API_KEY\"),  # This is the default and can be omitted\n)\nbrand = client.brand.retrieve(\n    domain=\"stripe.com\",\n    type=\"by_domain\",\n)\nprint(brand.brand)"
      - lang: Go
        source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/context-dot-dev/context-go-sdk\"\n\t\"github.com/context-dot-dev/context-go-sdk/option\"\n)\n\nfunc main() {\n\tclient := contextdev.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tbrand, err := client.Brand.Get(context.TODO(), contextdev.BrandGetParams{\n\t\tOfByDomain: &contextdev.BrandGetParamsBodyByDomain{\n\t\t\tDomain: \"stripe.com\",\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", brand.Brand)\n}\n"
      - lang: Ruby
        source: 'require "context_dev"


          context_dev = ContextDev::Client.new(api_key: "My API Key")


          brand = context_dev.brand.retrieve(body: {domain: "stripe.com", type: :by_domain})


          puts(brand)'
      - lang: PHP
        source: "<?php\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\nuse ContextDev\\Client;\nuse ContextDev\\Core\\Exceptions\\APIException;\n\n$client = new Client(apiKey: getenv('CONTEXT_DEV_API_KEY') ?: 'My API Key');\n\ntry {\n  $brand = $client->brand->retrieve(\n    domain: 'xxx',\n    type: 'by_transaction',\n    forceLanguage: 'afrikaans',\n    maxAgeMs: 0,\n    maxSpeed: true,\n    tags: ['production', 'team-alpha'],\n    timeoutMs: 1000,\n    name: 'xxx',\n    countryGl: 'country_gl',\n    email: 'dev@stainless.com',\n    ticker: 'ticker',\n    tickerExchange: 'ticker_exchange',\n    directURL: 'https://example.com',\n    transactionInfo: 'xxx',\n    city: 'city',\n    highConfidenceOnly: true,\n    mcc: 'string',\n    phone: 'string',\n  );\n\n  var_dump($brand);\n} catch (APIException $e) {\n  echo $e->getMessage();\n}"
      - lang: CLI
        source: "context-dev brand retrieve \\\n  --api-key 'My API Key' \\\n  --domain xxx \\\n  --type by_domain \\\n  --name xxx \\\n  --email dev@stainless.com \\\n  --ticker ticker \\\n  --direct-url https://example.com \\\n  --transaction-info xxx"
  /brand/retrieve-by-name:
    get:
      x-hidden: true
      summary: Retrieve brand data by company name
      description: Retrieve brand information using a company name.
      security:
      - bearerAuth: []
      tags:
      - Brand Intelligence
      x-mint:
        content: <Badge color="orange">10 Credits</Badge>
      parameters:
      - schema:
          type: string
          minLength: 3
          maxLength: 30
          description: Company name to retrieve brand data for (e.g., 'Apple Inc', 'Microsoft Corporation'). Must be 3-30 characters.
        required: true
        description: Company name to retrieve brand data for (e.g., 'Apple Inc', 'Microsoft Corporation'). Must be 3-30 characters.
        name: name
        in: query
      - schema:
          allOf:
          - $ref: '#/components/schemas/SupportedLanguage'
          - type:
            - string
            - 'null'
        required: false
        description: Language to force for the retrieved brand data.
        name: force_language
        in: query
      - schema:
          anyOf:
          - type: boolean
          - type: string
            enum:
            - 'true'
            - 'false'
          default: false
          description: Optional parameter to optimize the API call for maximum speed. When set to true, the API will skip time-consuming operations for faster response at the cost of less comprehensive data.
        required: false
        description: Optional parameter to optimize the API call for maximum speed. When set to true, the API will skip time-consuming operations for faster response at the cost of less comprehensive data.
        name: maxSpeed
        in: query
      - schema:
          $ref: '#/components/schemas/CountryGL'
        required: false
        description: Two-letter ISO 3166-1 alpha-2 country code (GL parameter) used to localize search.
        name: country_gl
        in: query
      - schema:
          type:
          - integer
          - 'null'
          default: 7776000000
          description: Maximum age in milliseconds for cached brand data before the API performs a hard refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms) are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1 year.
        required: false
        description: Maximum age in milliseconds for cached brand data before the API performs a hard refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms) are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1 year.
        name: maxAgeMs
        in: query
      - schema:
          $ref: '#/components/schemas/TimeoutMS'
        required: false
        description: Optional timeout in milliseconds for the request. If the request takes longer than this value, it will be aborted with a 408 status code. Maximum allowed value is 300000ms (5 minutes).
        name: timeoutMS
        in: query
      - $ref: '#/components/parameters/RequestTags'
      responses:
        '200':
          description: Successful response
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandResponse'
        '400':
          description: Bad Request - Invalid company name or company not found
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '408':
          description: Request Timeout
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          description: Internal Server Error
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /brand/retrieve-by-email:
    get:
      x-hidden: true
      summary: Retrieve brand data by email address
      description: Retrieve brand information using an email address while detecting disposable and free email addresses. Disposable and free email addresses (like gmail.com, yahoo.com) will throw a 422 error.
      security:
      - bearerAuth: []
      tags:
      - Brand Intelligence
      x-mint:
        content: <Badge color="orange">10 Credits</Badge>
      parameters:
      - schema:
          type: string
          minLength: 1
          format: email
          description: Email address to retrieve brand data for (e.g., 'contact@example.com'). The domain will be extracted from the email. Free email providers (gmail.com, yahoo.com, etc.) and disposable email addresses are not allowed.
        required: true
        description: Email address to retrieve brand data for (e.g., 'contact@example.com'). The domain will be extracted from the email. Free email providers (gmail.com, yahoo.com, etc.) and disposable email addresses are not allowed.
        name: email
        in: query
      - schema:
          allOf:
          - $ref: '#/components/schemas/SupportedLanguage'
          - type:
            - string
            - 'null'
        required: false
        description: Language to force for the retrieved brand data.
        name: force_language
        in: query
      - schema:
          anyOf:
          - type: boolean
          - type: string
            enum:
            - 'true'
            - 'false'
          default: false
          description: Optional parameter to optimize the API call for maximum speed. When set to true, the API will skip time-consuming operations for faster response at the cost of less comprehensive data.
        required: false
        description: Optional parameter to optimize the API call for maximum speed. When set to true, the API will skip time-consuming operations for faster response at the cost of less comprehensive data.
        name: maxSpeed
        in: query
      - schema:
          type:
          - integer
          - 'null'
          default: 7776000000
          description: Maximum age in milliseconds for cached brand data before the API performs a hard refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms) are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1 year.
        required: false
        description: Maximum age in milliseconds for cached brand data before the API performs a hard refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms) are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1 year.
        name: maxAgeMs
        in: query
      - schema:
          $ref: '#/components/schemas/TimeoutMS'
        required: false
        description: Optional timeout in milliseconds for the request. If the request takes longer than this value, it will be aborted with a 408 status code. Maximum allowed value is 300000ms (5 minutes).
        name: timeoutMS
        in: query
      - $ref: '#/components/parameters/RequestTags'
      responses:
        '200':
          description: Successful response
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandResponse'
        '400':
          description: Bad Request - Invalid email or domain not found
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '408':
          description: Request Timeout
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity - Free email or disposable email detected
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                  status:
                    type: string
                    description: Status of the response, e.g., 'error'
                  error_code:
                    type: string
                    enum:
                    - FREE_EMAIL_DETECTED
                    - DISPOSABLE_EMAIL_DETECTED
                    description: Error code indicating whether a free email provider or disposable email was detected
                  key_metadata:
                    $ref: '#/components/schemas/KeyMetadata'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          description: Internal Server Error
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /brand/retrieve-by-ticker:
    get:
      x-hidden: true
      summary: Retrieve brand data by stock ticker
      description: Retrieve brand information using a stock ticker symbol.
      security:
      - bearerAuth: []
      tags:
      - Brand Intelligence
      x-mint:
        content: <Badge color="orange">10 Credits</Badge>
      parameters:
      - schema:
          type: string
          minLength: 1
          maxLength: 15
          pattern: ^[A-Za-z0-9.]+$
          description: Stock ticker symbol to retrieve brand data for (e.g., 'AAPL', 'GOOGL', 'BRK.A'). Must be 1-15 characters, letters/numbers/dots only.
        required: true
        description: Stock ticker symbol to retrieve brand data for (e.g., 'AAPL', 'GOOGL', 'BRK.A'). Must be 1-15 characters, letters/numbers/dots only.
        name: ticker
        in: query
      - schema:
          $ref: '#/components/schemas/StockExchange'
        required: false
        description: Stock exchange code.
        name: ticker_exchange
        in: query
      - schema:
          allOf:
          - $ref: '#/components/schemas/SupportedLanguage'
          - type:
            - string
            - 'null'
        required: false
        description: Language to force for the retrieved brand data.
        name: force_language
        in: query
      - schema:
          anyOf:
          - type: boolean
          - type: string
            enum:
            - 'true'
            - 'false'
          default: false
          description: Optional parameter to optimize the API call for maximum speed. When set to true, the API will skip time-consuming operations for faster response at the cost of less comprehensive data.
        required: false
        description: Optional parameter to optimize the API call for maximum speed. When set to true, the API will skip time-consuming operations for faster response at the cost of less comprehensive data.
        name: maxSpeed
        in: query
      - schema:
          type:
          - integer
          - 'null'
          default: 7776000000
          description: Maximum age in milliseconds for cached brand data before the API performs a hard refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms) are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1 year.
        required: false
        description: Maximum age in milliseconds for cached brand data before the API performs a hard refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms) are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1 year.
        name: maxAgeMs
        in: query
      - schema:
          $ref: '#/components/schemas/TimeoutMS'
        required: false
        description: Optional timeout in milliseconds for the request. If the request takes longer than this value, it will be aborted with a 408 status code. Maximum allowed value is 300000ms (5 minutes).
        name: timeoutMS
        in: query
      - $ref: '#/components/parameters/RequestTags'
      responses:
        '200':
          description: Successful response
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandResponse'
        '400':
          description: Bad Request - Invalid ticker or ticker not found
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '408':
          description: Request Timeout
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          description: Internal Server Error
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /brand/retrieve-by-isin:
    get:
      x-hidden: true
      summary: Retrieve brand data by ISIN
      description: 'Retrieve brand information using an ISIN (International Securities Identification Number). '
      security:
      - bearerAuth: []
      tags:
      - Brand Intelligence
      x-mint:
        content: <Badge color="orange">10 Credits</Badge>
      parameters:
      - schema:
          type: string
          minLength: 12
          maxLength: 12
          pattern: ^[A-Z]{2}[A-Z0-9]{9}[0-9]$
          description: 'ISIN (International Securities Identification Number) to retrieve brand data for (e.g., ''AU000000IMD5'', ''US0378331005''). Must be exactly 12 characters: 2 letters followed by 9 alphanumeric characters and ending with a digit.'
        required: true
        description: 'ISIN (International Securities Identification Number) to retrieve brand data for (e.g., ''AU000000IMD5'', ''US0378331005''). Must be exactly 12 characters: 2 letters followed by 9 alphanumeric characters and ending with a digit.'
        name: isin
        in: query
      - schema:
          allOf:
          - $ref: '#/components/schemas/SupportedLanguage'
          - type:
            - string
            - 'null'
        required

# --- truncated at 32 KB (93 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/contextdev/refs/heads/main/openapi/contextdev-brand-intelligence-api-openapi.yml