Car logos for leasing brokers and car marketplaces
Brokers, contract hire sites, and car marketplaces sell by manufacturer first. The browse grid, the deal card, the make landing page, and the quote PDF all need the same badge at a different size. Serve every one of them from one URL pattern, and stop exporting logos every time a make joins the deal list.
Browse lease deals by manufacturer
16 manufacturers · 16 in-stock and factory-order deals
16 deals · inc. VAT
Showing the first 6
Tesla Model 3
RWD 4dr Auto
In stock£389 /mo
£3,501 initial · 36 months
Kia EV3
150kW GT-Line 81kWh
In stock£342 /mo
£3,078 initial · 48 months
BMW i4
eDrive40 M Sport 5dr
Factory order£512 /mo
£4,608 initial · 36 months
Volkswagen ID.7
Pro Match 5dr Auto
In stock£436 /mo
£3,924 initial · 48 months
Škoda Enyaq
85 Edition 5dr Auto
In stock£358 /mo
£3,222 initial · 36 months
Audi Q4 e-tron
45 S Line 5dr Auto
Factory order£478 /mo
£4,302 initial · 48 months
What it changes for a broker or marketplace
- Manufacturer pages that are always complete
- The browse-by-manufacturer grid is the busiest entry point on a broker or marketplace site, and it is only as good as its worst tile. When the grid is the brand list from the JSON API and a badge per slug, a make that joins the deal list on Monday has a tile on Monday.
- Replaces a badge export every time a make joins the list
- Deal cards that read at a glance
- Sixty cards on a results page and a customer scanning for the three makes they care about. A badge next to the model name is faster to scan than text, and it is the same badge at the same size on every card because the URL is the same.
- Replaces inconsistent card imagery across the funnel
- Per-make landing pages ready for search
- /car-leasing/kia and /used/hyundai are where organic traffic lands. The full logo at hero size, the badge in breadcrumbs, and the brand colour from the JSON API are the whole visual identity of the page, and none of it is a file in your CMS.
- Replaces a design pass per manufacturer landing page
- One partner platform, many broker brands
- Brokers often run several branded sites, or several brokers run on one platform. One publishable key serves all of them, the usage dashboard splits traffic by domain, and a rebrand reaches every site through the cache.
- Replaces a logo set per white-label site
How Leaselab took 100 brands off the operations budget
- Company
- Leaselab
- Footprint
- Multiple platforms
- Library
- More than 100 automotive brands
- Before Motomarks
- An extensive operational cost
What the team stopped doing
- 01
Hours chasing updated brand assets
The asset behind the URL is updated; the URL does not change
- 02
Resizing logos by hand for each placement
size=andtype=are query parameters - 03
Applying one change across various systems
Every platform reads the same URL, so one update reaches all of them
“Our browse-by-manufacturer pages are the busiest entry point we have, and every tile used to be a file someone exported. Now the grid is the brand list from the JSON API and a badge URL per slug. When a new make enters the deal list, the page is already correct.”
Where the badge goes on a broker or marketplace site
- Browse by manufacturer
- A 32px badge with the make name under it. Sixteen to sixty tiles, served as WebP and cached for a day.
- type=badge&size=sm
- Deal card
- The badge beside the model and derivative, so a results page scans by make before the customer reads a word.
- type=badge&size=sm
- Make landing page hero
- The full logo at the top of /car-leasing/kia, with the brand colour from the JSON API behind it.
- type=full&size=lg
- Search filters and facets
- A 20px badge next to each make and its deal count in the left rail.
- type=badge&size=xs
- Comparison and shortlist
- A wordmark per column heading when a customer compares three deals side by side.
- type=wordmark&size=sm&aspect=height
- Quote PDF and enquiry email
- PNG for the document renderer and the email client, same slug, same size scale.
- type=badge&size=sm&format=png
What a manufacturer grid costs to keep by hand
Your numbers; change any input. First year = brands × minutes per brand + changes × codebases × hours per change. Each year after drops the one-time build. The model counts engineering time only; it leaves out CDN hosting, storage, and the cost of shipping an out-of-date mark.
Coverage for deal lists
Volume lease and marketplace makes
Integration in four steps
“The manufacturer grid is the brand list from the API plus one image URL. There is nothing left to export.”
- 01
Build the manufacturer grid from the brand list
Fetch the published brands on the server with the secret key, intersect with the makes you have deals for, and render a tile per slug. New makes appear on the next revalidation; no image is committed to the repository.
app/car-leasing/page.tsx const res = await fetch("https://api.motomarks.io/brands", { headers: { Authorization: `Bearer ${process.env.MOTOMARKS_SECRET_KEY}` }, next: { revalidate: 86400 }, }); const brands: { id: string; name: string }[] = await res.json(); const withDeals = new Set(await db.deals.distinctMakeSlugs()); export const manufacturers = brands .filter((b) => withDeals.has(b.id)) .sort((a, b) => a.name.localeCompare(b.name)); - 02
Render the badge on grid tiles and deal cards
One component, one
sizeprop. The grid asks forsm; the left-rail filter asks forxs. Keep the make name visible so the card reads correctly if a variant is not published.components/make-badge.tsx export function MakeBadge({ slug, name, size = "sm" }: { slug: string; name: string; size?: "xs" | "sm" | "md" }) { const src = `https://motomarks.io/img/${slug}?type=badge&size=${size}&token=${process.env.NEXT_PUBLIC_MOTOMARKS_KEY}`; const px = size === "xs" ? 20 : size === "sm" ? 32 : 48; return <img src={src} alt={`${name} badge`} width={px} height={px} loading="lazy" />; } - 03
Give every make landing page its own hero
The brand endpoint returns the name, the published variants, and the primary colour. Use the full logo at
size=lgand the colour as a tinted band behind it, and the page has an identity without a designer touching it.app/car-leasing/[make]/page.tsx const brand = await fetch(`https://api.motomarks.io/brands/${params.make}`, { headers: { Authorization: `Bearer ${process.env.MOTOMARKS_SECRET_KEY}` }, next: { revalidate: 86400 }, }).then((r) => r.json()); <header style={{ background: `${brand.color ?? "#111"}14` }}> <img src={`https://motomarks.io/img/${brand.id}?type=full&size=lg&token=${process.env.NEXT_PUBLIC_MOTOMARKS_KEY}`} alt={`${brand.name} logo`} height={64} /> <h1>{brand.name} lease deals</h1> </header> - 04
Serve several branded sites from one key
A broker group with a car site, a van site, and a prestige site can use one publishable key. Browser requests are attributed by
Referer, so the usage dashboard already shows traffic per domain. On Pro, restrict the key to those hostnames.Usage dashboard Allowed hostnames (Pro) www.selectbroker.example vans.selectbroker.example prestige.selectbroker.example Usage by domain, last 7 days www.selectbroker.example 412,930 vans.selectbroker.example 88,114 prestige.selectbroker.example 21,507
Questions before you integrate
We list deals from a rates feed. How do we map the feed's make names to slugs?
Pull the published brand list from the JSON API once a day and match on name, storing the slug next to each make in your own tables. Keep a small override map for feed spellings that differ (for example a feed that says VW or Mercedes). The vehicle make selector guide has the same pattern in code.
Our manufacturer grid has forty tiles. Does that blow through the Free plan?
Forty tiles is forty image requests on an uncached page view, and browsers cache each badge for 24 hours. Free covers 1,000 requests a day, which suits a prototype. A public broker or marketplace site belongs on Startup (10,000 a day) or Pro (100,000 a day), both of which remove the attribution requirement.
Can we use the brand colour on the make landing page?
Yes. The brand endpoint returns a color field and a colors array in priority order. Use them as a tint or accent behind the full logo; the logos themselves remain the property of their manufacturers, so present the page as a listing of their vehicles rather than as an official brand page.
We run several sites on one platform. Do we need a key per brand?
One publishable key can serve every site and the usage dashboard splits browser traffic by domain. Create separate keys if you want to roll one site's key without touching the others, and on Pro and Enterprise give each key its own hostname allowlist, including wildcards such as *.yourplatform.example.
What does this cost against exporting the logos ourselves?
Startup is $228 a year billed monthly. Preparing forty manufacturer badges in two sizes and keeping them current across a car site and a van site is more than three hours of work in the first month alone, before any manufacturer changes its mark. The cost model on this page uses your numbers.
Every manufacturer page,
already complete.
Create a free key, build the grid from the brand list, and the next make to join your deal list arrives with its badge.
Free includes 1,000 requests per day with an attribution link. Startup and Pro remove attribution.
More ways teams use Motomarks
Leasing and finance applications
Teams building lease and loan origination, quoting, captive finance, and portfolio tools
Dealer groups and website platforms
Dealer groups, used-car retailers, and the platforms that build their sites
Brand assets across multiple sites
Engineering leads running several automotive products, brands, or white-label sites