Skip to main content
Use case prompt
A “which company?” field lets users type a few letters and pick their company from a list of logos. One pick gives your app a clean name and a domain to store, instead of a hand-typed guess. Logo.dev supplies the candidates. Your app decides how many to show, what to store after a pick, and what to do when the company is not in the list. If you are moving from Clearbit’s autocomplete, this field replaces it.

Proxy Search from your server

Search takes your secret key, so the browser calls your route, and your route calls Logo.dev. Use method=typeahead while the user types, because it matches prefixes: st finds Stripe.
api/company-search.ts

Handle every result

A search result is a candidate, not a brand record. To get the full profile after a pick, look up the domain with Brand, as onboarding personalization does.

Render the field

Each candidate carries a ready logo_url, so the list needs no second lookup:
Store the domain with the record. Every later logo is then a URL built from that domain, as in CRM logos.

Test the field

Type st and pick Stripe with the keyboard. Then type a string that matches nothing, and make the route return an error once. Check that the field shows each state and keeps the typed text.

Search

Read every parameter and the response shape for /v2/search.

Onboarding personalization

Prefill a company profile from a work email.