vastlint

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

VAST XML
Validator & Linter

Free online VAST tag checker. Catch missing required fields, malformed URLs, deprecated elements, and spec violations across VAST 2.0–4.3 — before your tag reaches a player.

$
$

Validate at scale

Built for realtime bidding pipelines

163,000+ tags/sec on a single goroutine — 630,000+ across 8 cores. Embed vastlint-core directly in your SSP, DSP, or ad server — validate every bid response inline, with zero network round-trips and p95 latency under 10µs.

VAST throughput / sec

14,200

tags validated · single core

VAST error rate

0.0%

0 VAST tags rejected

VAST warning rate

0.0%

0 VAST tags flagged

VAST impressions seen

0.00M

0 VAST tags total

Live validation log0 events
Partner · Ad IDRuleLatency
Latencyrolling p-tiles
p50
38µs
p95
82µs
p99
141µs
Top firing rules
warming up…
QPS over time2 s buckets
0peak: 0 tags/2s
Error & warn rate% of traffic
err 0.0%warn 0.0%
Active podsautoscaling
4
pod-1
pod-2
pod-3
pod-4
Simulated · vastlint-core163,000+ tags/sec · single goroutine · p95 < 10µs

How it works

From VAST failure to recovered revenue — in the same auction window

vastlint doesn't just report errors. It catches them in-band, surfaces actionable rule IDs to partners, and routes to clean fallback tags — before a bid is wasted.

STEP 01Detected

Bad tags caught before the bid is committed

vastlint-core runs inline in your bid path — no sidecar, no round-trip. 50+ rule violations are flagged in microseconds.

  • javascript: ClickThrough scheme blocked
  • Missing MediaFile type attribute
  • Malformed Impression URL rejected

invalid VAST impressions / hr

0.00M

0 tags rejected in-band

STEP 02Quarantined

Partners get rule IDs, not silence

Warning-level violations are flagged in-band with structured rule IDs. Supply-side partners can fix at the source — breaking the cycle of repeat failures.

  • HTTP asset URLs flagged: mediafile-https
  • Bad skipoffset format surfaced inline
  • Duplicate Impression beacon detected

at-risk VAST impressions / hr

0.00M

0 tags flagged with rule IDs

STEP 03Recaptured

Clean fallback tags serve in the same auction window

87% of failed tags are replaced with pre-validated fallbacks. CPM floor preserved. No dropped bids. Fill rate stays intact.

  • Fallback validated and served in < 100µs
  • CPM floor preserved — no bid value lost
  • Fill rate maintained across all partners

CTV ad revenue recovered / hr

$0.00

0.00M impressions served via fallback

Without vastlint

0.00M impressions silently dropped✗ $0.00 in revenue unrecovered✗ Errors repeat — partners never notified

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

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

40%

of VOD ads fail to render

Tag-level errors — missing fields, malformed URLs, bad duration formats — are a leading cause of delivery failure.

>25%

impression gap triggers investigation

Google Ad Manager flags a >25% gap between code served and impressions counted as a systemic issue.

6 versions

of the spec in active use

VAST 2.0 through 4.3 are all in production. A tag valid in 4.2 may use elements removed in 3.0.

Silent

failures leave no trace in logs

A VPAID tag on a VPAID-blocked platform produces no error. The slot goes dark. The discrepancy surfaces three days later.

What vastlint checks

108 rules derived directly from the IAB spec

Instant results

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

108 rules

Required fields, malformed URLs, deprecated elements, VPAID, skipoffset, duplicate impressions, and more.

VAST 2.0 – 4.3

All six IAB Tech Lab 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 — 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 in minutes.

Free and open-source

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.

  3. Current

    Web validator

    Paste or drop a VAST tag at vastlint.org/validate, get a structured report instantly.

  4. Planned

    WASM in-browser validation

    vastlint-core compiled to WebAssembly — all 108 rules run client-side, no round-trip.

  5. Planned

    REST API

    Authenticated endpoint for CI/CD pipelines, ad servers, and bulk tag audits.

  6. Planned

    Realtime pipeline integration

    Continuous validation of live VAST traffic — per-partner error rates and alerting.

  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.