Brand Assets from Domain: Logo, Favicon, Colors, Socials avatar

Brand Assets from Domain: Logo, Favicon, Colors, Socials

Pricing

from $2.00 / 1,000 brand assets extracteds

Go to Apify Store
Brand Assets from Domain: Logo, Favicon, Colors, Socials

Brand Assets from Domain: Logo, Favicon, Colors, Socials

Find a website's logo, favicon, theme colour and social links from its domain: one row per domain with logo URL, favicon, apple-touch icon, brand colour, og:image, title and LinkedIn, X, Facebook, Instagram and more. Read from the homepage HTML, no key. Pages that publish nothing are free.

Pricing

from $2.00 / 1,000 brand assets extracteds

Rating

0.0

(0)

Developer

Adrian Voss

Adrian Voss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Share

Give it a list of company domains, get back one row per domain with its logo URL, favicon, apple-touch icon, brand colour, og:image and social profile links. Marketers building logo walls and sales decks, CRM and Clay enrichment workflows, and developers filling in a company card from nothing but a domain use it to get brand assets without opening each site. Everything is read from the homepage's own HTML (its schema.org logo, <link rel=icon> tags, theme-color meta, web app manifest and social links), so every field says where it came from. A field the site does not publish is null: nothing is guessed and no colour is sampled from pixels. You pay once per domain; a page that publishes none of it is free.

Example row for stripe.com: faviconUrl an SVG, appleTouchIconUrl a 180x180 PNG, ogImageUrl, linkedinUrl https://www.linkedin.com/company/stripe, xUrl https://x.com/stripe. brandColor is null there, because Stripe publishes no theme-color.

How to use

  1. In the Apify Console. Open the actor page and click Start — the domains field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~brand-assets-from-domain-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"domains":["stripe.com","notion.so","shopify.com"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.

Input

{
"domains": [
"stripe.com",
"notion.so",
"shopify.com"
]
}

One per line: acme.com, www.acme.com or https://acme.com/en/ all work. Each domain's homepage is read once (robots.txt first) and returns one row with its logo, favicon, theme colour, og:image and social links. A domain whose page publishes none of these is free. Accepted formats: stripe.com, www.shopify.com, https://www.notion.so/.

Output

One row per item, for example:

queryfoundstatusdomaincompanyNamelogoUrllogoSourcefaviconUrlfaviconTypeappleTouchIconUrlbrandColorbrandColorSourcebackgroundColorogImageUrltwitterImageUrlmanifestIconUrlpageTitlepageDescriptionlinkedinUrlxUrlfacebookUrlinstagramUrlyoutubeUrltiktokUrlgithubUrlpinterestUrlwikipediaUrlcrunchbaseUrlsocialProfilesiconssourceUrlscrapedAt
stripe.comtrueOK<og:image url><twitter:image url><x (twitter)>1970-01-01T00:00:00.000Z

A miss comes back as a row with "found": false and is never charged.

Pricing

Pay-per-event. A flat per-run fee covers session/proxy warmup; you're billed per item only when data is actually found and returned — see .actor/pay_per_event.json for exact prices. A miss is never charged.

One brand-extracted event per domain that returns a row, proposed at $4 per 1,000 domains (FREE plan), lower on paid Apify plans. A domain that is blocked, unreachable, disallowed by its robots.txt or publishes no brand asset is returned as a found: false row and never charged.

Example runs

Paste any of these into the Input tab and press Start. All three return rows with no key, no token and no account of your own beyond an Apify login.

Get the brand assets of a few companies. The default shape: bare domains, one row each.

{
"domains": ["stripe.com", "notion.so", "shopify.com"]
}

Build a logo wall from a prospect list and keep only the hits. Domains with nothing to return are left out of the dataset (they are free either way).

{
"domains": ["hubspot.com", "atlassian.com", "zapier.com", "canva.com"],
"onlyFound": true
}

Get just the logo, favicon and colour columns for a CRM import. Accepts www. hosts and full URLs too.

{
"domains": ["www.stripe.com", "https://www.shopify.com/"],
"columns": ["domain", "companyName", "logoUrl", "faviconUrl", "brandColor"]
}

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~brand-assets-from-domain-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"domains":["stripe.com","notion.so","shopify.com"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~brand-assets-from-domain-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"domains":["stripe.com","notion.so","shopify.com"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~brand-assets-from-domain-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"domains":["{{domain}}"]}, mapping the row's domain into the domains array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "website logo and brand colors finder" — the agent will find and run this actor.