# Clearbit Logo Finder (`codex-dev/clearbit-logo-finder`) Actor

Given a domain or URL, normalizes it into a clean domain and returns a Clearbit logo URL for that domain.

- **URL**: https://apify.com/codex-dev/clearbit-logo-finder.md
- **Developed by:** [Codex](https://apify.com/codex-dev) (community)
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

**Clearbit Logo Finder** turns any messy URL or domain into a clean, ready-to-use company logo link. Paste in something like `https://www.apify.com/some/page` and get back the normalized domain (`apify.com`) plus a [Clearbit Logo API](https://clearbit.com/logo) URL you can drop straight into a UI, email template, or CRM record. Try it now with the [free demo run](https://console.apify.com/actors) or via the API — no scraping, no browser, just fast, deterministic normalization.

Running it on the [Apify platform](https://apify.com) means you get instant REST API access, scheduling for batch enrichment jobs, and integrations with Make, Zapier, and Google Sheets, so logo lookups can slot straight into an existing data pipeline.

### Why use Clearbit Logo Finder?

- **Data enrichment** — attach a company logo to leads, contacts, or accounts stored with only a website URL or email domain.
- **UI polish** — show real company branding in dashboards, comparison tables, or directories without hosting logo files yourself.
- **Consistent normalization** — strips protocols, `www.`, ports, paths, and credentials so the same company always maps to the same domain and logo URL, regardless of how the input was formatted.

### How to use Clearbit Logo Finder

1. Open the Actor's **Input** tab in Apify Console.
2. Enter a domain or full URL in the `domain` field (e.g. `apify.com`, `https://www.apify.com/page`). Leave it blank to use the default, `apify.com`.
3. Click **Start**.
4. Once the run finishes, open the **Output** tab (or the dataset via API) to get the normalized domain and logo URL.

### Input

The Actor accepts a single optional field, defined in the [input schema](https://docs.apify.com/platform/actors/development/input-schema):

| Field | Type | Description | Default |
|---|---|---|---|
| `domain` | String | A domain name or URL to look up a logo for. | `apify.com` |

Example input:

```json
{
    "domain": "https://www.apify.com/page"
}
```

### Output

Each run pushes a single item to the default dataset with the normalized domain and its Clearbit logo URL:

```json
{
    "domain": "apify.com",
    "logo": "https://logo.clearbit.com/apify.com"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel from the **Output** tab or via the [Apify API](https://docs.apify.com/api/v2).

#### Data table

| Field | Description |
|---|---|
| `domain` | The cleaned, lowercase domain extracted from the input (protocol, `www.`, port, path, and credentials removed). |
| `logo` | The corresponding `https://logo.clearbit.com/<domain>` URL, or `"Error"` if no domain could be extracted. |

### Cost estimation

This Actor does no scraping or browser rendering — it only parses the input string and constructs a URL — so a single run finishes in well under a second and consumes a negligible fraction of a compute unit. Even large batch jobs are inexpensive compared to typical scraping Actors, and the [free tier](https://apify.com/pricing) easily covers casual or exploratory use.

### Standby mode: real-time HTTP API

Besides normal batch runs, this Actor also runs in [Actor Standby mode](https://docs.apify.com/platform/actors/development/programming-interface/standby), so it stays warm in the background and answers requests instantly without a cold start. Send a `GET` request with a `domain` query parameter to the Actor's Standby URL:

```
GET https://<standby-actor-url>/?domain=https://www.apify.com/page
```

```json
{
    "domain": "apify.com",
    "logo": "https://logo.clearbit.com/apify.com"
}
```

Omitting `domain` falls back to `apify.com`, same as a batch run. See the **Standby** tab in Apify Console for this Actor's live URL.

### Tips

- To enrich many companies at once, run the Actor via the API in a loop, or schedule it as part of a larger data pipeline using [Apify integrations](https://apify.com/integrations). For real-time, one-off lookups, prefer the Standby HTTP API above to avoid run start-up overhead.
- `x.com` is automatically mapped to `twitter.com` for logo lookup purposes, since Clearbit's logo database indexes the historical domain.

### FAQ, disclaimers, and support

This Actor relies on the third-party [Clearbit Logo API](https://clearbit.com/logo), which is provided free and without an API key, but availability and terms are controlled by Clearbit (an HubSpot company), not Apify. If a domain has no matching logo, the returned image URL may 404 — validate on your end if that matters for your use case.

Found a bug or want a feature added? Open an issue on the Actor's **Issues** tab in Apify Console, or reach out about a custom solution.

# Actor input Schema

## `domain` (type: `string`):

A domain name or URL to look up a logo for, e.g. "apify.com" or "https://www.apify.com/page". It will be normalized into a clean domain before generating the logo URL.

## Actor input object example

```json
{
  "domain": "apify.com"
}
```

# Actor output Schema

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

No description

# 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 = {
    "domain": "apify.com"
};

// Run the Actor and wait for it to finish
const run = await client.actor("codex-dev/clearbit-logo-finder").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 = { "domain": "apify.com" }

# Run the Actor and wait for it to finish
run = client.actor("codex-dev/clearbit-logo-finder").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 '{
  "domain": "apify.com"
}' |
apify call codex-dev/clearbit-logo-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codex-dev/clearbit-logo-finder"
        }
    }
}
```

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/uNX22Ng2uAgdEqFxm/builds/bYeilicF0sBGSXMlW/openapi.json
