Open Logo API

Free, self-hosted company logo API.
A drop-in replacement for the discontinued Clearbit Logo API.

✓ Free & Open Source ✓ Standalone PHP ✓ REST API for Any Framework Clearbit Logo API: ☠ Dead Dec 2025

Downloads are free — clicking the link below opens a short ad that helps support Max Intel. Wait 15 seconds after clicking to unlock.

Click here for an ad
15
seconds remaining…
✓ Unlocked — thank you!
GitHub →

Version 1.0.0 · Last updated:

Why This Exists

On December 8, 2025, Clearbit (now owned by HubSpot) permanently shut down its free Logo API. Thousands of apps, dashboards, CRMs, and websites that used logo.clearbit.com/domain.com to display company logos lost their image source overnight.

Open Logo API is the fix. Upload it to any PHP server — shared hosting, a VPS, or a dedicated box — and you have your own logo API that works exactly the same way. You own the server, the cache, and the data. No vendor lock-in, no usage fees, no surprise shutdowns.

Clearbit Logo APILogo.devOpen Logo API
PriceWas free → DeadFree tier (limited)Free forever
Self-hostedNoNoYes
Data stays on your serverNoNoYes
Rate limitsN/ALimitedYou control
Vendor dependencyShut downThird partyNone
Setup timeN/A~5 min~5 min

Features

🔎

Multi-Strategy Scraping

Parses HTML for apple-touch-icon, og:image, link[rel=icon], tries well-known paths, falls back to Google & DuckDuckGo favicon services.

💾

Local Caching

Logos cached as PNG on your server. Re-scraped automatically after 6 months (configurable 1–24 months). Known misses tracked to avoid re-scraping.

🌐

REST API + CORS

Any site or app can call your API. CORS enabled by default. Works as an img src, from JavaScript fetch(), PHP, Python, cURL — anything.

🔄

Clearbit-Compatible URL

/d/github.com path format mirrors Clearbit's URL pattern. Find-and-replace migration takes 30 seconds.

🧩

your server Shortcode

[logo domain="github.com"] — use in any post, page, or widget. Size, class, link, alt, and fallback options included.

🔑

Rate Limiting & Auth

Configurable per-IP rate limit. Optional API key requirement for private deployments. Admin dashboard with cache stats & browser.

Quick Start

Step 1. Download and upload to your server. Point your domain to the /public directory.

Step 2. Make the /cache directory writable. Visit /admin to configure (default password: changeme).

Step 3. Use it:

<!-- Direct in any HTML -->
<img src="https://yoursite.com/logo/github.com" alt="GitHub" />

<!-- your server shortcode -->
[logo domain="github.com" size="64"]

<!-- JavaScript -->
const logo = `https://yoursite.com/logo/${domain}`;

<!-- JSON metadata -->
fetch(`https://yoursite.com/api/logo?domain=github.com&format=json`)
  .then(r => r.json())  // { domain, found, url, cached, fetched_at }

Migrating from Clearbit

Find and replace one string in your codebase:

// Before (dead)
https://logo.clearbit.com/github.com

// After (your server)
https://yoursite.com/logo/github.com

That's it. Same URL pattern, same behavior, your infrastructure.

Deploying on a Subdomain

Set up on a subdomain (e.g. api.yoursite.com) purely to run this plugin, then point your app's logo URLs to it. This works for React, Next.js, Vue, Laravel, Django, Rails, Go, static sites — anything that can load an <img> or make an HTTP request.

# Example: cheap $5/mo VPS or shared hosting
api.yoursite.com          ← your server + Open Logo API plugin
yoursite.com              ← Your React/Next.js/Laravel app

# Your app just uses img tags:
<img src="https://api.yoursite.com/logo/stripe.com" />

API Reference

GET /api/logo

Query parameter style. Returns PNG image bytes by default, or JSON with ?format=json.

GET /logo/{domain}

Clearbit-compatible path style. Always returns PNG image bytes.

GET /api/status

Health check. Returns JSON with cache stats and endpoint URLs.

Parameters

domain (required) — company domain, e.g. github.com. Protocol and www. stripped automatically.
formatimage (default) or json
size — requested size hint, 16–512
api_key — required only if key auth is enabled in settings

Response Headers

X-Logo-Source: fresh | cache | not-found — tells you if the logo was just scraped or served from cache.
Cache-Control: public, max-age=2592000 — 30-day browser cache.
Access-Control-Allow-Origin: * — when CORS is enabled.

Requirements

PHP 7.4+ with GD library, Apache (mod_rewrite) or Nginx, writable /cache directory. No database. No Composer. No npm. No your server. No framework dependencies.

License

GPLv2 or later. Free to use, modify, and distribute. Built by Max Intel.

Open Logo API — Frequently Asked Questions

What is a free replacement for the Clearbit Logo API?

Open Logo API is a free, self-hosted PHP project that replaces the discontinued Clearbit Logo API. It fetches company logos by domain, caches them locally on your server, and serves them via a REST API with a Clearbit-compatible URL format. You can migrate by replacing logo.clearbit.com in your codebase with your own your server site URL.

How do I migrate from the Clearbit Logo API?

Install the Open Logo API plugin on any your server site, then find-and-replace https://logo.clearbit.com/ with https://yoursite.com/logo/ in your codebase. The /d/domain.com path format is designed as a drop-in replacement for Clearbit's URL pattern.

Can I use Open Logo API without your server on my main site?

Yes. Install your server on a subdomain or separate server purely to run the plugin, then call its REST API from any framework — React, Next.js, Laravel, Django, Rails, static HTML, or any HTTP client. CORS is enabled by default so browser-side requests work out of the box.

ipt src="tools.json" type="application/json" id="tools-data">

Logo API Integration

Free logo and favicon API endpoints for enriching OSINT dashboards, domain reports, and threat intelligence tools with visual brand identification.