# Company Logo & Brand Asset Scraper (`scrapemint/company-logo-scraper`) Actor

Bulk domain-to-logo: give it company domains and get each site's logo, icon set, og image, theme color and site name, with the best logo verified as reachable. The keyless replacement for the retired Clearbit Logo API. Pay only for domains where a logo is found.

- **URL**: https://apify.com/scrapemint/company-logo-scraper.md
- **Developed by:** [Ken M](https://apify.com/scrapemint) (community)
- **Categories:** Business, Marketing
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Company Logo & Brand Asset Scraper

Bulk domain-to-logo enrichment: paste a list of company domains and get each site's logo, full icon set, social-share image, theme color and site name - with the picked logo verified to actually load. The keyless replacement for the retired Clearbit Logo API. No login, no browser, and you pay only for domains where assets are found.

### What you get

One row per domain:

- **logoUrl** - the best available brand mark, picked in quality order: the site's own JSON-LD Organization logo, og:logo, the largest apple-touch-icon, the largest declared icon, then /favicon.ico
- **logoSource**, **logoContentType** and **logoVerified** - where it came from and proof it loads
- the full **icon list** with sizes (every size the site declares)
- **ogImage** (the social-share banner), **themeColor**, **siteName** and page title

```json
{
    "domains": ["stripe.com", "notion.so", "shopify.com"],
    "verifyLogo": true
}
```

### Verification

With **verifyLogo** on (default), the actor fetches each best-pick logo and falls back to the next candidate if it does not load - so a charged row carries a working image URL, not a dead link. Blank favicon suppressors (`data:,`) and HTML-serving 200s are rejected.

### Who uses this

- **CRM and sales teams**: logos next to your accounts and leads - enrich the lists you pull with our lead scrapers.
- **Product builders and directories**: display company marks without a paid brand API subscription.
- **Marketplaces and fintechs**: merchant and counterparty logos at onboarding.
- **Agencies**: brand assets for pitch decks and competitor audits, in bulk.

Pairs with our Website Contact Scraper (emails, phones, socials for the same domains) and Website Tech Stack Detector.

### Pricing

A small fee only for domains where a logo or og image was found. Unreachable domains and pages with no discoverable assets are free note rows, and the first 2 chargeable rows of every run are free.

### Notes

- Assets are extracted from what each site itself declares (JSON-LD, meta tags, link icons) - one or two plain HTTP requests per domain.
- SVG logos are returned when the site publishes them (JSON-LD logos often are); icons are typically PNG.
- Logo URLs point at the site's own servers or CDN. Hotlink them or download them on your side as your use case requires; trademark rights stay with their owners.

# Actor input Schema

## `domains` (type: `array`):

Company domains or website URLs, one per line ("stripe.com", "https://notion.so"). Protocol and paths are stripped automatically.

## `verifyLogo` (type: `boolean`):

Fetch each best-pick logo to confirm it actually loads, and fall back to the next candidate if it does not. Adds one small request per domain; recommended when the logos go straight into a product or CRM.

## `includeAllIcons` (type: `boolean`):

Include every icon the site declares (all sizes) in each row, not just the best pick. Turn off for smaller rows.

## `maxRows` (type: `integer`):

Stop after this many domains.

## Actor input object example

```json
{
  "domains": [
    "stripe.com",
    "notion.so",
    "shopify.com"
  ],
  "verifyLogo": true,
  "includeAllIcons": true,
  "maxRows": 1000
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "domains": [
        "stripe.com",
        "notion.so",
        "shopify.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/company-logo-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "domains": [
        "stripe.com",
        "notion.so",
        "shopify.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/company-logo-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "domains": [
    "stripe.com",
    "notion.so",
    "shopify.com"
  ]
}' |
apify call scrapemint/company-logo-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapemint/company-logo-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/aT0T4sHKgGxGmm8jH/builds/Mf5MmaicplBtrH4LI/openapi.json
