The Logo.dev connector lets your AI agent act in each user's Logo.dev account. Each user connects their own Logo.dev access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 5 tools.
- Tools
- 5
- What they doRead · write · destructive
- 5 · 0 · 05 read0 write0 destructive
- Users sign in with
- Access token
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Logo.dev connection
In AgentKit > Connections, create a Logo.dev connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'logodev'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Logo.dev:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'logodev_get_brand',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "logodev"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Logo.dev:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="logodev_get_brand",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Logo.dev credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toollogodev_get_brandLook up a brand's full profile on Logo.dev from one identifier: a domain, stock ticker, ISIN, crypto symbol or company name.Read-onlyGet Brand
Look up a brand's full profile on Logo.dev from one identifier: a domain, stock ticker, ISIN, crypto symbol or company name. Returns the brand id, name, domain, description, brand colors (hex, RGB and OKLCH, most dominant first), social profile URLs, and the logo, brandmark and social banners as temporary download URLs (valid about 24 hours) with dimensions and format, plus metadata.resolution showing how the identifier was matched. A brand Logo.dev has not indexed yet returns data.status not_indexed with metadata.pending; wait retry_after_seconds and call again (pending responses and retries are not billed). Use this to enrich a company record. Use logodev_get_logo or logodev_get_brandmark when you only need one image, logodev_search_brands to choose between several companies with similar names, and logodev_get_brand_by_id when you already stored the brand id.
Inputs
cryptostring- Crypto token symbol, case-insensitive. Send exactly one of domain, ticker, isin, crypto or name. Example: BTC
domainstring- Company website domain. A subdomain is reduced to its registrable domain, so www.stripe.com looks up stripe.com. Send exactly one of domain, ticker, isin, crypto or name. Example: stripe.com
isinstring- International Securities Identification Number of the company's security, 12 characters, case-insensitive. Send exactly one of domain, ticker, isin, crypto or name. Example: US0378331005
namestring- Company or brand name. Logo.dev resolves it to the top search match, so use logodev_search_brands first when the name could mean several companies. Send exactly one of domain, ticker, isin, crypto or name. Example: Stripe
nosubscribestring- Set to true to skip the automatic webhook subscription to this brand. It only matters when webhooks are turned on for your Logo.dev account; leave it empty otherwise. Example: trueone of
true tickerstring- Stock or ETF ticker symbol, in any case, with no exchange prefix. A bare symbol resolves against US exchanges; for a listing on another exchange add its suffix, such as 7203.T for Tokyo. Send exactly one of domain, ticker, isin, crypto or name. Example: AAPL
logodev_get_brand_by_idGet a brand's full profile on Logo.dev by its brand id.Read-onlyGet Brand by ID
Get a brand's full profile on Logo.dev by its brand id. Returns the same profile as logodev_get_brand: name, domain, description, brand colors, social profile URLs, and logo, brandmark and social banner download URLs (valid about 24 hours). A brand Logo.dev has not indexed yet returns data.status not_indexed with metadata.pending; wait retry_after_seconds and call again (pending responses and retries are not billed). Use this to refresh a brand you already stored, since a brand keeps its id when its domain changes. Use logodev_get_brand to look a brand up by domain, ticker, ISIN, crypto symbol or name. Requires a brand id (data.id) from an earlier logodev_get_brand call.
Inputs
idstringrequired- Logo.dev brand id, the data.id value from a logodev_get_brand response. It starts with brand_. Example: brand_4x0wr3g0000g00400000000004
nosubscribestring- Set to true to skip the automatic webhook subscription to this brand. It only matters when webhooks are turned on for your Logo.dev account; leave it empty otherwise. Example: trueone of
true
logodev_get_brandmarkGet a brand's brandmark, the wide logo lockup with the symbol and wordmark, from Logo.dev using one identifier: a domain, stock ticker, ISIN, crypto symbol or company name.Read-onlyGet Brandmark
Get a brand's brandmark, the wide logo lockup with the symbol and wordmark, from Logo.dev using one identifier: a domain, stock ticker, ISIN, crypto symbol or company name. Returns JSON, not image bytes: a temporary signed download url (valid until expires_at, about 24 hours; append size, format (png, jpg, webp) or theme (light, dark) to it to resize or convert), the brand id, the source width, height, format, transparency and vector flags, an etag and a blurhash placeholder. Returns 404 when the brand has no brandmark. A brand Logo.dev has not indexed yet returns data.status not_indexed with metadata.pending; wait retry_after_seconds and call again (pending responses and retries are not billed). Use this for headers, logo walls and documents that need the full lockup. Use logodev_get_logo for the square logo, and logodev_get_brand for the complete profile.
Inputs
cryptostring- Crypto token symbol, case-insensitive. Send exactly one of domain, ticker, isin, crypto or name. Example: BTC
domainstring- Company website domain. A subdomain is reduced to its registrable domain, so www.stripe.com looks up stripe.com. Send exactly one of domain, ticker, isin, crypto or name. Example: stripe.com
isinstring- International Securities Identification Number of the company's security, 12 characters, case-insensitive. Send exactly one of domain, ticker, isin, crypto or name. Example: US0378331005
namestring- Company or brand name. Logo.dev resolves it to the top search match, so use logodev_search_brands first when the name could mean several companies. Send exactly one of domain, ticker, isin, crypto or name. Example: Stripe
tickerstring- Stock or ETF ticker symbol, in any case, with no exchange prefix. A bare symbol resolves against US exchanges; for a listing on another exchange add its suffix, such as 7203.T for Tokyo. Send exactly one of domain, ticker, isin, crypto or name. Example: AAPL
logodev_get_logoGet a brand's square logo from Logo.dev using one identifier: a domain, stock ticker, ISIN, crypto symbol or company name.Read-onlyGet Logo
Get a brand's square logo from Logo.dev using one identifier: a domain, stock ticker, ISIN, crypto symbol or company name. Returns JSON, not image bytes: a temporary signed download url (valid until expires_at, about 24 hours; append size, format (png, jpg, webp) or theme (light, dark) to it to resize or convert), the brand id, the source width, height, format, transparency and vector flags, an etag that changes when the logo changes, and a blurhash placeholder. Returns 404 when the brand has no logo. A brand Logo.dev has not indexed yet returns data.status not_indexed with metadata.pending; wait retry_after_seconds and call again (pending responses and retries are not billed). Use this when you only need the logo. Use logodev_get_brandmark for the wide logo with the wordmark, and logodev_get_brand when you also need colors, description and social profiles.
Inputs
cryptostring- Crypto token symbol, case-insensitive. Send exactly one of domain, ticker, isin, crypto or name. Example: BTC
domainstring- Company website domain. A subdomain is reduced to its registrable domain, so www.stripe.com looks up stripe.com. Send exactly one of domain, ticker, isin, crypto or name. Example: stripe.com
isinstring- International Securities Identification Number of the company's security, 12 characters, case-insensitive. Send exactly one of domain, ticker, isin, crypto or name. Example: US0378331005
namestring- Company or brand name. Logo.dev resolves it to the top search match, so use logodev_search_brands first when the name could mean several companies. Send exactly one of domain, ticker, isin, crypto or name. Example: Stripe
tickerstring- Stock or ETF ticker symbol, in any case, with no exchange prefix. A bare symbol resolves against US exchanges; for a listing on another exchange add its suffix, such as 7203.T for Tokyo. Send exactly one of domain, ticker, isin, crypto or name. Example: AAPL
logodev_search_brandsSearch Logo.dev for companies by name and return candidate brands, best match first.Read-onlySearch Brands
Search Logo.dev for companies by name and return candidate brands, best match first. Returns up to limit candidates (10 by default, 25 at most), each with name, domain and logo_url, a logo image link signed with your account's publishable key. Returns an empty list when nothing matches. Results are candidates, not brand records, and carry no brand id. Use this to turn a company name into a domain or to suggest companies as someone types. Use logodev_get_brand with the chosen domain for the full profile, or with name to take the top match in one step.
Inputs
qstringrequired- Company or brand name to search for. Example: sweetgreen
limitinteger- Maximum number of candidates to return, from 1 to 25. Defaults to 10. Search is not paginated. Example: 5
methodstring- How to match the query: match searches full names and aliases (the API default, for a submitted query); typeahead matches name prefixes (for suggestions while someone types). Example: typeaheadone of
matchtypeahead
No tools match.