# Website Logo & Brand Asset Extractor (`codescraper/website-logo-extractor`) Actor

Extract primary logos, SVG logos, logo images, favicons, OG images, Twitter images, and all page images from websites. Supports JavaScript-heavy sites, bulk URLs, deep scanning, and concurrent processing. Pay only for successful extractions.

- **URL**: https://apify.com/codescraper/website-logo-extractor.md
- **Developed by:** [CodeScraper](https://apify.com/codescraper) (community)
- **Categories:**
- **Stats:** 4 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 extraction successes

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

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

## ⭐ Website Logo Extractor & Brand Logo Finder

This Apify Actor is a **blazing-fast, intelligent website logo extraction tool** designed to find and extract the official logos, favicons, app icons, and brand images from any website.

It uses advanced HTML parsing, DOM analysis, metadata detection, SVG inspection, and intelligent filtering to identify the **actual website's own brand logo** while avoiding unrelated partner, customer, sponsor, and third-party logos.

> 💲 **Pricing Note:** This Actor uses a **predictable Pay-Per-Event (PPE)** pricing model.
>
> - **Flat Rate:** Check the Actor's current Apify Store pricing for the exact per-website rate.
> - **No API Keys Required:** Simply provide your website URLs and receive structured logo data.
> - **Example:** Process a list of websites and automatically collect their primary logos, favicons, and other brand assets.

***

### 🚀 What It Does

For every website URL or domain provided, the Actor intelligently analyzes the website's HTML, metadata, images, SVGs, and icon declarations to locate the most relevant brand assets.

Instead of simply collecting every `<img>` element, it applies contextual filtering to distinguish the **website's own logo** from unrelated images.

#### 🎨 Extracted Data

The Actor returns structured logo information including:

- **🔗 URL & Domain:** The normalized target website.
- **🏷️ Primary Logo:** The best detected official website logo.
- **🖼️ Favicon:** The website's favicon when available.
- **📱 Apple Touch Icon:** Apple/mobile application icon when available.
- **🎯 All Logos:** Additional valid logo candidates discovered on the website.
- **🔷 SVG Logos:** Strictly filtered SVG logos belonging to the website's own brand.
- **🌐 Source URL:** The page from which the logo was extracted.
- **📊 Extraction Status:** Indicates whether logo extraction was successful.

***

### 🧠 Intelligent Logo Detection

- The Actor does more than simply search for images containing the word `logo`.

- It combines multiple signals to identify the most likely official brand asset.

#### 🔍 Detection Sources

The Actor checks:

- HTML `<img>` elements
- SVG elements
- `<picture>` elements
- Open Graph metadata
- Twitter/X card metadata
- Favicon declarations
- Apple Touch Icons
- Web App Manifest icons
- Header and navigation elements
- Image `alt` attributes
- Image `title` attributes
- CSS class names and IDs
- Logo-related filenames
- Structured website metadata

This multi-layer approach helps recover logos even when websites use unusual HTML structures.

***

### 🛡️ Smart Logo Filtering

A major focus of this Actor is **avoiding false logo detection**.

Many websites contain logos belonging to:

- Customers
- Partners
- Sponsors
- Payment providers
- Technology providers
- Integrations
- Certifications
- Associations
- Social networks
- Other external companies

The Actor analyzes contextual signals and filters these unrelated assets whenever possible.

#### 🚫 Foreign Logo Protection

For example, if a website contains:

```text
Our Customers

Company A Logo
Company B Logo
Company C Logo
```

Those logos should not automatically become the website's primary logo.

#### The Actor prioritizes assets associated with:

- Header branding
- Navigation branding
- Website metadata
- Brand/company naming
- Logo-specific HTML attributes
- Internal asset paths
- Same-domain resources
- Strong visual/contextual logo signals

***

### 🔷 Advanced SVG Logo Extraction

SVG logos require special handling because modern websites frequently render their branding directly as inline SVG elements.

The Actor uses **strict SVG filtering** to reduce false positives.

#### `svgLogos`

The `svgLogos` output is designed to contain only **high-confidence, website-owned SVG logos**.

It attempts to exclude:

- Social media icons
- Generic UI icons
- Partner logos
- Customer logos
- Payment icons
- Decorative SVGs
- External company logos
- Generic symbols

#### `allLogos`

The `allLogos` collection provides broader logo candidates discovered throughout the website.

This is useful when you want additional branding assets beyond the primary detected logo.

***

### ⚡ Core Features

- **🎯 Official Logo Detection** — Identifies the most likely primary logo belonging to the website.
- **🔷 Advanced SVG Detection** — Finds inline and external SVG logos while applying strict filtering.
- **🛡️ Foreign Logo Filtering** — Helps prevent customer, partner, sponsor, and third-party logos from being incorrectly identified as the primary brand.
- **🌐 Favicon Detection** — Automatically detects standard favicon declarations and fallback icons.
- **📱 Apple Touch Icon Detection** — Extracts Apple Touch Icons when available.
- **🧠 Multi-Signal Analysis** — Combines HTML structure, metadata, filenames, attributes, and contextual information.
- **🚀 Fast Processing** — Uses lightweight crawling and HTML parsing rather than relying entirely on expensive browser rendering.
- **🔗 Smart URL Handling** — Accepts both complete URLs and raw domains.
- **🧹 Clean Structured Output** — Returns organized logo information ready for CRM, lead enrichment, and data pipelines.
- **🔄 Fallback Detection** — Uses multiple logo sources when the preferred detection method is unavailable.

***

### ⚙️ Input Configuration

| Field                | Type   | Required | Description                                                       |
| -------------------- | ------ | -------- | ----------------------------------------------------------------- |
| `startUrls`          | Array  | Yes      | List of website URLs or domains to analyze.                       |
| `proxyConfiguration` | Object | No       | Optional proxy configuration for websites that restrict requests. |

***

### 🧩 Example Input

```json
{
  "startUrls": [
    "https://apify.com",
    "https://stripe.com",
    "https://shopify.com"
  ]
}
```

You can also provide raw domains:

```json
{
  "startUrls": ["apify.com", "stripe.com", "shopify.com"]
}
```

***

### 📊 Example Output

```json
{
  "url": "https://apify.com",
  "domain": "apify.com",
  "primaryLogo": "https://apify.com/ext/apify-logo-120px.png",
  "favicon": "https://apify.com/favicon.ico?favicon.2653ilt32bing.ico?dpl=0d3effd653",
  "appleTouchIcon": "https://apify.com/apple-icon.png?apple-icon.1qabm0kj8blk6.png?dpl=0d3effd653",
  "ogImage": "https://apify.com/og-image?title=Thousands+of+tools%0Afor+your+AI",
  "twitterImage": "https://apify.com/og-image?title=Thousands+of+tools%0Afor+your+AI",
  "svgLogos": [
    "https://apify.com/img/apify-logo/wordmark-white.svg",
    "https://apify.com/img/apify-logo/logomark-32x32.svg"
  ],
  "allLogos": [
    "https://apify.com/img/apify-logo/wordmark-white.svg",
    "https://apify.com/img/apify-logo/logomark-32x32.svg",
    "https://cookie-cdn.cookiepro.com/logos/25b9d95b-f10b-40d3-9c47-6d33ca00a6bb/019f123b-8d72-7105-8d41-f3b7c3b73516/ece25d8f-060a-474a-995f-630f6605deab/apify-wordmark-white-512x141.png"
  ],
  "extractedAt": "2026-08-27T06:44:25.349Z"
}
```

***

### 🏢 Perfect For

#### 📊 Lead Generation

Automatically enrich large lists of company domains with their official brand logos.

#### 🧑‍💼 CRM Enrichment

Add company logos to:

- Salesforce
- HubSpot
- Pipedrive
- Custom CRMs
- Lead databases

#### 🌐 Website Directories

Automatically retrieve company branding for business directories and marketplace listings.

#### 📈 Sales Intelligence

Combine logos with company information to create visually rich prospect profiles.

#### 🖥️ SaaS Applications

Display company logos automatically inside:

- Customer dashboards
- Admin panels
- Lead management systems
- Analytics platforms
- Business intelligence tools

#### 🎨 Brand Research

Collect official brand assets from thousands of websites for research and analysis.

***

### 🔥 Why Use This Instead of Simple HTML Scraping?

A basic scraper might simply search for:

```html
<img src="logo.png" />
```

This approach frequently produces inaccurate results because modern websites can contain hundreds of images and SVGs.

This Actor instead evaluates **multiple signals** before selecting a logo.

#### Traditional Image Extraction

```text
Find <img>
      ↓
Return image
      ↓
❌ May return customer logo
❌ May return banner
❌ May return advertisement
❌ May return product image
```

#### Intelligent Logo Extraction

```text
Website
   ↓
HTML + Metadata Analysis
   ↓
Find Logo Candidates
   ↓
Analyze Context
   ↓
Filter Foreign Logos
   ↓
Rank Candidates
   ↓
Select Primary Logo
   ↓
Structured Output
```

***

### 🧹 Clean & Useful Output

The Actor is designed specifically for downstream data processing.

Instead of returning thousands of irrelevant images, it focuses on useful brand assets.

The output can be directly consumed by:

- CRM systems
- Lead generation workflows
- Data enrichment pipelines
- Apify integrations
- APIs
- Internal databases
- No-code automation platforms

***

### 💡 Common Use Cases

- **🏢 Company Database Enrichment:** Add official logos to existing company records.
- **📇 Lead Enrichment:** Enrich domain lists with company branding.
- **🌐 Business Directories:** Automatically display company logos beside listings.
- **💼 CRM Enrichment:** Improve visual presentation of company records.
- **📊 Market Research:** Collect branding information across large domain lists.
- **🛒 E-commerce Research:** Extract brand assets from online stores.
- **🤖 Automation:** Use extracted logo URLs in automated workflows.
- **🖥️ Dashboard Development:** Automatically populate company logos in SaaS dashboards.

***

### ❓ FAQs

#### 1. Do I need my own API key?

No. The Actor does not require you to provide an external logo API key.

Simply provide your website URLs and the Actor will analyze the websites directly.

#### 2. Does it extract every image from a website?

No.

The Actor is specifically designed to identify **logo and brand-related assets** rather than returning every image found on the page.

#### 3. Can it extract SVG logos?

Yes.

The Actor specifically analyzes SVG elements and applies additional filtering to identify likely website-owned SVG logos.

#### 4. Does it return customer and partner logos?

The Actor actively attempts to filter out foreign logos such as customer, partner, sponsor, payment-provider, and third-party logos.

However, websites can use unusual structures, so no automated classifier can guarantee perfect detection on every website.

#### 5. What happens if a website does not have a logo?

The Actor uses fallback detection methods such as favicon, Apple Touch Icon, metadata, and other available brand assets.

If no suitable asset can be found, the output indicates the extraction status.

#### 6. Can I provide domains without `https://`?

Yes.

For example:

```text
apify.com
stripe.com
shopify.com
```

The Actor automatically handles URL normalization.

#### 7. Can I process many websites?

Yes.

The Actor is designed for bulk website processing and can be used to enrich large domain lists.

***

### 🧑‍💻 Developer Info

**Author:** codescraper

**Email:** <codescraper011@gmail.com>

***

### 🏷️ Tags

`logo-extractor` · `website-logo` · `logo-finder` · `brand-logo` · `company-logo` · `favicon-extractor` · `svg-logo` · `website-enrichment` · `domain-enrichment` · `brand-assets` · `lead-enrichment` · `crm-enrichment` · `web-scraping` · `data-extraction` · `apify` · `automation`

# Actor input Schema

## `startUrls` (type: `array`):

List of website URLs you want to extract logos and brand assets from.

## `extractAllImages` (type: `boolean`):

If true, will extract every single image tag on the page instead of just targeting logos and brand assets.

## `deepScan` (type: `boolean`):

If true, the crawler will visit the 'About' or 'Contact' pages if no primary logo is found on the homepage.

## `maxConcurrency` (type: `integer`):

Maximum number of pages to process at the same time.

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

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "startUrls": [
    "https://apify.com"
  ],
  "extractAllImages": false,
  "deepScan": false,
  "maxConcurrency": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `extractedBrandAssets` (type: `string`):

The main dataset containing the domain, primary logo, favicon, and social images for each URL.

# 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 = {
    "startUrls": [
        "https://apify.com"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("codescraper/website-logo-extractor").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 = {
    "startUrls": ["https://apify.com"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("codescraper/website-logo-extractor").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 '{
  "startUrls": [
    "https://apify.com"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call codescraper/website-logo-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codescraper/website-logo-extractor"
        }
    }
}

```

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/uTe94c1zHb6YASNCI/builds/MGkV0Q8PoJko14ns4/openapi.json
