Car logos for automotive media, reviews, and vehicle data products

Reviews, make hubs, comparison tables, and vehicle history reports all lead with the manufacturer. Put the same mark on every one of them from one URL pattern, with the brand colour from the JSON API, and take the logo hunt out of the editorial workflow.

See what it saves
drivewire.example/reviews/kia/ev3

Drivewire

Reviews / Kia / EV3 GT-Line S

Kia wordmarkAll Kia reviews

2025 Kia EV3 GT-Line S review

The most convincing small electric SUV on sale, if you can live with the ride.

4.5/5

Rivals

  • Volvo
  • Hyundai
  • Škoda
GET https://motomarks.io/img/kia?type=wordmark&size=sm&aspect=heightGET /brands/kia → color, colors, vehicleTypes
A publisher's review header, its make-hub navigation, and a vehicle history check that shares the same slug. Every mark is a live CDN request: a wordmark with aspect=height in the header, badges in the nav and the report. Pick a make in the nav to change all three.

What it changes for a publisher or data product

Editorial output is measured in stories a day, and each one used to start with a search for a logo. Four costs that stop recurring, and what each one replaces.
No logo hunt per article
A review, a news story, and a buying guide each want the manufacturer's mark in the header. When the CMS stores the slug on the make taxonomy term, every article inherits the URL and no editor searches for a logo again.
Replaces a media library search per story
Make hubs that stay current
The /kia hub, the /reviews/kia listing, and every card that links to them show the same mark, because they build the same URL. A manufacturer rebrand reaches all of them within a day, without an audit of the media library.
Replaces a media-library audit after every rebrand
Comparison tables that line up
Three or four rivals across the top of a table need marks that share a baseline. aspect=height does that with wordmarks; the badge does it with squares. Either way the column headers are the same request with a different slug.
Replaces hand-cropped headers per comparison
Vehicle history and data products with an identity
A history check or valuation report is mostly numbers. A badge beside the registration and the brand colour from the JSON API give the page a visual anchor the customer recognises, without a designer per make.
Replaces text-only reports or a bespoke logo set

How Leaselab took 100 brands off the operations budget

Leaselab is a lease provider rather than a publisher, but a make hub and a comparison table are exactly the surfaces where their 100-brand library had to be identical everywhere. This is what their CTO said changed.
Company
Leaselab
Footprint
Multiple platforms
Library
More than 100 automotive brands
Before Motomarks
An extensive operational cost

What the team stopped doing

  1. 01

    Hours chasing updated brand assets

    The asset behind the URL is updated; the URL does not change

  2. 02

    Resizing logos by hand for each placement

    size= and type= are query parameters

  3. 03

    Applying one change across various systems

    Every platform reads the same URL, so one update reaches all of them

A make hub or a comparison table needs the mark to be identical on every page. With copied files it never was. With one URL per slug it is, and the JSON API gives us the brand colour to build the page around.
AC
Adrian Ciaschetti
CTO, Leaselab

Where the mark goes on a media or data site

Six placements from the article header to the newsletter. Each row is the literal query string that surface sends.
Review and article header
A wordmark linking to the make hub above the headline.
type=wordmark&size=sm&aspect=height
Make hub page
The full logo at the top of /kia, with the brand colour from the JSON API as the tint behind it.
type=full&size=lg
Comparison table
A badge or wordmark per column heading when rivals go head to head.
type=badge&size=sm
Rivals, related, and card grids
A 14 to 20px badge beside each make name in lists and cards.
type=badge&size=xs
Vehicle history and valuation report
A 40px badge beside registration and model; PNG for the PDF version.
type=badge&size=md&format=png
Newsletter and social cards
PNG for email clients and OG image generators.
type=badge&size=md&format=png

What a publisher's logo library costs to keep by hand

The defaults describe a publisher covering eighty makes across a website, a newsletter template, and a report generator. Every launch and every rebrand lands on each of them. Put in your own numbers and compare with a plan.

Leaselab maintains more than 100

Website, newsletter template, report generator

Rebrands, new brands, corrections

Source, resize, convert, commit, deploy, check

Find, trim, export sizes and formats, once

Salary, benefits, and overhead per hour

Motomarks plan to compare

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 editorial and data

The most-reviewed makes, the launches and newcomers a news desk covers first, and the performance and luxury marks. Each tile links to the brand's logo page; the browse page has the full index.

Integration in four steps

A slug on the make taxonomy, a wordmark in the header, brand colour on the hub, and a badge on the report. The examples use JSON, HTML, and Next.js; the URLs are the same in any stack.
The mark on the review header, the make hub, and the comparison table is the same request. It cannot drift.
AC
Adrian Ciaschetti
CTO, Leaselab
  1. 01

    Put the slug on the make taxonomy term

    Articles are already tagged with a make. Add the slug to that term once, from the JSON API brand list, and every template that renders the term can build the image URL. Editors never touch it.

    cms/taxonomies/make.json
    {
      "taxonomy": "make",
      "terms": [
        { "name": "Kia", "path": "/kia", "motomarks_slug": "kia" },
        { "name": "Volvo", "path": "/volvo", "motomarks_slug": "volvo" },
        { "name": "Renault", "path": "/renault", "motomarks_slug": "renault" }
      ]
    }
  2. 02

    Render the wordmark in the article header

    aspect=height returns a wordmark whose height is the constraint, so every header sits at the same height regardless of how wide the mark is. Link it to the make hub.

    templates/review-header.html
    <a href="{{ make.path }}" class="make-link">
      <img
        src="https://motomarks.io/img/{{ make.motomarks_slug }}?type=wordmark&size=sm&aspect=height&token=pk_YOUR_PUBLISHABLE_KEY"
        alt="{{ make.name }}"
        height="22"
        style="height:22px;width:auto"
      />
      <span>All {{ make.name }} reviews</span>
    </a>
  3. 03

    Use the brand colour on the make hub

    The brand endpoint returns color and a colors array. Use the first as a tint behind the full logo and the hub has a visual identity per make without a designer per make.

    app/[make]/page.tsx
    const brand = await fetch(`https://api.motomarks.io/brands/${slug}`, {
      headers: { Authorization: `Bearer ${process.env.MOTOMARKS_SECRET_KEY}` },
      next: { revalidate: 86400 },
    }).then((r) => r.json());
    
    <header style={{ background: `${brand.color}14` }}>
      <img
        src={`https://motomarks.io/img/${slug}?type=full&size=lg&token=${process.env.NEXT_PUBLIC_MOTOMARKS_KEY}`}
        alt={`${brand.name} logo`}
        height={72}
      />
      <h1>{brand.name} reviews, news, and buying guides</h1>
    </header>
  4. 04

    Badge the history or valuation report

    A registration lookup returns a make. Map it to a slug once and the report header carries the badge. Request format=png for the PDF and the email.

    reports/history-check.html
    <header class="report">
      <img
        src="https://motomarks.io/img/{{ vehicle.make_slug }}?type=badge&size=md&format=png&token=pk_YOUR_PUBLISHABLE_KEY"
        alt="{{ vehicle.make }}"
        width="40"
        height="40"
      />
      <div>
        <strong>{{ vehicle.make }} {{ vehicle.model }}</strong>
        <code>{{ vehicle.registration }}</code>
      </div>
    </header>

Questions before you integrate

Is it acceptable to use manufacturer logos in editorial?

Identifying the subject of a review, news story, or comparison is the same use a make name serves. The logos remain the property of their manufacturers and use is subject to their trademark policies; present the mark as identification of the vehicle under discussion rather than as an endorsement or partnership.

Our CMS is WordPress. How does this fit?

Store the slug as term meta on the make taxonomy and output the image URL from the theme template. There is no plugin to install; the URL only needs the slug and a publishable key. The same applies to any CMS that lets you attach a field to a taxonomy term.

Can we cache the images on our own CDN?

Temporary caching to improve performance is within the fair use policy, and Pro includes self-hosting and caching permission. Bulk downloading the library for redistribution is not permitted. Most publishers let the browser and the Motomarks CDN handle it: images ship with a 24-hour Cache-Control header.

How do we handle a make that launches next month?

Fetch the brand list from the JSON API with a daily revalidation and it appears when published. New brands, logo updates, aliases, and metadata changes are listed in the public changelog. If a brand you cover is missing, request it from the submit page.

What does this save a publisher or data product?

Startup is $228 a year billed monthly and removes attribution. A publisher covering eighty makes across a website, a newsletter template, and a report generator is maintaining one image set for hundreds of placements; each rebrand is a media-library audit in each. Leaselab described maintaining more than 100 brands across multiple platforms as an extensive operational cost. The cost model on this page uses your numbers.

Every story,
the right mark.

Create a free key, add the slug to your make taxonomy, and every review, hub, table, and report carries the mark from one URL.

Read the JSON API reference

Free includes 1,000 requests per day with an attribution link. Startup and Pro remove attribution.