vastlint

Open-source · Apache 2.0 · IAB VAST 2.0–4.3

VAST XML validation
before it reaches production

vastlint checks VAST tags against the IAB spec and reports every structural error, deprecated element, and malformed field — so silent impression loss gets caught at authoring time, not in a discrepancy report.

brew install aleksUIX/tap/vastlint·cargo install vastlint

See it in action

Errors appear exactly where they are

vastlint — validator
VAST XMLLn 1

Real validation runs in under a millisecond. Try it with your own VAST tag →

Why VAST validation matters

$33 billion in US CTV ad spend runs on VAST XML. Most errors are invisible until revenue is already gone.

40%

of VOD ads fail to render

Research from Penthera found that 40% of VOD ads fail at the point of delivery. Tag-level errors — missing required fields, malformed URLs, bad duration formats — are a leading cause.

>25%

impression gap triggers investigation

Google Ad Manager flags a greater-than-25% gap between code served and impressions counted as a systemic issue. Most gaps trace back to errors detectable in the tag before it ever reaches a player.

6 versions

of the spec are in active use

VAST 2.0 through 4.3 are all in production across the ecosystem. A tag that validates against VAST 4.2 may use elements that were removed in 3.0 or not yet defined in 2.0.

Silent

failures leave no trace in logs

A VPAID tag on a platform that blocks VPAID execution passes XML validation and produces no error. The slot goes dark. The discrepancy appears in a report three days later and takes another three to trace.

What vastlint checks

108 rules derived directly from the IAB spec

Instant results

Validation runs in under a millisecond. Paste a VAST tag and get a structured report of errors, warnings, and advisories immediately.

108 rules

Covers required fields, malformed URLs, deprecated elements, version mismatches, VPAID, skipoffset format, duplicate impressions, and more.

VAST 2.0 – 4.3

All six IAB Tech Lab VAST versions are supported. Rules are derived directly from published specs and XSD schemas.

Privacy-first

Your XML is never stored. Validation happens in the request and the result is returned immediately — nothing is logged or retained.

CLI & library

The same rule set powers the open-source CLI and Rust library. Add VAST validation to your CI/CD pipeline in minutes.

Free and open-source

The web validator, CLI, and core library are Apache 2.0 licensed. No account, no rate limits, no paywall.

Roadmap

Where we are and where we’re going

  1. Released

    Core library published

    vastlint-core v0.1.0 on crates.io — zero-dependency Rust library, 108 rules, VAST 2.0–4.3.

  2. Released

    CLI published

    vastlint v0.1.0 on crates.io and Homebrew tap. brew install aleksUIX/tap/vastlint.

  3. Current

    Web validator

    vastlint.org/validate — paste or drop a VAST tag, get a structured report. No account required.

  4. Planned

    WASM in-browser validation

    Compile vastlint-core to WebAssembly. Run all 108 rules client-side with no server round-trip.

  5. Planned

    REST API

    Authenticated API endpoint for programmatic validation. Suitable for CI/CD, ad server integration, and bulk tag audits.

  6. Planned

    Realtime pipeline integration

    Continuous validation of VAST flowing through an ad serving pipeline. Per-partner error rates, alerting, and dashboards.

  7. Planned

    What else?

    Have a use case we haven’t covered? Tell us what you need →

Validate a VAST tag now

Free, instant, no account required.