Skip to content
/api/v1/tickers/logos/domains

Batch lookup of website domains and logo URLs for multiple tickers.

Batch lookup of website domains and logo URLs for multiple tickers. Returns a map of symbol → {domain, logo} for all found tickers.

5 tokensSince v1.0.0

Why use this

Batch company logo lookup for portfolio or list views.

Common use case

Loading logos for all tickers in a watchlist or portfolio table in a single request instead of N individual calls.

Batch logo/domain lookup — accepts up to 200 comma-separated tickers and returns a map of symbol → { symbol, domain, logo }. The right entry point for: portfolio-table logo loading, watchlist row icons, search-result thumbnails on autocomplete dropdowns. One batch call replaces up to 200 individual /tickers/logos/domain/{symbol} calls (5-token vs 200-token cost). Unknown tickers are silently dropped from the domains map and surfaced in meta.missing[] so a single bad ticker doesn't fail the batch. For real-time post-autocomplete icon-loading on <50-ticker result sets, the per-call endpoint can be slightly cheaper if you only need one or two icons. Pair with GET /api/v1/tickers/autocomplete for the autocomplete-then-batch-load logos pattern.

Parameters

NameInRequiredDefaultAllowedDescriptionExample
symbolsqueryrequiredComma-separated ticker symbols (canonical hyphen form). Server normalizes each. Max 200 per call. For larger universes (full-watchlist >200) chunk client-side. Unknown tickers are silently dropped from the response (NOT 404'd) so a single bad ticker doesn't fail the batch.AAPL,MSFT,NVDA,GOOGL

Response schema

FieldTypeNullableDescription
domainsobjectnoMap of `symbol` → `{ symbol, domain, logo }`. Empty object when no requested tickers are found. Order of keys matches the input `symbols` parameter (preserved server-side via ordered iteration). Missing tickers are NOT included in this map — see `meta.missing` for the explicit unfound list.
domains.{symbol}objectnoPer-ticker logo entry. Always 3 sub-fields: `symbol` (canonical hyphen form), `domain` (company website e.g. `apple.com`), `logo` (Google S2 favicon URL at 128×128). For multi-class issuers, both BRK-A and BRK-B map to the same `berkshirehathaway.com` domain.
domains.{symbol}.symbolstringnoTicker in canonical hyphen form (echoed back per-row).
domains.{symbol}.domainstringyesCompany website domain. May be a sibling domain (`abc.xyz` for GOOGL/Alphabet) when the parent corporate site differs from the consumer-facing brand. Null only for issuers in the curated map without a discoverable domain (rare).
domains.{symbol}.logostringyesGoogle S2 favicon URL at 128×128 resolution. Null when `domain` is null.
metaobjectnoResponse metadata: `{ requested: integer, found: integer, missing: array<string> }`. Useful for batch-completeness gauges and client-side fallback rendering for unmapped tickers.
meta.requestedintegernoCount of tickers in the input `symbols` parameter (after server-side normalization + dedup).
meta.foundintegernoCount of tickers that returned a domain. `found ≤ requested`; the difference is in `missing[]`.
meta.missingarraynoArray of canonical-form tickers that had no domain mapping (unknown tickers OR known tickers without curated domain). Use for client-side fallback rendering (e.g. show generic placeholder icon).

Sample response

·
  • "domains":
    • "AAPL":
    • "MSFT":
    • "NVDA":
    • "GOOGL":
    }
  • "meta":
    • "requested": 4
    • "found": 4
    • "missing": []
    }
}

Errors

StatusLabelDescription
200OKRequest succeeded.
400Bad RequestInvalid query, body, or path parameter.
401UnauthorizedMissing or invalid Authorization header / api_Token.
402Payment RequiredInsufficient token balance for this call. Top up
429Too Many RequestsRate limit exceeded for your tier (see /pricing for tier limits). Tier limits
500Server ErrorUnexpected server-side failure. Retry with backoff; report if persistent.

Code samples

curl "https://api.finradar.ai/api/v1/tickers/logos/domains?api_Token=YOUR_API_KEY" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).