Let's BIMILet's BIMIdocs

Logo requirements

Specific SVG requirements to be valid for BIMI

BIMI doesn't accept a regular PNG or JPEG export of your logo. Your logo must be encoded as an SVG that conforms to a specific, restricted profile of the format called SVG Tiny Portable/Secure (SVG Tiny P/S). This guide explains what that means, what's acceptable and what isn't, and provides some examples of logos to help guide how to optimize yours for BIMI

It's best to have a designer you're working with create a logo specific for BIMI use. You can send them a link directly to this guide. Using an existing logo but saved as or exported as SVG may result in a logo that is not acceptable.

What is SVG Tiny P/S?

A regular SVG file is really just XML, which means it can contain things like embedded scripts, links to external resources, animations, and even raster images (like a JPEG hidden inside the file). That flexibility is a problem for BIMI, because your logo is a file that email clients fetch and render directly inside a recipient's inbox. If arbitrary SVGs were allowed, a malicious actor could use them to track opens, load different content after the fact, or otherwise abuse the trust BIMI is meant to establish.

SVG Tiny P/S is a locked-down profile, defined by the AuthIndicators Working Group, that strips out all of that. It's based on the older SVG Tiny 1.2 specification, with additional restrictions on top. The result is a format that can only describe static self-contained vector art.

What's required

At a minimum, your SVG file needs to:

  • Declare the correct profile. The <svg> element must include version="1.2" and baseProfile="tiny-ps".
  • Include a <title> element. This is required by the spec and is typically your brand name.
  • Use a square canvas. Your viewBox should have equal width and height (e.g. viewBox="0 0 120 120"). Non-square logos will be rejected or distorted.
  • Have a solid background. The canvas should be filled edge-to-edge with a solid color, not left transparent. See below for why this matters.
  • Be entirely self-contained. No links to external stylesheets, fonts, images, or scripts. Every color, shape, and style needs to be defined inline in the file itself.

Many email clients, including Gmail, crop your logo into a circle when displaying it. Keep the important parts of your mark inside a centered circular "safe zone," not out near the corners of the square canvas, or they'll get clipped.

What is and isn't acceptable

CategoryAcceptableNot acceptable
BackgroundSolid fill color, edge-to-edgeTransparent background, gradients that shift depending on the client
ArtworkFlat vector shapes and pathsEmbedded raster images (JPEG/PNG), photographic detail
InteractivityNone<script> tags, onclick/hover handlers, animation (<animate>, SMIL)
External referencesNone — everything defined inlineLinked web fonts, xlink:href to remote images, @imported stylesheets
TextConverted to outlines/pathsLive <text> elements (font rendering isn't guaranteed across clients)
ShapeSquare canvas (1:1)Rectangular, portrait, or landscape canvases
Detail levelSimple mark, monogram, or iconFine detail, small text, or complex illustration that won't hold up at ~20–40px

Most of these rules exist because of the security restrictions in SVG Tiny P/S, but a few, like keeping the design simple, aren't strictly required by the spec. They're just good practice, since your logo will often be displayed at a very small size in an inbox list.

Good examples

Simple marks with a solid, edge-to-edge background color tend to work best. A few examples:

Northloop Financial
Alpine Outdoors
Coral Analytics

Each of these uses one or two flat shapes, one or two colors, and a background that fills the entire canvas. Nothing here depends on a font, an external file, or fine detail that would disappear at inbox scale.

Here's what the source for the first one looks like:

<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.2" baseProfile="tiny-ps" xmlns="http://www.w3.org/2000/svg"
     viewBox="0 0 120 120">
  <title>Northloop Financial</title>
  <rect width="120" height="120" fill="#14335c" />
  <circle cx="60" cy="60" r="26" fill="none" stroke="#ffffff" stroke-width="10" />
</svg>

An example that would be rejected

For comparison, here's the kind of file that looks reasonable at a glance but fails SVG Tiny P/S:

<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="120">
  <defs>
    <linearGradient id="bg">
      <stop offset="0%" stop-color="#14335c" />
      <stop offset="100%" stop-color="transparent" />
    </linearGradient>
  </defs>
  <rect width="300" height="120" fill="url(#bg)" />
  <image href="https://example.com/photo.jpg" width="120" height="120" />
  <text x="140" y="65" font-family="Brand Sans">Northloop</text>
  <script>console.log('loaded')</script>
</svg>

This fails for several reasons:

  1. Wrong profile declaration — it's missing baseProfile="tiny-ps" and uses version="1.1" instead of 1.2.
  2. Non-square canvas300x120 isn't a 1:1 aspect ratio.
  3. Transparent, gradient background — the fill fades to transparent, so the logo will look different depending on what the email client renders behind it.
  4. Embedded remote image<image href="https://example.com/photo.jpg"> pulls in an external raster file, which isn't allowed.
  5. Live text with a custom fontfont-family="Brand Sans" won't render consistently (or at all) if the recipient's client doesn't have that font.
  6. A <script> tag — scripting of any kind is disallowed outright.

Validating before you submit

Before you send your SVG off to a Certificate Authority, it's worth validating it against the SVG Tiny P/S profile. Most CAs run this validation as part of certificate issuance and will reject files that don't conform, but catching problems yourself first avoids a slow round trip during an already lengthy verification process.

The BIMI group has a free tool to validate your logo is acceptable for BIMI use:

https://bimigroup.org/bimi-svg-assistant-tool

On this page