# Brand Assets Extractor - Logo, Favicon, Colors & Fonts (`actor-forge/brand-assets-extractor`) Actor

Get any company's brand kit from its domain: ranked logo candidates (SVG/PNG), favicon and Apple touch icon, share image, theme colour, brand colour palette from its CSS, fonts (Google Fonts, @font-face) and company social profiles. Optional download to storage. $0.60 per 1,000 domains.

- **URL**: https://apify.com/actor-forge/brand-assets-extractor.md
- **Developed by:** [ActorForge](https://apify.com/actor-forge) (community)
- **Categories:** Lead generation, Marketing, Developer tools
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 1,000 brand extracteds

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

## Brand Assets Extractor - Logo, Favicon, Colors & Fonts

Get any company's brand kit from its domain: ranked logo candidates (SVG/PNG), favicon and Apple touch icon, share image, theme colour, brand colour palette from its CSS, fonts (Google Fonts, @font-face) and company social profiles. Optional download to storage. $0.60 per 1,000 domains.

**Get a company's logo, icons, colours and fonts from just its domain.** Give it a list of domains (or website URLs, or business email addresses) and get one **brand kit** per company: **ranked logo candidates** (JSON-LD logo, the header logo image, SVG icons, Apple touch icon, web-app manifest icons, mask icon, favicon) with the best one picked for you, the **favicon**, **Apple touch icon**, **social share image (og:image)**, the **theme colour**, a **brand colour palette** counted from the site's own CSS (custom properties like --brand-primary weighted up, near-duplicates merged, whites/greys/blacks listed separately), the **fonts** the site loads (Google Fonts, @font-face, font-family usage) and the company's own **social profiles** (LinkedIn company page, X, Facebook, Instagram, YouTube, GitHub, TikTok). Turn on **download** to save the logo and icons to storage. Use it to **show company logos in a CRM, SaaS app or directory, enrich leads in Clay, n8n, Make or Zapier, theme white-label dashboards and pitch decks to a prospect's colours, build competitor style references, and fill AI agents' company cards**. Static HTML only (no browser), robots.txt respected. **$0.60 per 1,000 domains**; unreachable or blocked domains are free.

### What data does it return?

Every run outputs clean, schema-validated rows like these:

| domain | companyName | logoUrl | logoSource | themeColor | colors | fonts |
| --- | --- | --- | --- | --- | --- | --- |
| apify.com | Apify | https://apify.com/img/apify-logo/apify-symbol-200x200.svg | json-ld | #020202 | #e0ebff, #246dff, #152447 | — |
| stripe.com | Stripe | https://images.stripeassets.com/…/favicon.svg | json-ld |  | #1c1e54, #533afd, #ff9014 | sohne-var, SourceCodePro |

### How much does it cost?

Transparent pay-per-event pricing — you only pay for what you get, and the
actor **always respects your run budget**: set a maximum total charge and it
stops cleanly at the cap instead of overrunning.

| Event | Price | Charged | Worked example |
| --- | --- | --- | --- |
| `brand-extracted` | $0.0006 | per domain with a brand kit delivered (unreachable, blocked and invalid domains are free) | 1,000 company domains = $0.60 |
| `apify-actor-start` | $0.00005 | per run per GB of memory (platform start fee) | One run at 0.5 GB = $0.000025 |

### Input options

| Field | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `domains` | array | yes | — | Company domains (stripe.com), website URLs or email addresses; each home page is read once. Up to 10,000 per run. |
| `fetchStylesheets` | boolean | no | `true` | Also read up to 4 of the home page's linked CSS files (including the brand's CDN) for a better colour palette and font list. Off: only inline CSS is used (faster). |
| `downloadAssets` | boolean | no | `false` | Save the best logo, the favicon and the Apple touch icon (images up to 2 MB) to the run's key-value store; rows link to the stored files. |
| `respectRobotsTxt` | boolean | no | `true` | Skip sites and files the site's robots.txt disallows (free status row). Recommended. |

### Limits & honest notes

- Logos and brand assets are trademarks of their owners. The output identifies and links to them for lawful uses such as showing a company's logo next to its name; check the owner's brand guidelines before other uses.
- No browser: the home page is read as static HTML plus up to 4 stylesheets. Sites that render everything with JavaScript may yield fewer candidates (a free "nothing-extracted" row when there is nothing at all). Pages behind bot walls are not supported and the actor does not try to get around them (no proxies, no fingerprints).
- The colour palette is a heuristic from CSS frequency, not a design-system export: check it against the brand's guidelines for exact values. Fonts are the families the site declares; commercial fonts are reported by name only and never downloaded.
- Only company social profiles are returned. Personal profiles (for example linkedin.com/in/…) and personal contact details are never collected.
- robots.txt is respected by default (RFC 9309), requests identify themselves honestly as ActorForge-BrandAssets, and internal or private network addresses are refused at every redirect hop.
- downloadAssets stores image files up to 2 MB each in the run's key-value store (kept per your Apify storage retention).

### Related ActorForge actors

- [Domain Enrichment](https://apify.com/actor-forge/domain-enrichment) — tech stack, DNS, WHOIS, logo and socials in one row
- [Website Screenshot](https://apify.com/actor-forge/website-screenshot) — a picture of the home page
- [Tech Stack Detector](https://apify.com/actor-forge/tech-stack-detector) — what a site is built with

### Changelog

- **2026-10-23** — Initial release: ranked logos, favicon, touch icon, share image, theme colour, CSS colour palette, fonts and company socials per domain; optional asset download.

***

*Built and maintained by **ActorForge**. Reliability first: every actor in the
portfolio is monitored by an automated nightly self-test, and breakages are
typically fixed the same day.*

# Actor input Schema

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

Company domains (stripe.com), website URLs or email addresses; each home page is read once. Up to 10,000 per run.

## `fetchStylesheets` (type: `boolean`):

Also read up to 4 of the home page's linked CSS files (including the brand's CDN) for a better colour palette and font list. Off: only inline CSS is used (faster).

## `downloadAssets` (type: `boolean`):

Save the best logo, the favicon and the Apple touch icon (images up to 2 MB) to the run's key-value store; rows link to the stored files.

## `respectRobotsTxt` (type: `boolean`):

Skip sites and files the site's robots.txt disallows (free status row). Recommended.

## Actor input object example

```json
{
  "domains": [
    "apify.com",
    "stripe.com"
  ],
  "fetchStylesheets": true,
  "downloadAssets": false,
  "respectRobotsTxt": true
}
```

# Actor output Schema

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

One row per domain: logos, favicon, touch icon, share image, theme colour, palette, fonts and company socials.

## `files` (type: `string`):

Logos and icons saved when downloadAssets is on.

## `summary` (type: `string`):

Domains delivered, failed and skipped, billing.

# 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"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("actor-forge/brand-assets-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 = { "domains": [
        "apify.com",
        "stripe.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("actor-forge/brand-assets-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 '{
  "domains": [
    "apify.com",
    "stripe.com"
  ]
}' |
apify call actor-forge/brand-assets-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,actor-forge/brand-assets-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/C7JLAEjsQMpyW076o/builds/PrgQvrOIhCwOFzL7e/openapi.json
