# Fetch Company Logos by Domain in Node.js

> One POST request returns a transparent PNG for any domain. Copy-paste Node.js, no SDK, no attribution required. $0.01 per lookup.

**Canonical URL:** https://superlogo.ai/nodejs-logo-api  
**Target query:** `node js fetch company logo from domain`  
**Summary:** How to fetch a company logo by domain in Node.js. Copy-paste code using native fetch, returns a transparent PNG. SuperLogo API, $0.01 per lookup, no attribution required.

## Overview

Node has no built-in way to turn a domain into a company logo. Favicon URLs give you a 16px icon, and scraping each brand's press kit does not scale. The reliable path is one HTTP call to a logo API. Here is the whole thing in Node 18+ (native fetch, no dependencies): POST the domain to SuperLogo's resolve endpoint and write the returned base64 PNG to disk.

## Why teams switch

- **Favicons are 16px and inconsistent:** The favicon trick returns tiny icons, sometimes a wordmark, sometimes nothing. Not usable in a real UI or a generated document.
- **Scraping brand pages does not scale:** Every site puts its logo somewhere different. A scraper that works for 10 domains breaks on the 11th. A logo API covers 38M companies with one contract.
- **Most logo APIs want a subscription:** Brandfetch starts at $99/mo, Logo.dev at $280/yr, and both require an attribution link on their free tier. Pay-as-you-go at $0.01 per domain avoids both.

## What SuperLogo does differently

- **Native fetch, zero dependencies:** Node 18+ has fetch built in. One POST to /v1/resolve, decode the base64, done. No SDK to install, no OAuth dance.
- **Transparent PNG, ready to use:** The response is a base64 PNG with a real alpha channel. Buffer.from(str, "base64") gives you bytes you can write to disk or stream to a client.
- **Batch up to 700 domains per call:** Pass an array of domains and get an array of logos back in one request. One round trip enriches a whole table.
- **No attribution at any tier:** Ship the logos in a commercial product with no credit link. The license covers commercial and white-label use.
- **$0.01 per domain lookup:** Pay-as-you-go. Failed lookups are free, so you only pay for logos actually delivered.

## FAQ

### What is the full Node.js snippet?

const res = await fetch("https://superlogo.ai/v1/resolve", { method: "POST", headers: { "Authorization": "Bearer sl_live_YOURKEY", "Content-Type": "application/json" }, body: JSON.stringify({ domains: ["stripe.com"] }) }); const { logos } = await res.json(); const png = Buffer.from(logos[0].logo_base64, "base64"); require("fs").writeFileSync("stripe.png", png);

### How do I fetch many logos at once?

Pass an array: body: JSON.stringify({ domains: ["stripe.com", "figma.com", "vercel.com"] }). The response logos array comes back in the same order, one entry per domain.

### What if I only have the company name, not the domain?

Send { names: ["Stripe"] } instead of domains. An AI step resolves the domain first, then fetches the logo. Name lookups cost $0.04 vs $0.01 for a domain.

### Can I use this with Express to proxy logos?

Yes. Call resolve inside a route, then res.type("png").send(Buffer.from(logo_base64, "base64")). Keep the API key on the server so it never reaches the browser.

## Get started

- **View the API:** https://superlogo.ai/api
- **API docs:** https://superlogo.ai/v1/docs.html
- **All company logo pages:** https://superlogo.ai/sitemap.xml
