brand-fetcher
Geef een domein, krijg het logo. Als vierkante webp, klaar om te tonen, met de sociale profielen van datzelfde bedrijf erbij. Geen sleutel, geen registratie, en de beelden mag je bewaren.
Met of zonder www, met of zonder https ervoor. Wordt er geen logo gevonden, dan komt er een monogram met de beginletter: dit adres hoort in een img-tag te kunnen staan, en daar is een gebroken beeldje geen antwoord. Een bot-controle van Cloudflare kijkt mee, en die laat zich zelden zien.
Zelf verzoeken sturen
Er zijn twee eindpunten, allebei open: geen sleutel, geen token, geen registratie. Een GET volstaat.
| Eindpunt | Wat je krijgt |
|---|---|
| GET /v1/brand/{domein} | Het logo als webp van 128 bij 128, vierkant. Zestig verzoeken per minuut per ip-adres. |
| GET /v1/brand/{domein}/social | De sociale profielen als json. Vijf verzoeken per minuut per ip-adres. |
Heb je meer volume nodig, dan kan dat met een account: dan liggen de remmen hoger en spreek je dezelfde eindpunten aan. Stuur een mail naar [email protected] en zeg waarvoor je het gebruikt.
Je mag de beelden bewaren. Haal ze op, zet ze in je eigen opslag of achter je eigen cdn, en serveer ze vandaar uit. Dat scheelt jou een verzoek per weergave en ons een bezoek aan de site van een ander. Dat is hier uitdrukkelijk toegestaan, en het is het verschil met diensten als Brandfetch en Logo.dev, waar het beeld bij elke weergave bij hen vandaan moet blijven komen.
Het beeld kan rechtstreeks in je opmaak:
En de profielen haal je op zoals elk ander json-antwoord. Het verzoek staat bovenaan, wat je terugkrijgt eronder:
De lijst is hoogstens een profiel per platform, en ze mag leeg zijn. In een Laravel-project wordt dat:
De velden
| Veld | Wat erin staat |
|---|---|
| domain | Het domein zoals wij het lezen: kleine letters, zonder www en zonder pad. |
| logo_url | Het adres van het beeld-eindpunt voor datzelfde domein. Direct bruikbaar in een img-tag. |
| profiles | Een lijst, hoogstens een per platform. Leeg als er niets gevonden is; dat is een geldig antwoord. |
| profiles[].platform | facebook, instagram, x, linkedin, youtube, tiktok, pinterest, github, threads, bluesky, mastodon, whatsapp, vimeo, snapchat, xing, spotify of telegram. |
| profiles[].url | Het profiel, uniform geschreven. Hoofdletters in het pad blijven staan, want op sommige platformen tellen die mee. |
| profiles[].handle | De naam uit dat adres, zonder apenstaartje. |
Waar het logo vandaan komt
Bij het domein zelf, en nergens anders. De voorpagina wordt een keer opgehaald, en daaruit komen de kandidaten: de iconen uit de head, het apple-touch-icon, de iconen uit het webmanifest, de socialekaart uit og:image, en het logo uit de schema.org-gegevens. Als vangnet /favicon.ico.
Van die kandidaten wint de meest vierkante, gemeten op het bestand zelf en niet op wat de pagina beweert: een icoon met sizes="256x256" erbij dat in werkelijkheid zestien pixels groot is, komt vaker voor dan je zou willen. Het beeld wordt verkleind en gecentreerd op een doorzichtig vierkant, verder ongewijzigd: niet uitgerekt en niet bijgesneden.
Dezelfde voorpagina levert de sociale profielen. Wat het domein zelf in zijn schema.org-gegevens opgeeft weegt het zwaarst, daarna een rel="me", daarna een link in de voettekst. Deelknoppen tellen niet mee: facebook.com/sharer en twitter.com/intent staan op bijna elke site en zeggen niets over het merk.
Staat het omgekeerd, en wil je dat wij op jouw domein meteen het juiste vierkant vinden, dan staat op een perfect logo op je site welke tags daarvoor in je head horen en hoe het bestand eruit moet zien.
Over de merken
De logo's zijn merken van hun eigenaars. Ze worden opgehaald en getoond om een domein te herkennen, verder niets; er wordt niets aan gewijzigd en Hans De Boeck claimt er geen enkel recht op.
Wil je het logo van je domein hier niet zien, stuur dan een mail naar [email protected] met het domein erbij. Het wordt weggehaald en weggehouden, en is binnen een dag ook weg bij wie het intussen opgevraagd had.
Iets anders nodig, of meer verzoeken per minuut? Datzelfde adres.
Even controleren
Cloudflare gaat kort na of je geen robot bent. Dat duurt een paar tellen.