# Company Logo & Brand Kit from Domain: Clearbit Alternative (`maxforreal/domain-logo-brand-kit`) Actor

Get company logos, icons, brand colors, name, description and social links from any domain. A Clearbit Logo API alternative for CRM enrichment. No API key, no login.

- **URL**: https://apify.com/maxforreal/domain-logo-brand-kit.md
- **Developed by:** [Tinker](https://apify.com/maxforreal) (community)
- **Categories:** Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Company Logo & Brand Kit from Domain (Clearbit Logo API alternative)

Give this Actor a list of company domains and get back each company's logo, square icon, favicon, brand colors, name, description and social profile links. It is a drop-in replacement for the free Clearbit Logo API (`logo.clearbit.com`), which shut down in December 2025. There is no API key to manage and no subscription: you paste domains (or website URLs, or email addresses) and get one clean record per company. It reads only each company's own public homepage, with at most 3 requests per domain, and never logs in anywhere.

### What data you get

| Field | Type | Description |
|---|---|---|
| `domain` | string | Normalized domain, for example `stripe.com` |
| `input` | string | The value you supplied (domain, URL or email) |
| `status` | string | `ok`, `robots_disallowed`, `fetch_failed`, `blocked`, `http_error`, `not_html`, `no_logo_found` or `invalid_input` |
| `error` | string | Plain-English reason when status is not `ok` |
| `companyName` | string | From `og:site_name`, schema.org Organization, app name or the page title |
| `title` / `description` | string | Homepage title and meta description |
| `language` | string | Homepage language, for example `en-US` |
| `logoUrl` | string | Best logo (absolute URL). SVG first by default, then the largest raster image |
| `logoFormat` / `logoSource` | string | `svg`, `png`, `jpg`, `webp`, `ico`; where it was found (`header-img`, `schema-org-logo`, `inline-svg`, `apple-touch-icon`, `manifest-icon`, ...) |
| `logoWidth` / `logoHeight` | number | Size when the site declares it |
| `iconUrl` / `iconFormat` / `iconSize` | string / string / number | Best square icon (apple-touch-icon, manifest icon, SVG favicon), good for avatars in a CRM |
| `faviconUrl` | string | Classic small favicon |
| `ogImageUrl` | string | Social sharing image (`og:image`) |
| `logoCandidates` | array | Every logo and icon found, ranked: url, source, type (logo, icon, social-image), format, width, height, score |
| `primaryColor` | string | Main brand color as hex |
| `brandColors` | array | Up to 8 brand colors as hex, best first |
| `themeColor` | string | `<meta name="theme-color">` |
| `manifestThemeColor` / `manifestBackgroundColor` | string | Colors from the web app manifest |
| `dominantColors` | array | Dominant colors of the logo or icon with their share (0 to 1) |
| `dominantColorsFrom` | string | Which image the dominant colors were read from |
| `linkedinUrl`, `xUrl`, `facebookUrl`, `instagramUrl`, `youtubeUrl`, `githubUrl` | string | Company social profiles linked from the homepage or its schema.org data |
| `httpStatus` / `finalUrl` | number / string | Homepage status code and URL after redirects |
| `requestsMade` | number | HTTP requests used for this domain, robots.txt included |
| `summary` | string | One-line plain-text summary, handy for LLMs and AI tools |
| `sourceUrl` / `scrapedAt` | string | Homepage URL that was read, and ISO timestamp |

Inline SVG logos (drawn directly in the page instead of linked as a file) are returned as a `data:image/svg+xml;base64,...` URI that works in an `<img src>`.

### How to use

1. Paste your domains into **Domains**, one per line. Full URLs (`https://www.stripe.com/pricing`) and email addresses (`jane@stripe.com`) work too, and duplicates are removed.
2. Pick a **Preferred logo format**. Keep "SVG first" for websites and apps. Choose "PNG first" if your CRM, email tool or spreadsheet cannot show SVG; you then get a raster logo or a large PNG icon.
3. Set **Max domains** to the size of your list (default 50) and run.

Example input:

```json
{
  "domains": ["stripe.com", "https://www.notion.so", "jane@shopify.com", "hubspot.com"],
  "preferredFormat": "svg",
  "includeColors": true,
  "includeSocialLinks": true,
  "maxItems": 1000
}
```

You can call it from the Apify API, Make, Zapier, n8n or any HTTP client, and download results as JSON, CSV or Excel. To replace a `logo.clearbit.com/<domain>` call in your code, read `logoUrl` (or `iconUrl` for a square avatar) from the dataset.

### Sample output

A real record from a local test run (`logoCandidates` shortened to 4 items):

```json
{
  "input": "jane@shopify.com",
  "domain": "shopify.com",
  "status": "ok",
  "error": null,
  "httpStatus": 200,
  "finalUrl": "https://www.shopify.com/",
  "companyName": "Shopify",
  "title": "Shopify: The All-in-One Commerce Platform for Businesses - Shopify",
  "description": "Try Shopify free. Build or grow your business fast with AI. Get more than ecommerce software with tools to manage every part of your business.",
  "language": "en",
  "logoUrl": "https://cdn.shopify.com/b/shopify-brochure2-assets/d9340911ca8c679b148dd4a205ad2ffa.svg",
  "logoFormat": "svg",
  "logoSource": "header-img",
  "logoWidth": null,
  "logoHeight": null,
  "iconUrl": "https://cdn.shopify.com/b/shopify-brochure2-assets/c97c60ca19c64a8b5378d9f9e971f7bd.png",
  "iconFormat": "png",
  "iconSize": null,
  "faviconUrl": "https://cdn.shopify.com/b/shopify-brochure2-assets/61cc781fe73f11e9d4bd160d27cc627b.png",
  "ogImageUrl": "https://cdn.shopify.com/b/shopify-brochure2-assets/d617483c5e5cdd01ae8b4f2571c76f34.png?originalWidth=2400&originalHeight=1260",
  "logoCandidates": [
    {
      "url": "https://cdn.shopify.com/b/shopify-brochure2-assets/d9340911ca8c679b148dd4a205ad2ffa.svg",
      "source": "header-img",
      "type": "logo",
      "format": "svg",
      "width": null,
      "height": null,
      "score": 108
    },
    {
      "url": "https://cdn.shopify.com/shopifycloud/brochure/assets/brand-assets/shopify-logo-shopping-bag-full-color-66166b2e55d67988b56b4bd28b63c271e2b9713358cb723070a92bde17ad7d63.svg",
      "source": "header-img",
      "type": "logo",
      "format": "svg",
      "width": null,
      "height": null,
      "score": 98.5
    },
    {
      "url": "https://cdn.shopify.com/shopifycloud/brochure/assets/brand-assets/shopify-logo-primary-logo-456baa801ee66a0a435671082365958316831c9960c480451dd0330bcdae304f.svg",
      "source": "schema-org-logo",
      "type": "logo",
      "format": "svg",
      "width": null,
      "height": null,
      "score": 94
    },
    {
      "url": "https://cdn.shopify.com/b/shopify-brochure2-assets/c97c60ca19c64a8b5378d9f9e971f7bd.png",
      "source": "apple-touch-icon",
      "type": "icon",
      "format": "png",
      "width": null,
      "height": null,
      "score": 39
    }
  ],
  "primaryColor": "#95bf47",
  "themeColor": null,
  "manifestThemeColor": null,
  "manifestBackgroundColor": null,
  "brandColors": [
    "#95bf47",
    "#5e8e3e",
    "#ffffff"
  ],
  "dominantColors": [
    {
      "hex": "#95bf47",
      "share": 0.333
    },
    {
      "hex": "#5e8e3e",
      "share": 0.333
    },
    {
      "hex": "#ffffff",
      "share": 0.333
    }
  ],
  "dominantColorsFrom": "https://cdn.shopify.com/b/shopify-brochure2-assets/d9340911ca8c679b148dd4a205ad2ffa.svg",
  "linkedinUrl": "https://www.linkedin.com/company/shopify",
  "xUrl": "https://x.com/Shopify",
  "facebookUrl": "https://www.facebook.com/shopify",
  "instagramUrl": "https://www.instagram.com/shopify",
  "youtubeUrl": "https://www.youtube.com/user/shopify",
  "githubUrl": "https://github.com/Shopify",
  "requestsMade": 3,
  "summary": "Shopify (shopify.com), logo SVG from header-img, icon PNG, primary color #95bf47, 6 social profiles.",
  "sourceUrl": "https://shopify.com/",
  "scrapedAt": "2026-10-26T19:00:51.718Z"
}
```

### Pricing

Pay per result: **$2 per 1,000 domains** ($0.002 per domain), plus a small fee per run start. You only pay for what you use, and you only pay for domains that return data (status `ok`). Domains that fail, do not resolve or are skipped because of robots.txt are still listed in the dataset with the reason, free of charge. No monthly plan and no API key. Set a maximum cost per run in Apify and the Actor stops cleanly when it is reached.

### Use cases

- **Clearbit Logo API replacement**: keep showing company logos in your app, dashboard or internal tools after `logo.clearbit.com` stopped working.
- **CRM enrichment**: add logos, brand colors, descriptions and LinkedIn pages to accounts in HubSpot, Salesforce, Pipedrive or Attio.
- **Lead lists**: turn a list of email addresses or websites into company names, logos and social profiles for outreach and lead scoring.
- **Sales and marketing tools**: show customer logos in proposals, case study pages, "trusted by" sections and pitch decks.
- **Personalized design**: theme dashboards, onboarding screens or generated documents with each customer's own brand colors.
- **AI agents and MCP**: the flat fields and the `summary` line are easy for LLMs to use, so your AI tools can look up a company's brand kit on demand.

### FAQ

**Is it a real Clearbit Logo API alternative?**
Yes for most uses. Clearbit returned one hosted image per domain. This Actor returns direct URLs to the logo and icon files the company publishes on its own website, plus colors, name and social links. It runs as a batch job instead of an image URL you hotlink, so store the results in your own database or CRM.

**Do I need an API key or account with any logo service?**
No. The Actor reads each company's own public homepage. No third-party logo or enrichment service is used.

**How many requests does it make per domain?**
One request to `robots.txt`, one to the homepage (redirects followed), and at most two small extra files when needed: the web app manifest, `/favicon.ico` or one logo image to read colors from. Turn off **Include brand colors** to save the image request.

**Is it legal?**
The Actor only reads public pages that anyone can see without logging in: the homepage and the icon files it links to. It checks each site's robots.txt first and skips the domain (status `robots_disallowed`) when the site asks crawlers not to fetch its homepage. It does not log in, solve CAPTCHAs or bypass any protection. Logos are trademarks of their owners; you are responsible for how you use them and for following each site's terms and the laws that apply to you.

**Why is a domain marked `blocked` or `fetch_failed`?**
`blocked` means the site answered with 403, 429 or 503, usually bot protection. `fetch_failed` means the domain does not resolve, refused the connection or did not answer within 15 seconds. These records are not charged.

**Why is the logo white?**
Many sites show a white logo on a dark header. The Actor returns what the site uses on its homepage. Check `logoCandidates` for other versions, or use `iconUrl`, which is usually the full-color mark.

**Do I need a proxy?**
Usually not. Each domain is a different website and gets only a few requests.

### Limitations

- No browser is used, so logos that only appear after JavaScript runs may be missed. In that case you still get the icon, favicon and social image from the page head.
- Image sizes are only reported when the site declares them.
- Dominant colors are read from PNG, ICO and SVG files. JPG and WebP logos are not decoded; theme and manifest colors are still returned.
- Social links are only found when the homepage links to them.
- The Actor returns URLs, it does not store copies of the images.

# Actor input Schema

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

Company domains to look up, one per line. You can also paste full URLs (https://www.stripe.com/pricing) or email addresses (jane@stripe.com); the domain is taken from them. Duplicates are removed.

## `preferredFormat` (type: `string`):

Which logo to pick as logoUrl when a site offers several. SVG is sharp at any size. Choose PNG if your CRM, email tool or spreadsheet cannot show SVG. All candidates are always listed in logoCandidates.

## `includeColors` (type: `boolean`):

Add brand colors: theme-color, web manifest colors, and the dominant colors of the logo or icon. May use one extra small image request per domain.

## `includeSocialLinks` (type: `boolean`):

Add the company's LinkedIn, X (Twitter), Facebook, Instagram, YouTube and GitHub links found on the homepage.

## `maxItems` (type: `integer`):

Maximum number of domains to process in this run. Raise it for big lists.

## `proxyConfiguration` (type: `object`):

Optional. Most company websites work without a proxy.

## Actor input object example

```json
{
  "domains": [
    "apify.com",
    "stripe.com",
    "github.com",
    "shopify.com",
    "notion.so"
  ],
  "preferredFormat": "svg",
  "includeColors": true,
  "includeSocialLinks": true,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All items saved by this run (table view: overview).

# 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": [
        "apify.com",
        "stripe.com",
        "github.com",
        "shopify.com",
        "notion.so"
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("maxforreal/domain-logo-brand-kit").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": [
        "apify.com",
        "stripe.com",
        "github.com",
        "shopify.com",
        "notion.so",
    ],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("maxforreal/domain-logo-brand-kit").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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": [
    "apify.com",
    "stripe.com",
    "github.com",
    "shopify.com",
    "notion.so"
  ],
  "maxItems": 50
}' |
apify call maxforreal/domain-logo-brand-kit --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maxforreal/domain-logo-brand-kit"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3UnfX247xdcANlO9p/builds/59SsMOOfdredXJ2l2/openapi.json
