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 vastlintSee it in action
Errors appear exactly where they are
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
- Released
Core library published
vastlint-core v0.1.0 on crates.io — zero-dependency Rust library, 108 rules, VAST 2.0–4.3.
- Released
CLI published
vastlint v0.1.0 on crates.io and Homebrew tap. brew install aleksUIX/tap/vastlint.
- Current
Web validator
vastlint.org/validate — paste or drop a VAST tag, get a structured report. No account required.
- Planned
WASM in-browser validation
Compile vastlint-core to WebAssembly. Run all 108 rules client-side with no server round-trip.
- Planned
REST API
Authenticated API endpoint for programmatic validation. Suitable for CI/CD, ad server integration, and bulk tag audits.
- Planned
Realtime pipeline integration
Continuous validation of VAST flowing through an ad serving pipeline. Per-partner error rates, alerting, and dashboards.
- 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.