What this tool does
The BIMI Validator analyzes only the syntax of a BIMI record:
- Parses the tags
v,l,aand flags unknown or duplicate tags. - Verifies the HTTPS URLs: protocol required, recognized format, no whitespace or forbidden character.
- Detects structural errors: missing mandatory tag, incorrect separator, empty value, non-compliant order.
- Computes a 0 to 100 score on the three parseable dimensions (record, syntax, hygiene).
Validation runs on our servers: the record you paste is sent to CaptainDNS to be analyzed. Nothing gets published, though, and no DNS query is issued. When the l= tag carries a valid HTTPS URL, our servers fetch the SVG, along with the VMC declared by a=, to check them.
How BIMI works
BIMI (Brand Indicators for Message Identification) lets a domain display its official logo in the inbox of compatible recipients. The mechanism relies on three coordinated elements:
- A DNS TXT record published at
default._bimi.<domain>, syntaxv=BIMI1; l=<logo_url>; a=<vmc_url>. - An SVG logo compliant with the Tiny-PS profile, hosted over HTTPS.
- A VMC or CMC certificate (Verified Mark Certificate or Common Mark Certificate) hosted over HTTPS, parsed by the webmail to verify mark ownership.
The DNS record must be paired with a strict DMARC policy (p=quarantine or p=reject with pct=100). Without it, BIMI is inoperative. This check is not covered by the Validator (no DNS query) but by the BIMI Checker once the record is published.
When to use this tool
- Before DNS publication to confirm that a record generated manually or by a third-party tool is syntactically correct.
- After editing the record to make sure no typo was introduced (truncated URL, missing semicolon, mistyped tag).
- To validate a URL for the logo or VMC before actually hosting the files.
- For audits when analyzing a record copied from a third-party domain's DNS without relying on DNS resolution.
- For debugging when the BIMI Checker reports a syntax error that is hard to isolate.
The three parseable dimensions
| Dimension | Weight | What is measured |
|---|---|---|
| Record | 10 pts | Non-empty record, v= tag in first position |
| Syntax | 20 pts | Recognized tags, valid HTTPS URLs, no duplicate, correct separators |
| Hygiene | 15 pts | Reasonable URLs, optional sha256, no useless tag |
The three other dimensions (strict DMARC, SVG logo, VMC) are marked not_verified: the Validator score only covers what can be read in the record text itself. A perfect record on the parseable dimensions scores 100.
Common syntax pitfalls
Wrong version
The v= tag must be strictly v=BIMI1. Variants v=BIMI, v=BIMI2 or v=bimi1 are rejected by receivers. The version must also appear in the first position of the record.
Non-HTTPS URL
The BIMI profile requires HTTPS URLs for the logo and VMC. An http:// URL is rejected. No localhost, no literal IP, no path containing unencoded whitespace.
Duplicate tag
A single tag cannot appear twice in the record. v=BIMI1; l=https://a.captaindns.com; l=https://b.captaindns.com is invalid. Keep one value per tag.
Wrong separator
Tags are separated by a single semicolon followed by an optional space. No comma, no newline, no double semicolon. Expected format: v=BIMI1; l=https://captaindns.com/bimi/logo.svg.
Unknown tag
The spec defines v, l, a. An unknown tag (e.g., x=value) must be ignored by receivers but is flagged as a warning by the Validator. Remove it to stay aligned with the BIMI specification.
Missing a= tag
The record stays syntactically valid, but Gmail and Yahoo will not display the logo without a VMC. A recommendation suggests adding a=<url> before publication, unless targeting only Apple Mail is intentional.
Tool limitations
- Logo and VMC checked, but not scored: our servers fetch the SVG declared by
l=and the certificate declared bya=. Anomalies show up in the verdict, but neither dimension feeds the score. - No DMARC check: the
p=quarantineorp=rejectprerequisite cannot be tested without a DNS lookup. The Checker handles this. - No DNS propagation check: actual record availability in DNS is not tested.
For the full chain (DNS, logo, VMC, DMARC), publish and then run the BIMI Checker.
Related tools
| Tool | Purpose |
|---|---|
| BIMI Record Check | Verify the published BIMI record, logo, VMC and DMARC |
| BIMI Generator | Build a compliant BIMI record from scratch |
| BIMI SVG Converter | Convert an SVG into the BIMI Tiny-PS profile |
| BIMI Hosting | Host the SVG logo and VMC for free |
| DMARC Record Check | Check the DMARC policy, the indispensable BIMI prerequisite |
FAQ - Frequently asked questions
Q: What is the difference between BIMI Validator and BIMI Checker?
A: The Validator analyzes the syntax of a record you paste before publication, without reading the configuration already in place. The Checker starts from a domain instead: it queries DNS and verifies DMARC on an already-published record. Use the Validator before publication and the Checker after.
Q: Which BIMI tags are mandatory?
A: Two tags are mandatory in the BIMI specification: v=BIMI1 (version, first position) and l= (HTTPS URL of the SVG logo). The a= tag (HTTPS URL of the VMC) is optional per the spec but required by Gmail and Yahoo, which need a valid VMC to display the logo.
Q: Why is my record flagged as invalid?
A: Common causes: v= absent or different from BIMI1, non-HTTPS URL, unknown tag, duplicate tag, whitespace inside a URL, wrong separators (only ; between tags). Each error is listed in the result with a correction example.
Q: Does the validator download the logo or VMC?
A: Yes. Our servers fetch the HTTPS URL declared by l=, plus the one declared by a= when it is present, to check the SVG and the certificate. No DNS query is issued and nothing is published, though: the DMARC prerequisite remains the BIMI Checker's job.
Q: What does the Validator 0 to 100 score mean?
A: The score measures the record's syntactic quality. The three parseable dimensions (record, syntax, hygiene) are scored. The three other dimensions (DMARC, logo, VMC) are marked not_verified and do not influence the score. A syntactically perfect record scores 100.
Q: What happens if the a= tag is missing?
A: The record stays syntactically valid. The Validator still flags a warning because Gmail and Yahoo will not display the logo without a VMC. Apple Mail accepts the absence of a VMC. A recommendation suggests adding the a= tag before publication to target inbox-ready.
Q: Why validate before publishing to DNS?
A: Webmails silently ignore an invalid BIMI record. No alert is sent to the sender. Validating upfront avoids a wasted DNS publication, a lost TTL cycle and a window of lost brand visibility.
Q: Should I include default._bimi as a prefix before analyzing?
A: No. Paste only the TXT content (v=BIMI1; l=...; a=...) without the DNS name. The tool only parses the record text. The default._bimi.<domain> name is used when publishing to DNS and when running the Checker.
Useful resources
- SVG Tiny Portable/Secure (SVG Tiny PS) (official SVG profile for BIMI)
- IETF Brand Indicators for Message Identification draft (BIMI specification in standardization)
- BIMI Group (AuthIndicators Working Group, documentation and current drafts)
- DigiCert Verified Mark Certificates (mark CA for VMCs)
- Entrust Verified Mark Certificates (mark CA for VMCs)
- Gmail BIMI requirements (Google Workspace requirements)